|
■No65946 (さくら さん) に返信 > フォルダの参照」ダイアログを表示する 目的が上記だけであれば、API に頼らずとも Dim f As Object Const BIF_RETURNNONLYFSDIRS As Long = &H1& Const BIF_EDITBOX As Long = &H10& With CreateObject("Shell.Application") Set f = .BrowseForFolder(Application.Hwnd, "タイトル", BIF_RETURNNONLYFSDIRS Or BIF_EDITBOX, RootFolder:=Empty) End With If Not f Is Nothing Then MsgBox f.Self.Path, vbInformation Set f = Nothing End If だけで良いかと。
> 標準モジュールに張付けて 何故、そのようなことをされたのでしょうか?
参考にされたサイトには、 >> '/* FolderBrowserDialog クラス モジュール */ と書かれていますよね。
本来の貼り付け先は [挿入]-[標準モジュール]などで追加した Module1 等では無く、 [挿入]-[クラス モジュール]などで追加した 『クラス モジュール』ですので、 最初のコードをクラスモジュール Class1 に貼り付けた上で、そのモジュールの名前を FolderBrowserDialog に変更してみてください。
それから呼び出し側のコードにある「Me.Hwnd」は、Excel VBA だと使えません。 この部分は「Application.Hwnd」に変更しておくのが手っ取り早いかと思います。
> 次のサンプルコードを > Windows7(Excel2010)-VBA…標準モジュールに張付けて > コンパイルしたのですがエラーが発生しました。 どの行で何というエラーが出たのかぐらいは書きましょう。
もし、お使いの Excel が 64bit 版だった場合には、API 宣言が多少異なります。 64bit 版にも 32bit 版にも対応させたい場合は、「#If」を併用しましょう。
|