VBAで任意のスペースを挿入する関数がSpace関数である。
次のように使用する。
Sub test() Debug.Print "a"; Space(5); "b" End Sub
結果
a b
似たような関数に、Spc関数がある。(実はさっき知った)
上記のコードをSpc関数に書き換えても、通常はうまく動作する。
Sub test() Debug.Print "a"; Spc(5); "b" End Sub
ただ、Spc関数というのはちょっとクセがあって、普通の文字列を返す訳では無いようだ。www.vba-ie.net
基本的にDebug.Printや、ファイル出力時のPrint命令でしか使えず、変数への代入は構文エラーになる。
Dim s As String: s = Space(5) 'OK Dim s As String: s = Spc(5) '構文エラー
また、Debug.PrintでもAnd連結はできず、セミコロンでの連結になる。
さらに、VBEのエディタでプロポーショナルフォントを設定していると、なぜかSpc関数がDebug.Printで機能しない。
Spc(5)としてもまったくスペースが入らなくなるのだ。
ちなみに私はエディタでメイリオを使っているので機能しなかった。
MSゴシックに直したらOK。MS PゴシックはNG。
Spcは何かとクセのある関数だ。
Space関数がある以上、その存在価値は謎であるが、解説を読むと、プロポーショナルフォントでテキストファイルへ出力するときに特殊なことができそうなにおいはする。
まあ、通常の用途ではSpace関数を用いるのが良いと思う。