MW211 EXIT

devlog
Excel/シングルクォーテーション
2015年06月06日
セルの先頭にシングルクォーテーション「'」を入力すると文字列になる。

数値でも「'123」とすれば、文字列扱いになる。

但し、先頭の「'」は表示されない。(数式バーでは表示されるが)

セルの接頭辞という別世界のデータになるためだ。(数式バーは「接頭辞+値」を表示)

セルの接頭辞は、ExcelVBAにおいては「セル.PrefixCharacter」で値を参照できる。
→「」もしくは「'」

セルの接頭辞に「'」が設定されているのをExcelVBAで除去するには、
値を再代入すればよい。
「セル.Value = セル.Value」
#「セル.PrefixCharacter = ""」みたいな直接の代入はできない。

数式バーで見える形に参照したい場合には、以下のような感じで
条件分岐してあげればよい。
┌──────────────────────────────────────┐
│If セル.PrefixCharacter <> "" Then                                          │
│    結果 = セル.PrefixCharacter & セル.Value                                │
│Else                                                                        │
│    結果 = セル.Value                                                       │
│End If                                                                      │
└──────────────────────────────────────┘

セル表示に「'」を付けたい場合には、
先頭の「'」を「''」を置換してあげればよいだろう。

ちなみに、「'」「Z」という接頭辞「'」がついているセルに値を代入した場合の挙動
  ・「A」を入力   → 「'」「A」  …接頭辞「'」は残ったまま
  ・「'A」を入力  → 「'」「A」  …接頭辞「'」が上書される
  ・「123」を入力 → 「」「123」 …接頭辞がなくなる
なので、
  ・「''」を入力  → 「'」「'」  …接頭辞「'」が上書される
ということで、「'」が雪だるま式に増えることはないようだ。
分類:Excel