● Access2000 Win32API 初期フォルダを選択しながら、フォルダ選択ダイアログを開く
フォームに例えば「参照」ボタンを作ったとして、それを押したときにフォルダ選択ダイアログを開きますが、その時に特定のフォルダを既定にしたいときの処理です。
http://accessclub.jp/bbs/0189/beginers59310.html
を参考にします。
では、Cドライブのルートに作った「data001」というフォルダが、フォルダ選択ダイアログが開いたときに既定選択(青色反転)されるように設定する方法をお伝えいたします。
※既定に指定したフォルダの中にサブフォルダがあった場合は、それも下図のように展開されます。フォルダ選択の手間を省きたいときに有効です。ユーザーさんがラクになります。
まず、http://accessclub.jp/bbs/0189/beginers59310.htmlの、解答者の「しゃく」さんの回答を見ます。
その、「====モジュールに====」と書いてあるところから下、全部を、Accessの標準モジュールにコピペします。(Accessは「挿入」しなくても「モジュール」のメニューから「新規作成」で行けます)
Cドライブのルートに「data001」というフォルダを作ります。
フォームにコマンドボタンを作って、以下のコードをコピペします。
1 2 3 4 5 6 7 8 9 10 |
Dim folder As String folder = BrowseForFolder(Me, "Directoryの選択", "c:\data001\") If Len(folder) = 0 Then 'キャンセルされたときの動作をここに書きます。 Else 'キャンセルされず、フォルダが選ばれてOKされたときの動作をここに書きます。 MsgBox "選ばれたフォルダは 「 " & folder & " 」 です。" End If |
プログラムでは変数の「folder」に、フォルダのフルパスが格納されますので、もしテキストボックスなどに、そのフルパスを表示したかったら、「MsgBox」の行を消して、かわりに、
Me("テキストボックス名") = folder
などと書けばOKです。
なお、他のダイアログ設定にしたいときは、次のようにします。
folder = BrowseForFolder(Me, "Directoryの選択", "c:\data001\")
の行をいじりますが、次のようにします。
(01)フォーム名を明示的に書きたいとき、共用部品化したいとき、など。
「Me」→「Forms("フォーム名")」("も書きます。"で囲みます)
「Me」→「Forms(フォーム名を格納した変数名)」("は不要です)
などにします。
(02)既定のフォルダを変えたいとき
「"c:\data001\"」→その別のフォルダのフルパスに書き換えます。(VBEの画面では、「\」は半角の¥マークを使います。)
- 投稿タグ
- Ac2000-Win32API