MsgBoxで文字位置を揃える


下図のようなデータがあったとします。これをMsgBoxで表示してみましょう。

Sub Sample1()
    Dim msg As String
    msg = msg & Cells(1, 1) & Cells(1, 2) & vbCrLf
    msg = msg & Cells(2, 1) & Cells(2, 2) & vbCrLf
    msg = msg & Cells(3, 1) & Cells(3, 2) & vbCrLf
    msg = msg & Cells(4, 1) & Cells(4, 2)
    MsgBox msg
End Sub

すべての文字列がくっついてしまい見にくいですね。では次のようにスペースを入れたらどうでしょう。

Sub Sample2()
    Dim msg As String
    msg = msg & Cells(1, 1) & " " & Cells(1, 2) & vbCrLf
    msg = msg & Cells(2, 1) & " " & Cells(2, 2) & vbCrLf
    msg = msg & Cells(3, 1) & " " & Cells(3, 2) & vbCrLf
    msg = msg & Cells(4, 1) & " " & Cells(4, 2)
    MsgBox msg
End Sub

多少はましですが、見にくいのに変わりはありません。こんなときは、ワープロソフトのようにタブで桁の位置を揃えるといいでしょう。タブを表す文字コードはChr(9)です。

Sub Sample3()
    Dim msg As String
    msg = msg & Cells(1, 1) & Chr(9) & Cells(1, 2) & vbCrLf
    msg = msg & Cells(2, 1) & Chr(9) & Cells(2, 2) & vbCrLf
    msg = msg & Cells(3, 1) & Chr(9) & Cells(3, 2) & vbCrLf
    msg = msg & Cells(4, 1) & Chr(9) & Cells(4, 2)
    MsgBox msg
End Sub

Chr(9)でタブコードが挿入できるというテクニックは、これ以外にも思わぬところで役立ちます。覚えておいて損はないですよ。