配列(Array)に格納されている文字列の連結やCSVにする方法・join †
join関数を使うと配列変数(Array)に格納されている情報を簡単に連結することができます。
以下にVBScriptでjoin関数を使用する方法を以下に記します。
join関数の構文 †
join関数は以下の構文になります。
join 結合する配列, [区切り文字]
区切り文字は省略可能で省略した場合、半角スペースが区切り文字になります。
返り値は連結した文字列になります。
join関数を使ってみる †
以下にjoin関数の使用例および実行結果を記します。
また、以下のVBScriptのサンプルをダウンロードすることができます。
区切り文字を省略してjoin関数を使ってみる †
以下にjoin関数の引数である区切り文字を省略したサンプルを記します。
- サンプルスクリプト join-01.vbs
' join-01.vbs
ary = Array("Windows", "Script", "Host")
str = join(ary)
WScript.Echo str
- 実行結果(コマンドプロンプトから実行しました)
C:\Users\sakura\Desktop>cscript join-01.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Windows Script Host
配列の文字が連結され区切り文字が半角スペースになっているのが確認できます。
文字列連結で半角スペースを無くす方法 †
区切り文字を以下のように無しに設定すれば、配列に格納されている文字列群は区切り文字なしで連結されます。
- サンプルスクリプト join-02.vbs
' join-02.vbs
ary = Array("Windows", "Script", "Host")
str = join(ary, "")
WScript.Echo str
- 実行結果(コマンドプロンプトから実行しました)
C:\Users\sakura\Desktop>cscript join-02.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
WindowsScriptHost
配列の文字が連結され区切り文字が無いためそのまま(詰まって)表示されています。
CSVにしてみる †
カンマ区切りのCSVにするには区切り文字にカンマを指定すれば簡単に実現できます。
注意点としては、配列内にカンマが含まれる文字列がある場合、意図した動作にならないかもしれません。
ダブルクオーテーションなどで囲む必要などもあるかもしれません。
- サンプルスクリプト join-03.vbs
' join-03.vbs
ary = Array("Windows", "Script", "Host")
str = join(ary, ",")
WScript.Echo str
- 実行結果(コマンドプロンプトから実行しました)
C:\Users\sakura\Desktop>cscript join-03.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Windows,Script,Host
カンマ区切りで表示されているのが確認できます。
ダブルクオーテーションで囲んだCSVにしてみる †
以下のような区切り文字を指定すれば、ダブルクオーテーションで囲んだCSVを簡単に出力することができます。
- サンプルスクリプト join-04.vbs
' join-04.vbs
ary = Array("Windows", "Script", "Host")
str = """" & join(ary, """,""") & """"
WScript.Echo str
- 実行結果(コマンドプロンプトから実行しました)
C:\Users\sakura\Desktop>cscript join-04.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
"Windows","Script","Host"
ダブルクオーテーションで囲まれたカンマ区切りで表示されているのが確認できます。
タブ区切りにしてみる †
配列要素をタブ区切りで表示してみます。
- サンプルスクリプト join-05.vbs
' join-05.vbs
ary = Array("Windows", "Script", "Host")
str = join(ary, Chr(9))
WScript.Echo str
- 実行結果(コマンドプロンプトから実行しました)
C:\Users\sakura\Desktop>cscript join-05.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Windows Script Host
タブ区切りで表示されます。
以上、join関数を使って文字列の連結およびカンマ区切りのCSVやタブ区切りする方法でした。