本ページには広告が含まれています。

VBA Tab 関数 出力を指定したタブ位置に移動します

VBA Tab 関数 出力を指定したタブ位置に移動します

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_Sample01 実行時のイミディエイト画像

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

コードを実行すると、次のイミディエイト画像のような結果となりました。

Tab_Sample02 実行時のイミディエイト画像

【ポイント】
・ループの最後で文字列が交差し、同じ行に重ねて表示できないため予期せぬ改行が発生しています。
・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

実行結果で作成されたテキストファイルを開いた画像が次のとおりです。

Tab_Sample03 書き込んだテキストファイルの画像

おわりに

VBA の Tab 関数は、Spc 関数と同じようにPrint#ステートメントPrintメソッドで出力位置を調整するために使用される関数です。

Tab 関数と Spc 関数の違いは次のとおりです。

関数動作同一結果にする (n) の指定例
Tab(n)初期位置から指定した列へ移動Debug.Print "ABC"; Tab(6); "DEF"
Spc(n)現在位置から指定した空白を挿入Debug.Print "ABC"; Spc(3); "DEF"

Tab 関数も Spc 関数と同様に、Print#ステートメントやPrintメソッド以外では使用できません。

以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;

VBAの関数一覧はこちらからご参照ください。

スポンサーリンク
スポンサーリンク

VBAサンプルファイルダウンロードページのご案内

このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。

ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!