プロが教える店舗&オフィスのセキュリティ対策術

VBSciptでの「フォルダ指定ダイアログ」について教えてください。

「フォルダ指定ダイアログ」を利用して、保存元のフォルダと保存先の
フォルダを選択し、特定ファイル(*.jpg)のコピーをするツールを作っています。

下記のプログラムで、「フォルダ指定ダイアログ」が表示されるのは
確認できたのですが、選択したフォルダの階層をテキストフォームに
表示させる方法を教えてください。(書き込みできませんのエラーになります。)


---------------------------------------------------------
Dim objShell
Dim objFolder

' オブジェクトの生成
Set objShell = CreateObject("Shell.Application")

' フォルダ選択ダイアログを表示
Set objFolder = objShell.BrowseForFolder(0, "フォルダを選択してください。", 0)
Set objShell = Nothing

---------------------------------------------------------

以上、宜しくお願い致します。

A 回答 (1件)

私も手探りだが、下記を実行してみてください。


望むものかな。
Sub test01()
Dim objShell
Dim objFolder
Dim objfolderx
Dim objfile
' オブジェクトの生成
Set objShell = CreateObject("Shell.Application")
' フォルダ選択ダイアログを表示
Set objFolder = objShell.BrowseForFolder(0, "フォルダを選択してください", 0)
MsgBox objFolder
MsgBox objFolder.items.Item.Path
p = objFolder.items.Item.Path
'--
Set objfs = CreateObject("Scripting.FileSystemObject")
Set objfolderx = objfs.getfolder(p & "\")
MsgBox objfolderx.Name
For Each objfile In objfolderx.Files
MsgBox objfile.Name
Next
'-
Set objfs = Nothing
Set objfolderx = Nothing
Set objShell = Nothing
End Sub
ーーーー
MsgBox objFolder
が質問の答えかな。
あとFSOで引き取って、そこの中のファイル名を表示しているつもり。
MsgBoxは確認後は削除して、必要な箇所に「処理」のコードを入れてください。
    • good
    • 0
この回答へのお礼

imogasi さん

ありがとうございます。.htmlではエラーになってしまったので、
.htaで保存した場合には動きました。

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder( _
0, "フォルダを選択:", 0, "ssfDeskTop")
If objFolder Is nothing Then
MsgBox("フォルダを選択してください。")
Else
pathFolder = objFolder.Items().Item().Path
ifd.value = vbCr & pathFolder
Set objFolder = nothing
End If

End sub

お礼日時:2007/11/01 22:43

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

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