• ベストアンサー

セルの先頭文字のアポストロフィーが認識されない

Sub t() Dim s As String Range("A1").Value = "'あああ" s = Left(Range("A1").Value, 1) Debug.Print Asc(s) End Sub を実行すると、「あ」の文字コードの-32096が返ってきます。 「‘」に対する39が返ってきてほしいのですが Range("A1").Value = "''あああ" こういう状態でセルに値が入ってないと無理なのでしょうか? シングルコーテーションが1つ入ってても それを一文字として認識させたいのですがエクセルでは不可能ですか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんばんは。 Range("A1").Value = "'あああ" s = Left(Range("A1").Value, 1) セルに、「'」を代入すれば、書式の接頭辞にキャストされてしまいます。数式バー上では見えていますが、それは、文字列関数では取り出せません。この書式文字、VBAでは、PrefixCharacter というプロパティで表せられます。 言い換えれば、セルに代入した書式文字は、文字列ではありません。 以下のようなスタイルになるかと思います。 Sub Test1()  Dim s As String  With Range("A1")   .Value = "'あああ"   If .PrefixCharacter <> "" Then    s = .PrefixCharacter   Else    s = Left(.Value, 1)   End If  End With  Debug.Print Asc(s) End Sub

KMKIWZQX7
質問者

お礼

ありがとうございました。

関連するQ&A