3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

VBAでの文字列同士の結合

2014年10月16日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

達人養成塾の小川です。

受講者の方からの質問で、
次のようなコードをいただきました。

Sub Sample()
	Dim buf1 As String, buf2 As String
	buf1 = InputBox("数値1を入力してください。")  '100を入力
	buf2 = InputBox("数値2を入力してください。")  '200を入力
	MsgBox buf1 + buf2
End Sub

3行目と4行目でそれぞれ100、200と入力した場合、
5行目で何が表示されるでしょうか?

300って表示されるような気がしますが、
この場合は、「100200」というように
二つの数字がつながって表示されます。

通常、+の記号は足し算の記号で、
文字列を結合する場合は、&を使うのが一般的ですが、
文字列同士の場合は+でも結合されます

ここでは、2行目でbuf1, buf2の2つの変数が
Stringを使って文字列型に指定しているので、
文字列がつながって表示されるのです。

このようにVBAでは数値なのか文字列なのかによって、
同じ記号が別の意味になることがありますので、
知らずに使うと意図しない結果になりますので、注意が必要です。

以下のような検証のプログラムを実行してみて、
理解を深めてください。

プログラムの中に出てくるCInt関数は
文字列を整数に変える関数です。
これもよく使うので覚えておくと便利ですね。

Sub hoge()
    Dim s1 As String
    Dim s2 As String
    s1 = 1
    s2 = 2
    Debug.Print s1 + s2
    Debug.Print CInt(s1) + s2
    Debug.Print s1 + CInt(s2)
End Sub
 
Sub Sample()
    Dim buf1 As String, buf2 As String
    buf1 = InputBox("数値1を入力してください。")    '100を入力
    buf2 = InputBox("数値2を入力してください。")    '200を入力
    MsgBox buf1 + buf2
    MsgBox CInt(buf1) + buf2
    MsgBox buf1 + CInt(buf2)
End Sub

キーワード

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド