F0000016_ファイルダイアログを開き、1つのExcelファイルを選択させる

ファイルダイアログを開き、1つのExcelファイルを選択させる 関数リファレンス

この関数について

私がExcelVBAを業務に使用し始めた頃、ExcelVBA(マクロ)の学習を進めていく中で最初の難所は「別ブックの操作」でした。当時、マクロの記録では別ブックを開きそのまま操作を進めるという処理が記録されませんでした。そのため「Workbooks.Open」へたどり着くまで単一のブックしかマクロで扱うことができないと誤認していました。この「Workbooks.Open」はブックのパスを指定してブックを開くことができます。ここで紹介する関数では、ファイルダイアログを表示しマクロの実行者が選択したファイルの絶対パスを取得することができます。

ここからは余談です。読み飛ばし可。私がマクロの学習を始めてから4年ほどです(2024/8/16現在)が、その間にもMicrosoft社はExcelVBAの改良を続けていることが見て取れます。ネットにはExcelVBAの時代はもう終わったというような記事が4年前から存在しますが、少なくともMicrosoft社はExcelVBAを終わらせる気はないように見えます。私も他の高級なプログラミング言語にはない強みである
 ・開発環境が実質プレインストールされていること
 ・ユーザーフォーム
 ・シートやセルへのアクセスが簡単にできること
↑この利点がある以上、ExcelVBAの衰退はないと考えています。

関数コピペ ~コードをクリックするだけでコピー完了!~



使い方 ①引数

■引数1:title
 ファイルダイアログに表示するタイトルを指定できます。下記画像を参照

■引数2:initial_folder_path
 ファイルダイアログが表示されたときにデフォルトで開くフォルダを指定できます。

使い方 ②戻り値

マクロ実行者がファイルを選択した場合、ファイルの絶対パスを返します。選択しなかった場合、空の文字列を返します。そのため、返値が空文字列か否かの判定でファイルの選択有無を判断できます。

サンプルコード(クリックでコピー)






【結果】Excelファイルの絶対パスを取得することができました

上記サンプルコードを実行すると、ファイルを選択した場合、Excelファイルが開きます。ファイルを選択しなかった場合、「ファイルが選択されませんでした」というメッセージが表示されます。ファイルが選択されたパートではそのまま開いたブックに対する操作を記述することになると思います。そのため変数に開いたExcelファイルのワークブックオブジェクトを格納しています。

関数リファレンスにはコピペで使用可能な便利関数を多数掲載!

関数リファレンスでは私が開発の中で必要になったコード部品を汎用化・関数化して公開しています。この記事で紹介した関数以外にもコピペで利用できる関数を多数用意しています。検索窓から必要な機能を検索してみましょう!解説記事も続々公開中。

Comment