この関数について
基幹システムからデータ抽出すると数万レコードごとにファイルが分割して抽出されたり、取引先業者から送られてくるファイルが支店ごとに分割されていたり、フォーマットが同じにも関わらずファイルが分割されており、手動でくっつけるといった作業をしていないでしょうか?ExcelVBA(マクロ)を使えば複数のcsvファイルを結合して出力するということも簡単に実現できます。この関数はファイルダイアログを表示しマクロの実行者が選択した複数のcsvファイルの絶対パスを取得することができます。
関数コピペ ~コードをクリックするだけでコピー完了!~
使い方 ①引数
■引数1:title
ファイルダイアログに表示するタイトルを指定できます。下記画像を参照
■引数2:initial_folder_path
ファイルダイアログが表示されたときにデフォルトで開くフォルダを指定できます。
■引数3:var_type_code
ファイルパスが格納された配列(返値)の型を指定できます。「vbString」「vbVariant」のいずれか。それ以外を指定してもVariant型で返します。指定しない場合のデフォルトはString型です。
■引数4:based_index
ファイルパスが格納された配列(返値)の最小のインデックス(添え字)を指定できます。指定しない場合のデフォルトは1です。
使い方 ②返値
マクロ実行者がファイルを選択した場合、ファイルの絶対パスを配列に格納して返します。選択しなかった場合、未定義の配列を返します。そのため、返値の配列が初期化されているか調べる(F0000010)ことで選択したかどうかを判定できます。
サンプルコード(クリックでコピー)
【結果】複数のcsvファイルの絶対パスを取得できました
サンプルコードを実行すると、選択したcsvファイルの個数がメッセージとして表示されます。何も選択をしなかった場合は、何もせず終了します。業務上のマクロであれば、選択されたファイルを「ADODB.Stream」オブジェクトなどでデータを順次読み込み、結合・加工・集計などと続けます。
Comment