vbsで選択ダイアログを表示したいのですがやり方が分かりません。教えてください。
以前は以下のようにしてたのですがUser~ってところがvistaでは動作しないようです。
また、既存の処理はできれば変えたくないので以下の関数内で選択されたファイル名を返却できるようにするにはどう変更したらよいでしょうか?
Function AAAA()
Dim objDialog
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "Excel File|*.xls"
objDialog.InitialDir = "C:\"
intResult = objDialog.ShowOpen
If intResult = 0 Then Wscript.Quit
// ファイル名を返却
End Function
UserAccounts.CommonDialog はXPだけで使える
と、記載されてましたね。
コモンダイアログ系オブジェクトはVBのライセンスが
ないと使えませんし、BrowseForFolderもファイルを
選ぶと落ちるので困ったもんです。
他のアプリケーションの力を借りるしかないと
思います。
(1)SFC mini をインストールしてAPIを実行
SFC mini はWindowsAPIをVBSから呼び出せる
ようにしたツールです。
http://kandk.cafe.coocan.jp/sfcmini/
(2)Excelの機能を使う。
Excelがインストールされていれば、以下のように
実装できます。
Dim A, B
Set A = CreateObject("Excel.Application")
B = A.GetOpenFilename("Excel File,*.xls")
A.Quit
Set A = Nothing
If B <> False Then
AAAA = B
Else
WScript.Quit
End If