previous arrowprevious arrow
next arrownext arrow
previous arrownext arrow
Shadow
Slider
VBA

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

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

実際に作ったファイルはこちらからダウンロードできます。

ダイアログ用の参照設定

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

手順はコードエディターから「ツール(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ファイルを出力しようとしたところ、意外と簡単に出す方法がありませんでした。 備忘録のために残してお...

補足

・複数フォルダ選択

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

独学からプログラミングスクールで次のステップへプログラミングを独学でされている人は意外と多いです。 その理由も、企業から内定が出たから、入社後技術面が不安だから、転職をしようと...
プログラミング初心者の独学方法 文系卒の経験談私はIT系の会社に勤めて4年目ですが、最初の1年は開発をさせてもらえませんでした。 文系卒でプログラミング経験はなかったので、開発...
プログラミング初心者の独学とはエラーとの闘い プログラミングを勉強し始めた初心者の方はつまづくことが多いと思います。 私も最初はエラーが出るたびにいちいちビビッて、意味...

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

関連している記事

COMMENT

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