- ベストアンサー
ExcelのVBAでフォルダ指定ができるダイアログボックスを出す方法
指定したフォルダに自動でExcelファイルを保存できるようにしたいのですが、フォルダ指定ができるダイアログボックスはないのでしょうか?ファイルを指定するダイアログボックスはできるのですが、それでは必ずファイルを選択しないといけないので・・・ 指定できる方法が見つかりません。何か良い方法はないでしょうか?よろしくお願い致します。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
日が経ってしまったので既に解決されているかもしれませんが、 私も同じことをしたくて調べていたところ方法が分かったので参考までにと思い投稿いたしました。 次のサンプルコードを試してみてください。 Sub TEST() Dim ShellApp As Object Dim oFolder As Object Set ShellApp = CreateObject("Shell.Application") Set oFolder = ShellApp.BrowseForFolder(0, "フォルダ選択", 1) MsgBox oFolder.items.Item.Path, vbOKOnly, "フルパス表示!" End Sub APIなど使用せずともフォルダ指定ダイアログが表示可能です。 楽チンですね。 この「BrowseForFolder()メソッド」の詳しいプロパティ・メソッドの解説は参考URLを参照してください。 色々な使い方が可能です。 http://www.galliver.co.jp/writing/susume_vb/tre904/
その他の回答 (6)
- keikan
- ベストアンサー率42% (75/176)
ファイルを保存する時みたいにダイアログでフォルダーそのものを指定したいという事なのかな^^;; 現状ではフォールダー選択のダイアログはなさそうなので、フォームを作成して、テキストボックスに、リストボックス、あとはOK,Cancelボタンぐらいくっつけて、自作するしかないのかな^^;; むかしならOCXで何か出来合のものがあったような気もするがこれはVBについてるものかな^^;;
お礼
そうです、フォルダそのものを選択したいんです(^_^;) やっぱりないですかぁ、なんとか自作で頑張ってみます! OCXってなんですか~?
- keikan
- ベストアンサー率42% (75/176)
Application.DefaultFilePath = "C:\" デフォルトフォルダーを変更します。
お礼
返事遅くなってすいませんm(__)m 回答ありがとうございます! でも、使い方がよくわかりませんでした(^_^;) やっぱりダイアログボックスでファイルを選択するようにフォルダの選択を出来ないんでしょうかねぇ(-_-;)
#2です。 どうも2003でしか使えないようですね。 残念です。 お役に立てなくて申し訳ありません。
お礼
いえいえ(^^ゞ ありがとうございます!
#2です。 こちらはバージョン2003ですが、minihitsujiさんのバージョンはいくつでしょうか? 2003でなければFileDialogとかでヘルプが表示されないでしょうか?
お礼
そうなんですかー?私のバージョンは2000です。ヘルプでは見つかりませんでした。2000では使えないみたいですね(-_-;)
Dim a As String With Application.FileDialog(msoFileDialogFolderPicker) .Show a = .SelectedItems(1) MsgBox a End With 上記の内容をVBAに記述すれば可能です。 選択したフォルダ名が a に格納されます。
お礼
回答ありがとうございます。やってみたのですが、 この行で↓ With Application.FileDialog(msoFileDialogFolderPicker) 『このメソッドまたはプロパティがサポートされていません』とメッセージが出てきてしまいました(^_^;)
- popesyu
- ベストアンサー率36% (1782/4883)
GetSaveAsFilename(InitialFilename, FileFilter, FilterIndex, Title, ButtonText) 詳細はこちら http://hp.vector.co.jp/authors/VA006682/vbaref/vbaref14.htm
お礼
回答ありがとうございます。直接保存する場合は教えていただいた方法がいいかもしれません。でも、できれば保存する場所を指定して、ファイル名を自動で保存させたいのですが(>_<)
お礼
回答ありがとうございます!まだ解決してなくて半分あきらめていました(>_<) すごいですね!!そんな方法があったんですね!さっそく使わせていただきます(^^ゞ