プロフィール
VBA

Access VBA ダイアログからパス取得

VBAでファイルダイアログを開く処理について紹介します。

実際に作ったAccessファイルはこちらに載せています。

https://yahoo.jp/box/0qZSvf

参照設定

ファイル用もフォルダ用もダイアログを開くに参照設定を必要です。

手順はコードエディターから「ツール(T)」→「参照設定(R)」と移動します。

その後、Microsoft Office 16.0 Object Libraryにチェックを付けておいてください。

16.0はバージョンに寄ります。

ファイルのパス取得のダイアログ

ファイルパス取得用のダイアログは以下のような書き方です。

処理の流れは以下の順です。
①ファイルダイアログを開く
②ファイルが選択されてらばパスをメッセージ表示
③選択されなければキャンセルのメッセージ表示

 

VBA C# オススメ参考書プログラミングの参考書でオススメの紹介をしていきます。 それぞれ私が使っている言語のみです。 VBAのオススメ参考書をExc...

解説

FileDialogのShowでダイアログを出します。

ダイアログで選択したファイルがある場合intRetには結果引数として「-1」が返ってきます。

ファイルを選択しなかった場合、「0」が結果引数として返ってきます。

ファイルを選択した場合、SelectedItems.Item(1)にファイルのパスが取得されます。

例えば、ダイアログから取得したファイルパスを使ってエクセルをAccessに取込むというような処理に使えそうですね。

Access エクセル取込み 複数シートAccessに複数シートをのエクセルを一括で取り込める機能が欲しかったのですが、ありませんでした。 作ってみたので残しておきます。...

補足

・フィルタ設定

エクセル関係のファイルだけしか表示されないようにしています。

用途によっては「*」でも良いでしょう。

・複数ファイル選択許可

1ファイルだけに設定していますが、複数も可能です。

その場合、FilePath = Trim(.SelectedItems.Item(1))の番号は選択したファイル番号を設定する必要があります。

フォルダのパス取得のダイアログ

フォルダパス取得用のダイアログは以下のような書き方です。

処理の流れは以下の順です。
①ダイアログを開く
②フォルダが選択されてればパスをメッセージ表示
③選択されなければキャンセルのメッセージ表示

 

解説

FileDialogのShowでダイアログを出します。(ファイルパス取得と同じ)

ダイアログで選択した場合、Trueが返ってきます。

Trueの場合、SelectedItems(1)に選択したフォルダのパスがセットされています。

なので、FolderPathの変数に選択したパスをセットしています。

ロジックとしてFolderPathに何も入っていない場合、フォルダ選択をやめる以外はありません。

そのため、FolderPathが空白ならキャンセルされましたと表示をしています。

例えば、ダイアログを表示して指定したフォルダにAccessからtsvやcsvを出力するときなどに使えそうですね。

RecordSetからcsv、tsvファイルを出力するAccessのテーブルからtsvファイルを出力しようとしたところ、意外と簡単に出す方法がありませんでした。 備忘録のために残してお...

補足

・複数フォルダ選択

複数フォルダ選択はできないようです。

<参考URL>
・3種類の[ファイルを開く]ダイアログボックス
http://officetanaka.net/excel/vba/tips/tips154.htm
・[ファイルを開く]ダイアログボックスを表示する(GetOpenFilenameメソッド)
https://www.moug.net/tech/exvba/0060013.html

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です