Tab関数
Tab関数は、Print # ステートメントまたは Print メソッドでテキストを出力する際に、次の出力開始位置を指定した桁数に移動させます。
これにより、列を揃えた整形された出力を簡単に作成できます。
Tab関数の構文
n (省略可能):
次の出力項目の開始位置となる桁数を指定する数値式です。
桁数は、出力行の左端から数えられ、1 から始まります。
引数 n を省略した場合、Tab 関数は現在の出力位置から最も近い次のタブストップに移動します。VBAの既定のタブストップは通常14文字ごとです。
- Tab 関数は、ファイルに書き込む際(Print #ステートメント)や、イミディエイトウィンドウ (Debug.Print)、またはユーザーフォームのPrintメソッドなどでテキストを出力する際に使います。
- nを指定した場合:
- 出力行の左端からn番目の桁に移動します。
- 現在の出力位置がnより大きい場合(すでにnを越えている場合)、Tab 関数は自動的に次の行のn番目の桁に移動します。
- nが0の場合、エラーが発生します。
- nが非常に大きい値の場合、システムで利用可能な最大幅に切り詰められることがあります。
- nを省略した場合:
- 現在の出力位置から最も近い次のタブストップ位置に移動します。標準のタブストップは14桁ごとです(例: 15, 29, 43 など)。
- Spc 関数との違い:
- Spc 関数が指定された数の空白文字を挿入するのに対し、Tab 関数は出力位置を特定の桁に移動させる点が異なります。Tab 関数は、出力が特定の列にきれいに揃うように調整する際に特に便利です。
- Print #ステートメントや Debug.Print で使用する場合、各項目間はセミコロン(;)で区切るのが一般的です。
Tab関数の使用例
Sub Tab_SimpleSample()
Dim fileNum As Integer
Dim filePath As String
filePath = ThisWorkbook.Path & "\TabTest.txt" ' 一時ファイルパス
On Error GoTo ErrorHandler ' エラーハンドラ設定
' --- ファイルへの出力例 ---
fileNum = FreeFile
Open filePath For Output As #fileNum
' Tab(n) で特定の桁に移動して出力
Print #fileNum, "商品名"; Tab(15); "価格"; Tab(25); "数量"
Print #fileNum, "鉛筆"; Tab(15); "100円"; Tab(25); "5個"
' Tab() 引数なしで次のタブストップに移動して出力
Print #fileNum, "" ' 改行
Print #fileNum, "項目A"; Tab(); "項目B"; Tab(); "項目C"
Close #fileNum
MsgBox "ファイル '" & Dir(filePath) & "' にTab関数を使って出力しました。内容を確認してください。", _
vbInformation, "Tab 関数例 (ファイル)"
' --- イミディエイトウィンドウへの出力例 ---
Debug.Print "名前:"; Tab(10); "年齢:"; Tab(20); "出身地:"
Debug.Print "山田太郎"; Tab(10); "35歳"; Tab(20); "東京"
MsgBox "イミディエイトウィンドウにも出力しました。Ctrl+Gで確認してください。", _
vbInformation, "Tab 関数例 (Debug.Print)"
' テストファイルを削除
Kill filePath
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しました: " & Err.Description, vbCritical, "エラー"
If fileNum <> 0 Then Close #fileNum
If Dir(filePath) <> "" Then Kill filePath
End Sub
- このコードでは、Print #ステートメントとDebug.Printを使ってTab 関数の動作を示しています。
- ファイルへの出力例では、Tab(15)のように引数nを指定することで、出力位置を厳密に制御し、列を揃えています。また、Tab()のように引数を省略することで、既定のタブストップ位置に移動する例も示しています。
- イミディエイトウィンドウへの出力例でも同様に、Debug.PrintでTab 関数を使用し、整形された出力をシミュレートしています。Debug.Printの各項目間もセミコロン(;)で区切ることで、Tab で指定された位置に正確に移動します。
- Ctrl+Gを押してイミディエイトウィンドウを開くと、実行結果を確認できます。
- エラーハンドリングと一時ファイルの削除も含まれています。
※本記事の作成にあたっては、生成AI(Gemini)を活用し一部の文章作成を行っています。最終的な内容は人間による確認・編集を経て掲載しています。
同じテーマ「VBA関数」の記事
LOF関数
Seek関数
Spc関数
Tab関数
Abs関数
Int関数
Fix関数
Hex関数
Oct関数
Rnd関数
Round関数
新着記事NEW ・・・新着記事一覧を見る
VBA開発の標準化を実現する共通プロンプトのすすめ|生成AI活用研究(2025-06-14)
生成AIと100本ノック 29本目:画像の挿入|生成AI活用研究(6月13日)
Excelワークシート関数全一覧(最新版)|Excelリファレンス(6月12日)
エクセル関数辞典 AI版|エクセル入門(6月10日)
生成AIと100本ノック 28本目:シートをブックに分割|生成AI活用研究(6月8日)
生成AIと脱Excelの時代:ブラックボックスと共に進む知的変革|生成AI活用研究(2025-06-08)
生成AIと100本ノック 27本目:ハイパーリンクのURL|生成AI活用研究(6月7日)
生成AIと100本ノック 26本目:ファイル一覧作成|生成AI活用研究(6月6日)
AI時代のプログラミング再考:記述の自由と知の民主化|生成AI活用研究(2025-06-06)
Excel×スプレッドシート連携:HTTP GETで学ぶGAS API設計入門|生成AI活用研究(2025-06-04)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.変数宣言のDimとデータ型|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.FILTER関数(範囲をフィルター処理)|エクセル入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。