- ベストアンサー
「'」もascで変換させたい
- 「'」もascで変換させたい
- A1に「'test」と入れると「test」になってしまいます。Sub test() Dim MojiInt As Long Dim i As Long Dim myRow As Long Dim Moji As String MojiInt = Len(Cells(1, 1)) For i = 1 To MojiInt Moji = Mid((Cells(1, 1)), i, 1) If i = 1 Then Cells(1, 2) = Asc(Moji) Else Cells(1, 2) = Cells(1, 2) & "," & Asc(Moji) End If Next i End Sub
- 最初の「'」もascで変換させることは無理なのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >最初の「'」もascで変換させることは無理なのでしょうか? もともと、Excelの仕様ではなくて、Lotus123の名残りの文字列修飾子の接頭辞(PreFix)で、文字列を表す引用符 「'」 があるか、なしかでしかありません。セル値の前につけて確定すれば、修飾子になります。通常は、Lotus123仕様はOffになっていて、他の修飾子は使えませんが、「'」だけが残っているようです。 あえて必要なら、#4さんのご指摘のように、「''」と2つ重ねることでしょうね。 文字列でないものの文字コードを出してもしょうがないと思いますが……。
その他の回答 (4)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! すでに回答は出ていますが・・・ Excel的には アポストロフィー+データ でそのセルを「文字列」にする! という約束事があるようです。 そこで ''test とアポストロフィーを二つ続けて入力すると、 数式バーには入力したそのものが表示されますが、セルには 'test と表示されると思います。 そのようにすればお示しのコードでもお望みの結果が表示されると思います。m(_ _)m
お礼
ありがとうございました。
- coai
- ベストアンサー率50% (152/301)
試してませんが、 Cells(1, 1) と省略する形ではなく Cells(1, 1).Value とValueプロパティを明示的に指定しても、同じですか? もしくは Cells(1, 1).Formula と、"式"を参照するようにするとか。 あるいは Cells(1, 1).Text と、文字列を参照した場合は?
お礼
ありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
たとえばそのマクロで len(cells(1,1)) を取り出させてみると、4文字しかないのが確認できます。 エクセルでは、先頭の’を記入されたデータとして取り出す方法はありません。 >最初の「'」もascで変換させることは無理なのでしょうか? まぁ敢えて言うなら、 sub macro2() dim moji as string dim i as long range("B1").clearcontents moji = range("A1").prefixcharacter & range("A1") for i = 1 to len(moji) range("B1") = "'" & range("B1") & "," & asc(mid(moji, i, 1)) next i range("B1") = "'" & mid(range("B1"), 2, 9999) end sub などのようにして、調べてみることはできます。
お礼
ありがとうございました。
- YanenoSuzume
- ベストアンサー率44% (23/52)
A1が test (シングルクォーテーションを含まず、半角4文字) を表しているためです。 A1 に test と入力しても 'test と入力しても同じです。 'test (シングルクォーテーションを含む、半角5文字) は ="'test" とすれば入力できました。
お礼
ありがとうございました。
お礼
ありがとうございました。