- 締切済み
EXCELVBA フォルダ検索API
エクセルからVBAでフォルダを選択させるコマンドを、APIを使ってフォルダ検索ダイアログボックスを出すまでは見よう見真似でできるのですが、このとき「あたらしいフォルダ」のボタンは必要ないので出したくないのですが、どこかに定数を指定すればよろしいかご存知でしたら教えてください。 (使用OS: Windows2000,Excel:2003) ちなみにコピペした宣言部分は以下のものです。 *************** Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _ (ByVal pidl As Long, ByVal pszPath As String) As Long Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" _ (lpBrowseInfo As BROWSEINFO) As Long Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long) Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, lParam As Any) As Long Public Const WM_USER = &H400 Public Const BFFM_SETSELECTIONA = (WM_USER + 102) Public Const BFFM_INITIALIZED = 1 ********************
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- DOUGLAS_
- ベストアンサー率74% (397/534)
>OFFICETANAKAさんの方法にある「2.shellを使う方法」にあるような選択したフォルダがテキストボックスに表示されるようにするAPIでの設定はないでしょうか? に対してのお答えは >&H10で上に窓がでていました。 でよろしいでしょうか? 他にも、「選択したフォルダがテキストボックスに表示される」定数があるようですが、前回答の「●BROWSEINFO のページの [メンバ] - [ulFlags] の項」をよくお読みいただき、お望みの数字に変えてお試しください。 ちなみに、もうお分かりでしょうが、 0x0001:&H1 0x0002:&H2 0x0004:&H4 0x0008:&H8 0x0010:&H10 0x0020:&H20 0x0040:&H40 0x0050:&H50 0x0080:&H80 0x0100:&H100 0x0200:&H200 0x0400:&H400 0x1000:&H1000 0x2000:&H2000 0x4000:&H4000 0x8000:&H8000 です。
- DOUGLAS_
- ベストアンサー率74% (397/534)
>「あたらしいフォルダ」のボタンは必要ないので出したくない お示しのコードは、 ●フォルダを選択するダイアログ http://officetanaka.net/excel/vba/tips/tips39.htm からコピペされたのでしょうか? お示しのコードは、上記ページの「4.APIを使う方法(2)」のものと一緒ですが、その上の「3.APIを使う方法(1)」の例図には、[新しいフォルダの作成(M)] が表示されていません。 >どこかに定数を指定すればよろしいか 上記、「3.APIを使う方法(1)」と「4.APIを使う方法(2)」のコードをつぶさに比較してみると、 .ulFlags がその関連だと判ります。つまり、「3.APIを使う方法(1)」の場合は、 .ulFlags = &H1 「4.APIを使う方法(2)」の場合は、 .ulFlags = &H40 となっています。 ここの設定値につきましては、下記をご参考になさってください。 ●BROWSEINFO http://yokohama.cool.ne.jp/chokuto/urawaza/struct/BROWSEINFO.html のページの [メンバ] - [ulFlags] の項です。
お礼
早速、ありがとうございました。 こんなことだったのですね。 早速&H**を適当変えて試してみました。(どれもあまり変わらないような気がしました) ご親切に甘え、もう1点。 OFFICETANAKAさんの方法にある「2.shellを使う方法」にあるような選択したフォルダがテキストボックスに表示されるようにするAPIでの設定はないでしょうか?
補足
すみません質問者です。 &H10で上に窓がでていました。
お礼
重ね重ねご回答ありがとうございました。 またよろしくお願いします。