• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:「'」もascで変換させたい)

「'」もascで変換させたい

このQ&Aのポイント
  • 「'」も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で変換させることは無理なのでしょうか?

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

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

こんにちは。 >最初の「'」もascで変換させることは無理なのでしょうか? もともと、Excelの仕様ではなくて、Lotus123の名残りの文字列修飾子の接頭辞(PreFix)で、文字列を表す引用符 「'」 があるか、なしかでしかありません。セル値の前につけて確定すれば、修飾子になります。通常は、Lotus123仕様はOffになっていて、他の修飾子は使えませんが、「'」だけが残っているようです。 あえて必要なら、#4さんのご指摘のように、「''」と2つ重ねることでしょうね。 文字列でないものの文字コードを出してもしょうがないと思いますが……。

ogbubysr
質問者

お礼

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

その他の回答 (4)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! すでに回答は出ていますが・・・ Excel的には アポストロフィー+データ でそのセルを「文字列」にする! という約束事があるようです。 そこで ''test とアポストロフィーを二つ続けて入力すると、 数式バーには入力したそのものが表示されますが、セルには 'test と表示されると思います。 そのようにすればお示しのコードでもお望みの結果が表示されると思います。m(_ _)m

ogbubysr
質問者

お礼

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

  • coai
  • ベストアンサー率50% (152/301)
回答No.3

試してませんが、 Cells(1, 1) と省略する形ではなく Cells(1, 1).Value とValueプロパティを明示的に指定しても、同じですか? もしくは Cells(1, 1).Formula と、"式"を参照するようにするとか。 あるいは Cells(1, 1).Text と、文字列を参照した場合は?

ogbubysr
質問者

お礼

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

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

たとえばそのマクロで 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 などのようにして、調べてみることはできます。

ogbubysr
質問者

お礼

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

回答No.1

A1が test (シングルクォーテーションを含まず、半角4文字) を表しているためです。 A1 に test と入力しても 'test と入力しても同じです。 'test (シングルクォーテーションを含む、半角5文字) は ="'test" とすれば入力できました。

ogbubysr
質問者

お礼

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

関連するQ&A