VBScript基礎8:WScriptオブジェクト。ドラッグ&ドロップでファイル名やパスを取得する
VBScriptでツールを作る際には、選択したファイルをドラッグ&ドロップし、そのファイルの処理をしたい場合があります。
処理するために必要となるファイル名やパスの情報を取得するために、「WScriptオブジェクト」というものがあります。
ここではツールを作る際に役立つ処理を事例とともに説明していきます。
例:こんな感じでExcelをドラッグ&ドロップします。
◆ツールの例
以下は「VBScript:Excel集約ツール」の記事からの抜粋です。実際に利用しているツールのプログラムから、ドラッグ&ドロップしたファイルの情報取得部分だけ貼り付けたものですので、全体の動作についてはツールの記事をご覧ください。
7行目で「WScriptオブジェクト」を利用して、ファイルの情報を取得しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
'================================' 'ドラッグ&ドロップしたファイルの情報取得' '================================' Sub getFileDir() 'ドラッグアンドドロップで取得したファイルパスを変数に入れる' Dim GetPathArray Set GetPathArray = WScript.Arguments '←ここで使っています。' tFileCount = GetPathArray.Count Dim FPath Dim i Redim FNameArray(tFileCount-1) Redim FPathArray(tFileCount-1) 'ファイルの数だけループする' i = 0 For Each FPath in GetPathArray ' 取得したファイル名' Dim FileName FileName = objFSO.GetFileName (FPath) FNameArray(i) = FileName FPathArray(i) = FPath i=i+1 Next End Sub |
◆サンプルコードの説明
◆WScriptオブジェクトの説明
以下のコード部分でドラッグ&ドロップしたファイルの情報を取得しています。
1 |
Set GetPathArray = WScript.Arguments |
「WScriptオブジェクト」には利用できるプロパティがいくつもありますが、ここでは「Arguments」を使うことでドラッグ&ドロップしたファイルのフルパスなどの情報が配列で取得できます。
◆WScriptオブジェクトの情報取得
その配列情報をループで取得するのがツールの以下のFor~Nextまでの部分です。
ここではファイル名とパスで分けて配列に入れるようにしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
'ファイルの数だけループする' i = 0 For Each FPath in GetPathArray ' 取得したファイル名' Dim FileName FileName = objFSO.GetFileName (FPath) FNameArray(i) = FileName FPathArray(i) = FPath i=i+1 Next |
◆まとめ
以上のように「WScriptオブジェクト」を使うことで、ドラッグ&ドロップしたファイル情報を取得できるので、簡単なツールを作る際に試してみてください。
●関連記事
VBScript基礎8:WScriptオブジェクト。ドラッグ&ドロップでファイル名やパスを取得する
VBScriptのツールにファイルをドラッグ&ドロップする際に利用する、WScriptオブジェクトの説明です。