Access VBA:WizHookオブジェクトを使用して[ファイルを開く]、[名前を付けて保存]を表示する際に初期フォルダを指定するサンプルプログラム

Access VBA:WizHookオブジェクトを使用して[ファイルを開く]、[名前を付けて保存]を表示する際に初期フォルダを指定するサンプルプログラム

AccessのVBAでWizHookオブジェクトを使用して[ファイルを開く]もしくは、[名前をつけて保存]ダイアログボックスを表示する際に選択される初期フォルダを任意のフォルダに指定する方法についての覚書です。

記事の概要

以前作成した以下の記事を任意のフォルダを選択させた状態で開くことができるように改版したサンプルプログラムです。

こちらの記事を読んでからのほうが理解が深まると思います。

AccessのVBAで”WizHook”オブジェクトを使用して[ファイルを開く]、[名前をつけて保存]ダイアログボックスを表示する方法について覚書。

また記事の最後にデスクトップフォルダやテンポラリフォルダなど、Windowsの特殊フォルダをデフォルトフォルダに指定するサンプルプログラムも紹介しています。

WizHookオブジェクトを使用した[ファイルを開く]、[名前をつけて保存]ダイアログボックスを表示するサンプルユーザー定義関数

サンプルとして紹介するユーザー定義関数は、以下の4つの引数を持ちます。

  1. [ファイルを開く](True)ダイアログボックスか[名前をつけて保存](False)かを表すBoolean型の引数
  2. ファイルの種類を指定するフィルタ文字列
  3. ダイアログボックスのタイトルを表す文字列
  4. カレントディレクトリを指定する文字列

ユーザー定義関数のサンプルプログラム

以下のサンプルプログラムをVBAの標準モジュールにコピー&ペーストしてください。

上記ユーザー定義関数を呼び出すサンプルプログラム

以下に上記ユーザー定義関数をプログラム中で呼び出して使用するサンプルプログラムを記述します。

初期フォルダに”C:\”を指定して呼び出す際のプログラムは以下のようになります。

[デスクトップ]フォルダや[Windows]フォルダなどの特殊フォルダを初期フォルダにする方法

ちなみに、デスクトップフォルダやテンポラリフォルダなど、Windowsの特殊フォルダを指定したい場合は、少しめんどくさくなります。

ログインしているユーザーごとにパス文字列が異なる[デスクトップ]フォルダや、Windowsセットアップ時に指定するディレクトリ名によってパスが変わってしまうWindowsの特殊([Windows]フォルダや[System32]フォルダなど)フォルダをカレントディレクトリに指定したい場合は、”WScript.Shell”オブジェクトや”FileSystem”オブジェクトを利用します。

これらのオブジェクトを利用して特殊フォルダのパスを取得してからユーザー定義関数を呼び出します。

Windowsの特殊フォルダやWindowsをセットアップしたフォルダ(Windowsフォルダ)、System32フォルダなどの特殊フォルダのパスを取得する詳細については、以下の記事を参考にしてください。

ユーザーごとにパスが異なるマイドキュメントフォルダやデスクトップフォルダ、その他Windowsフォルダ、Systemフォルダなどの特殊なフォルダのパスをVBAで取得するサンプルプログラムを覚書。

[デスクトップ]フォルダを初期フォルダを指定するサンプルプログラム

以下のサンプルは、”WScript.Shell”オブジェクトを利用してデスクトップフォルダのパスを取得ユーザー定義関数を呼び出しています。

指定できる特殊フォルダと指定する際の文字列一覧

以下は、上記サンプルプログラムの”SpecialFolders”で指定できる各特殊フォルダを表す文字列の一覧です。

デスクトップフォルダ以外の特殊フォルダのパスを取得したい際の参考にしてください。

指定文字列取得できるフォルダのパス
Desktopデスクトップフォルダ 
Favoritesお気に入りフォルダ 
Fontsフォントフォルダ 
MyDocumentsマイドキュメントフォルダ 
Programsプログラムフォルダ 
Recent最近開いたファイルフォルダ 
SendTo送るフォルダ 
StartMenuスタートアップメニューフォルダ 
StartUpスタートアップフォルダ

AccessのVBAで[ファイルを開く]、[名前をつけて保存]ダイアログボックスを表示する方法についての記事

AccessのVBAで[ファイルを開く]、[名前をつけて保存]ダイアログボックスを開く方法については、結構色々な記事を作ってあるので参考にしてください。

AccessのVBAで”WizHook”オブジェクトを使用して[ファイルを開く]、[名前をつけて保存]ダイアログボックスを表示する方法について覚書。
AccessのFileDialogオブジェクトを使用したダイアログボックス、ダイアログボックス、ダイアログボックスの各種ダイアログボック...
AccessのVBAでFileDialogオブジェクトを使用してフォルダのみ選択する[フォルダ選択]ダイアログボックスを表示するサンプルプログラムを覚書。
Accessの「FileDialog」オブジェクトを使用して[名前を付けて保存]ダイアログボックスを表示するVBAのサンプルプログラムを覚書。 FileDialogを使用する際は、Microsoft Office Object Libraryの参照設定を忘れずに。
AccessのFileDialogオブジェクトを使用して複数のファイルを選択できるダイアログボックスを表示して利用する方法について覚書し...
AccessのVBAで"FileDialog"オブジェクトを使用して[ファイルを開く]ダイアログボックスを表示させて利用するサンプルプログラムを覚書。
AccessのVBAでCSVファイルなどの区切り記号付きテキストファイルをTransferTextを使用せずにインポートするサンプルプログラムを覚書。