4

VBAフロントパネルにファイルパスコントロールを配置する方法は? ユーザーがあちこちにダイアログ ボックスを表示するのではなく、参照ボタンを選択してファイル パスを選択できるようにしたいと考えています。ユーザーが 3 つ以上のファイル パスを選択する必要があります。

4

5 に答える 5

3

Q を読み直した後、ダイアログ ボックスから離れたいと思われます!まあ、私は言うつもりでした

VBA で MSDIAG を使用する方法についてのハックを投稿できます。これは、レジストリにパッチを適用して、他の MS-VB 製品をインストールせずに VBA で使用できるようにする方法を説明しています。その理由を確かに理解してください。

しかし、ダイアログ ボックスは必要ありません... コントロールとボタンが必要な場合: リストボックスを使用してください。リストボックスに入力するには、Dirコマンドを使用します (リストボックスのメソッドadditemを使用)。それを達成するための 2 つのフェーズ:

  • 最初にディレクトリを取得します(そして、リストボックスに追加する前に「->」などのプレフィックスを付けて、ユーザーがこれがファイルではないことを理解できるようにします)。
  • 次に、ファイル名を取得します (DOS の場合と同様に、Dir の引数を使用して拡張子でフィルタリングできます)。

最後に、リストボックスの OnClick と OnDoubleClick の下で、リストボックスの既定のプロパティ (Item) を解釈し、"->" を確認し、ChDir を使用してディレクトリを変更して再入力する必要があります。そうしないと、ファイルが選択されます。

書き込みは、コードよりもはるかに複雑です...私を信じてください。

于 2009-03-16T10:42:19.700 に答える
2

Microsoft Office の VBA ですか、それとも一般的な VBA ですか?

オフィスでは、Application.FileDialog(msoFileDialogOpen).

それ以外の場合は、Win32 API 関数SHBrowseForFolder(shell32.dll 内) を調べます。Declare Functionキーワードを使用して、VBA にインポートして使用できます。

于 2008-11-05T10:41:34.157 に答える
1

おそらく、MicrosoftMVPsサイトからのフォルダーAPIの参照が適しています。

http://www.mvps.org/access/api/api0002.htm

fwzgekgによって言及されたSHBrowseForFolderを使用し、ファイルダイアログを返さず、フォルダーの閲覧可能なリストを返します。

于 2008-11-05T21:32:03.703 に答える
1

これは、あなたの望むことですか?

FilePath = Application.GetOpenFilename
于 2010-09-22T15:08:32.353 に答える
1

そのための直接の VBA 関数はありません。フォーム (Access フォーム、または一般的な Microsoft フォーム) と、(1) テキスト ボックス (2) 参照ボタン (最終的には fileDialog コマンドまたは Windows API を使用する) の 2 つのコントロールを組み合わせることができます。

于 2008-11-05T12:46:40.300 に答える