VB6・VBA関数メモ:Tab関数

Tab関数についてメモしておきます。

この関数は、次の書き込み位置を変更する際に使用します。
Print #ステートメントまたはDebug.Printメソッドと共に使用します。

文字列のインデントを揃えたいときに使うと便利かもしれません。
イメージ的にはSpc関数よりSeekステートメントに近い気がします。

ヘルプでは「関数」となっていますが、タブ文字を返す関数ではないようです。
そのため文字列型への代入や&での文字列連結をしようとすると構文エラーとなります。

文字列型のタブ文字を取得したい場合は、vbTab定数を使用しましょう。


概要

Tab([n])
機能 指定の位置に次の書き込み位置を設定
引数 n (省略可能)
次の書き込み位置
Variant型(Integer型)
戻り値 なし


使用例

説明 記述例 出力
ファイルの書き込み位置を変更
Dim n   As Integer

n = FreeFile
Open "D:¥Sumple.txt" For Output As #n

Print #n, "A"; Tab(5); "B"; Tab(10); "C"
Print #n, "12"; Tab(5); "34"; Tab(10); "56"
Print #n, "abc"; Tab(5); "def"; Tab(10); "ghi"

Close #n
(D:¥Sumple.txt)
A   B    C
12  34   56
abc def  ghi


動作検証

説明 記述例 出力
前の書き込み位置より小さい値を指定すると、改行後に書き込み位置を指定される
Dim n   As Integer

n = FreeFile
Open "D:¥Sumple.txt" For Output As #n

Print #n, "ABCDE"; Tab(3); "12345"

Close #n
(D:¥Sumple.txt)
ABCDE
  12345
マイナス値を指定してもエラーにはならない
(0として扱われる?)
On Error GoTo ERR_HANDLER

Dim n   As Integer

n = FreeFile
Open "D:¥Sumple.txt" For Output As #n

Print #n, "ABCDE"; Tab(-1); "12345"

ERR_HANDLER:

Close #n

If Err > 0 Then Debug.Print Error
(D:¥Sumple.txt)
ABCDE
12345
-32768〜32767の範囲外を指定するとエラー
On Error GoTo ERR_HANDLER

Dim n   As Integer

n = FreeFile
Open "D:¥Sumple.txt" For Output As #n

Print #n, "ABC"; Tab(32768); "DEF"

ERR_HANDLER:

Close #n

If Err > 0 Then Debug.Print Error
オーバーフローしました。
On Error GoTo ERR_HANDLER

Dim n   As Integer

n = FreeFile
Open "D:¥Sumple.txt" For Output As #n

Print #n, "ABC"; Tab(-32769); "DEF"

ERR_HANDLER:

Close #n

If Err > 0 Then Debug.Print Error
オーバーフローしました。
文字列型の変数には格納しようとしても構文エラーとなる
Dim s   As String

s = Tab(5)
(構文エラー)
Debug.Printでは使用できる
(ただし & で文字列連結はできない
Debug.Print "ABC"; Tab(5); "DEF"
ABC DEF
Debug.Print "ABC" & Tab(5) & "DEF"
(構文エラー)


コメント
コメントする








    
この記事のトラックバックURL
トラックバック