一回も披露したことのない豆知識

VBA歴日も間もない者です。仕事上でVBAをいろいろいじくっています。
Excel2000VBAで、ディレクトリの指定をできるダイアログ画面はないのでしょうか?
ユーザーにディレクトリを入力してもらいたいのですが、方法としては、1)直接手で打ってもらうか、2)ダイアログで指定できるようにするかにしたいのですが、あいにく

Application.Dialogs(xlDialogOpen).Show
Application.GetOpenFilename

で「ファイルを開く」でディレクトリを割り出す方法しか分かりませんでした。
できれば、ディレクトリ指定のダイアログ画面をだしたいのですけど、他に方法があれば教えてください。よろしくお願いします。

A 回答 (3件)

SHBrowseForFolder というAPIを使うとディレクトリを指定させるダイアログが出てきます。


過去に同じ質問/回答があるので、SHBrowseForFolderで検索してみて下さい。
    • good
    • 0

おかしいですね。

Excel2000やExcel97でこのまま使っているんですが。
細かなことを忘れてしまったのは事実ですが。。。

下のページとかを参考にしました。

参考URL:http://www.galliver.co.jp/writing/susume_vb/tre9 …
    • good
    • 0
この回答へのお礼

nishi6さん、回答ありがとうございます。
参考URLでのページを上から下まで読みましたが、結局進展無しでした。VBでの説明をしているので、オブジェクトも多少?違うみたいですね。(余談ですが「進め! VBお宝発掘団」懐かしい)
他のHPでも、nishi6さん同様にコードを書いていましたが、私みたいにエラーが出る方は拝見できませんでした。う~ん。明日も何も進展しないならば、再インストールしてみようと思います。勉強になりました。

お礼日時:2002/04/22 18:50

こんな感じでしょうか。

ご参考に。

Sub Test()
  Dim ff As Object

  Set ff = CreateObject("Shell.Application"). _
         BrowseForFolder(0, "フォルダを選択してください", 0, "")

  If Not ff Is Nothing Then
    MsgBox ff.Items.Item.Path
    '選択したフォルダ名を表示
  End If

End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
試してみたのですけど、Set ステートメントで実行時エラーが返されてしまいました。コメントは「ActiveXコンポーネントはオブジェクトを作成できません。」とかかれています。新しくオブジェクトを生成すると言うヒントは頂けたと思います。

お礼日時:2002/04/19 10:18

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