プロが教えるわが家の防犯対策術!

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

A 回答 (3件)

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
    • good
    • 0

vbs .BrowseForFolder



でググるのがいいようです。その中の一つ、

http://hp.vector.co.jp/authors/VA006065/scripts/ …

にありますが、コードはまずフォルダ選択、フォルダが
見えなくなるとファイル選択に切り替えるという手法です。
    • good
    • 0

BrowseForFolderでググってみてください。


以下のようなものもあります。

http://msdn.microsoft.com/en-us/library/bb774065 …

また、
Vbscript for VISTA to get a file name using BROWSEFORFOLDER
だと、海外版ですがそのままがあります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A