この関数について
業者間のデータ連携や自社の基幹システムへのデータインポートなど、業務においてExcelファイルではなく、データをcsvファイルで扱うことはよくあります。この時、Excelデータをcsvファイル形式で保存しただけのデータではエラーが発生したり、開発した当初はシステムから出力できたcsvファイルをそのまま使えたのに、先方の仕様変更で手動で加工をしてから連携が必要だったりすることがあります。ExcelVBA(マクロ)の利点は、システム開発よりも低コスト・短納期で高級なプログラミング言語で作成されたツールに劣らない自動化ツールを作成できることです。私の経験上、csvファイルの加工はその最たる例です。この関数はファイルダイアログを表示しマクロの実行者が選択したcsvファイルの絶対パスを取得することができます。
使い方 ①引数
■引数1:title
ファイルダイアログに表示するタイトルを指定できます。下記画像を参照
■引数2:initial_folder_path
ファイルダイアログが表示されたときにデフォルトで開くフォルダを指定できます。
使い方 ②返値
マクロ実行者がファイルを選択した場合、ファイルの絶対パスを返します。選択しなかった場合、空の文字列を返します。そのため、返値が空文字列か否かの判定でファイルの選択有無を判断できます。
使い方 ③呼び出し方例(サンプルコード)
Public Sub Test_OpenFileDialogCsvSingle()
Dim wb As Workbook
Dim file_path As String
file_path = OpenFileDialogCsvSingle("任意のcsvファイルを選択する", ThisWorkbook.Path)
If file_path <> "" Then
Debug.Print file_path
Else
Call MsgBox("ファイルが選択されませんでした", vbInformation)
End If
End Sub
【結果】csvファイルの絶対パスを取得することができました
上記サンプルコードを実行すると、ファイルを選択した場合、csvファイルの絶対パスをイミディエイトウィンドウに表示します。ファイルを選択しなかった場合、「ファイルが選択されませんでした」というメッセージが表示されます。ファイルが選択されたパートではそのままcsvを操作するために「ADODB.Stream」を使用してcsvデータを読み込んだり・・と続きます。
この関数は関数リファレンスからコピペ可能です!
この記事のタイトルを検索窓へ貼り付けて関数を検索してみましょう。 表示されたコードをクリックするだけでコピー完了! あとは自身で作成したモジュールに貼り付けるだけでこの関数を利用できます。サンプルコードもあり! 関数リファレンストップへ
Comment