VB6・VBA関数メモ:Spc関数

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

この関数は、任意の数の半角スペースをファイルに書き込む際に使用します。
Print #ステートメントまたはDebug.Printメソッドと共に使用します。

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

文字列型の半角スペースを取得したい場合は、Space関数を使用する必要があります。


概要

Spc(n)
機能 任意の数の半角スペースをファイルに出力
引数 n 出力する半角スペースの数 Variant型(Integer型)
戻り値 なし


使用例

説明 記述例 出力
ファイルに任意の数の半角スペースを出力
Dim n   As Integer

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

Print #n, "ABC"; Spc(5); "DEF"

Close #n
(D:¥Sumple.txt)
ABC     DEF


動作検証

説明 記述例 出力
マイナス値を指定してもエラーにはならない
(0として扱われる?)
On Error GoTo ERR_HANDLER

Dim n   As Integer

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

Print #n, "ABC"; Spc(-1); "DEF"

ERR_HANDLER:

Close #n

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

Dim n   As Integer

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

Print #n, "ABC"; Spc(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"; Spc(-32769); "DEF"

ERR_HANDLER:

Close #n

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

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


コメント
コメントする








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