Excel VBAの「Tab 関数」について解説します。
Tab 関数とは
Excel VBA の Tab 関数は、Print#ステートメントやPrintメソッドと共に使用して、出力を指定したタブ(列)位置に移動させて配置します。表形式のデータを整然と表示したい場合などに利用されます。
Tab 関数の構文や引数の設定と実際の使い方について具体的に解説していきたいと思います。
Tab 関数(Visual Basic for Applications リファレンス)
構文(引数と戻り値)
Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。
構文
Tab[(n)]
引数
引数 | 説明 |
---|---|
n | 【省略可能】移動させるタブ(列)位置を指定します |
※ 移動位置(列)が次の出力位置となります。
※ 省略した場合の Tab は、次の印刷領域の最初に挿入ポイントを移動します。
※ Tab(n) の n は 「行の先頭からの列位置」 を意味します。
※ n の1列は1半角文字分です。全角文字は2列分を占めていることを考慮する必要があります。
戻り値
戻り値 | 説明 |
---|---|
なし (表示制御) | 出力位置を指定された n 列まで移動します (指定位置まで隙間を空ける表示制御です) |
※ n 列の位置がすでに出力位置だった場合、Tab は次の行の n 列にスキップします。
※ n が出力行幅より大きい場合、Tab は次の行の( n – 行幅)の列にスキップします。
Tab 関数の動作
設定 | 動作 |
---|---|
Tab(n) | 行の先頭から n 列目へ移動(半角・全角に依存) |
半角文字 | 1文字=1列 |
全角文字 | 1文字=2列 |
引数省略 | 次の既定のタブ位置へ移動(約14列ごと) |
解説(使用例)
Tab 関数の基本的な動作と使い方について、サンプルを使って解説します。
Tab 関数サンプル
Tab 関数を使用して出力位置を調整するいろいろな例を紹介します。
基本的な使用例
各要素を指定したタブの位置に整列させる基本的な例です。
'■Tab関数サンプル(基本的な使用例)
Sub Tab_Sample01()
Debug.Print "名前"; Tab(10); "年齢"; Tab(20); "都道府県"
Debug.Print "安部"; Tab(10); 35 & "歳"; Tab(20); "東京都"
Debug.Print "井上"; Tab(10); 29 & "歳"; Tab(20); "神奈川県"
End Sub
コードを実行した出力結果は次のとおりです。

Tab 関数は、先頭からの位置で指定するので、各要素の先頭はきれいに揃っていることが確認できます。
予期せぬ改行が起きてしまう例
次の例は、二つの文字列を増減させて表示します。交差する場合にどのような挙動になるかを確認します。
'■Tab関数サンプル2(予期せぬ改行が起こる例)
Sub Tab_Sample02()
Dim i As Integer
For i = 1 To 5
Debug.Print Tab(i); "123"; Tab(11 - i); "456"
Next i
Debug.Print "ABCDE"; Tab(3); "FGHIJ"
End Sub
コードを実行すると、次のイミディエイト画像のような結果となりました。

【ポイント】
・ループの最後で文字列が交差し、同じ行に重ねて表示できないため予期せぬ改行が発生しています。
・7行目では、文字列「ABCDE」と次の文字列「FGHIJ」の間に Tab(3) を挿入しています。この場合は Tab(3) の位置は「C」の文字があるため、改行されて次の行の3列目から表示されています。
ファイルに書き込む例
Tab 関数で出力位置を調整した結果を Print#ステートメントでファイルに書き込む例です。
'■Tab関数サンプル3(ファイルに書き込む例)
Sub Tab_Sample03()
Dim i As Integer
' ファイルを開く
Open "C:\VBA_Test\Tab_Sample03.txt" For Output As #1
' 見出し行を書き込む
Print #1, "ID"; Tab(8); "商品名"; Tab(20); "価格"
' データ行を書き込む
For i = 1 To 5
Print #1, i; Tab(8); "商品_" & i; Tab(20); i * 100 & "円"
Next i
Close #1 ' ファイルを閉じる
End Sub
実行結果で作成されたテキストファイルを開いた画像が次のとおりです。

おわりに
VBAの関数一覧はこちらからご参照ください。
VBAサンプルファイルダウンロードページのご案内
このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。
ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!
VBA の Tab 関数は、Spc 関数と同じようにPrint#ステートメントやPrintメソッドで出力位置を調整するために使用される関数です。
Tab 関数と Spc 関数の違いは次のとおりです。
Debug.Print "ABC"; Tab(6); "DEF"
Debug.Print "ABC"; Spc(3); "DEF"
Tab 関数も Spc 関数と同様に、Print#ステートメントやPrintメソッド以外では使用できません。
以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;