• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 複数の文字のコードを一気に返すには)

VBA複数文字のコードを一気に返す方法

このQ&Aのポイント
  • VBAで複数の文字のコードを一気に返す方法について説明します。
  • 「Asc」関数を使用することで、文字のコードを取得することができます。
  • 複数の文字のコードを一気に返すためには、文字列を一文字ずつ分割して「Asc」関数を適用する必要があります。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

以下のような感じでもいいと思います。 Sub Example() Dim myStr As String, StrAsc As String Dim i As Integer myStr = "abcdefg" For i = 1 To Len(myStr) StrAsc = StrAsc & ":" & Asc(Mid(myStr, i, 1)) Next i Debug.Print StrAsc End Sub

vtnpvmio
質問者

お礼

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

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

ASC関数は(指定した)文字列の、最初の文字のアスキーコードを返す関数ですから、3文字分のアスキーコードを作りたいなら3文字分のそれぞれについて、計3回の繰り返しをするほかない。それにはMID関数、LEN関数の助けも要ります。16進数で表示したい場合もあるが、同じように、VBAコードのミクロではそうなる。関数化して、複数文字の文字列を指定して、16進のコードを変えさせる方法があるが、質問者が聞きたいのはそれではないだろう。 ーー 突き詰めて言えば、言語レベルでそれ(複数の文字列の文字コード化の関数)が仮に設けられていても、その関数の内実では、機械語レベルでは、繰り返しが行われているはず。言語にとっては、C言語のような文字列の扱いのような言語もある。ここにその根底が垣間見える。 ーー 参考 本質問直接関係ないが。 Googleで「C言語 文字列の扱い」で照会。 http://www.isl.ne.jp/pcsp/beginC/C_Language_11.html ーー ですから、自分でバイト数だけ繰り返すか、1発でできるように「見せかける」ところの、ユーザー定義関数を自分で作るしかない。 ーー ケメニーのbasicの基本草創時代(1964年から20年ぐらい)ではASC関数もなかったように思う(不確か)。 MS社がBasicに加わる時代になって、ビジネスでは必須の、文字列関係の関数も増えたように思う。Mid関数、LEN関数など。 http://gigazine.net/news/20140501-fifty-years-of-basic/

vtnpvmio
質問者

お礼

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

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.2

NO1の方のコードのDebug.Print Mid(StrAsc, 2)とすると:一番最初の区切り文字が無い状態で表示されます。 ご参考まで。 Sub Example1() Dim myStr As String, StrAsc As String Dim i As Integer myStr = "abcdefg" For i = 1 To Len(myStr) StrAsc = StrAsc & ":" & Asc(Mid(myStr, i, 1)) Next i Debug.Print Mid(StrAsc, 2) End Sub

vtnpvmio
質問者

お礼

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