フォルダー位置を任意に指定できるプログラミング←使うフォルダーを自由に選択! | 50歳からのエクセルプログラミング

50歳からのエクセルプログラミング

ブログでお伝えしたい事は、プログラムを使うと著しく業務効率が上がると言う事です。興味がある方はプログラムを動かしてその素晴らしさを体感して下さい。無限の可能性を秘めたプログラミングの世界をご紹介して参ります。

 昨日、フォルダーの作成とプログラムファイルのダウンロードのご説明をしました。本日はその続きをご説明します。

 

 「データ結合用フォルダ」フォルダーに、下図の様に、サンプルデータをダウンロードして格納して下さい。

 

 「」フォルダー内の「データ結合用フォルダ」フォルダーには、「170824_サンプルデータ1●.xlsx」と「170824_サンプルデータ2●.xlsx」 を 

 「」フォルダー内の「データ結合用フォルダ」フォルダーには、「170729_サンプルデータ1.xlsx」と「170729_サンプルデータ2.xlsx」を入れて下さい。次に進みます。

 

 「」フォルダーにある、「複数ファイルの結合_VBA.xlsm」のModule1を実行してみます。

下図の様に2つのファイルが結合された新しいファイルが出来ます。

 

 同様に「」フォルダーにある、「ファイルを結合させるVBA.xlsm」のModule1を実行してみます。

下図の様に2つのファイルが結合された新しいファイルが出来ます。

 

 プログラムのファイル名は異なりますが、実行したプログラム内容は同じものです。任意のフォルダーにプログラムファイルと「データ結合用フォルダ」を格納しても、正しく動作するプログラムの仕組みをご説明します。

 次は、Module1のプログラムの抜粋です。「」フォルダーにある、Module1の前提でご説明します。

'-------------------------------------------------

'現在のカレントパスの●「データ結合用フォルダ」フォルダに移動する

対象ディレクトリ名 = ThisWorkbook.Path & "\データ結合用フォルダ" 

 

」フォルダーにありますからThisWorkbook.Pathの値は”C:\A\B”でその後ろに、"\データ結合用フォルダ"が記述されていますので、対象ディレクトリ名 の値は、” C:\A\B\データ結合用フォルダ”となります。次に進みます。

 

'-------------------------------------------------

'(1) 拡張子xls?のファイル名を取り出す

対象ブック名 = Dir(対象ディレクトリ名 & "\*.xls?")

 

 Dir関数は( )内に指定したファイルが存在したとき、そのファイル名を返す関数です。上記の代入文を書き直すと、

対象ブック名 = Dir(C:\A\B\データ結合用フォルダ\*.xls?")となります。Dir関数1回目の実行時の、対象ブック名は

170824_サンプルデータ1●.xlsx」です。

 この様にThisWorkbook.Path & "\データ結合用フォルダ"と記述することで、プログラムファイルが属するフォルダーに「データ結合用フォルダ」を入れることで、フォルダー位置を任意に指定(好きなフォルダーに格納)出来る様になります。

 

 次回は、表題列の項目の並びや項目数が変化しても、修正する必要なく動作するプログラムの組み方をご説明予定です。お楽しみに。

 

読者の方へ。過去の記事をご覧になられていて、「画像」が上手く表示されない場合は、「hiro-yukioのサイト」の「過去のブログ記事」フォルダーにPDFで保存しましたのでこちらでご覧下さい。

hiro-yukioのサイト