「書き込まれる側」も「はっきり明示」!→プログラムファイルとデータファイルの分離が出来る! | 50歳からのエクセルプログラミング

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

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

お詫び:8月7日の記事でダウンロードするプログラムは「ファイルを結合させるVBA.xlsm」と記載していましたが、「複数ファイルの結合_VBA.xlsm」の誤りでした。訂正致します。

 

 8月8日掲載の技巧的な内容をご説明します。注釈文 や 変数名 を書き直し、より読者の方に解りやすく修正しました。また、プログラム名を「ファイルを結合させるVBA.XLSM」と変更致しました。

 「ファイルを結合させるVBA.XLSM」が最新版のプログラムです。こちらをダウンロードして下さい。

 

技巧的内容

・参照したいブックの指定の方法。(開いているブックor新ブック)

 

 復習事項を記述します。特殊な変数とSet命令文?の組み合わせで「書き出し側」ブックと「書き込まれる側」のブックが指定できるとご説明しました。

 既に掲載している内容では、「書き出し側」ブックの指定はこの特殊な変数とSet命令文?の組み合わせで指定していますが、「書き込まれる側」はWith ThisWorkbook…と記述しているだけでした。

そこで、・・・

 

 「書き込まれる側」のブックも特殊な変数とSet命令文?の組み合わせで「はっきり明示」し、プログラムの書かれたブックに「書き込む」のではなく、プログラムの書かれたブック以外のブックに「書き込む」ための準備の記述が次になります。(Module1の抜粋です)次に進みます。

 

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

'新規ワークブックを作成 ← 一時的(このVBAの記述のあるプログラムのフォルダー内)

'ファイル名 "データ結合用一時ブック.xlsx"

 

Application.SheetsInNewWorkbook = 1  'シートは1つだけのブック

Workbooks.Add                                '新規ブックを開く(作成)

 

Dim データ結合用一時ブック As Workbook  '特殊変数(ブック)

Dim データ結合用一時セル範囲 As Range  ''特殊変数(セル範囲)

   

Set データ結合用一時ブック = ActiveWorkbook 

  '新規ブック(一時)を「データ結合用一時ブック」と命名

    ←「はっきり明示」

   

データ結合用一時ブック.SaveAs Filename:=ThisWorkbook.Path & "\データ結合用一時ブック.xlsx"

     '↑このプログラムが入っているブックと同じフォルダー内に、「データ結合用一時ブック.xlsx」と名前を付けて、一旦保存

 

 

 「データ結合用一時ブック.xlsx」が「書き込まれる側」になる様に作成しています。このプログラムの中ほどに、次の With文 が記述されています。これにより、「データ結合用一時ブック.xlsx」の1番目のシートを「はっきり明示」し、処理を行います。次に進みます。

 

 '====================================================

 '▲▲▲ 新しいブックにデータ貼り付け(転記)の処理 ▲▲▲

With データ結合用一時ブック.Worksheets(1)   'これ以降、データ結合用一時ブックの一番目のシートを指定する。

 

 

 その結果と言うべきか、意図的にですが、「プログラムの入ったファイル(ブック)」と「データだけ入ったファイル(ブック)」を別々に取り扱うことが出来る様にしています。

 「プログラムの入ったファイル(ブック)」は常にプログラムだけを保存しておき、必要な時に必要な「Module」を開いて実行させることが出来れば、効率よく「データ処理」および「プログラム」の管理が可能となります。

 

 余談ですが、私は最初の頃は、「暗黙の了解」が理解できておらず、その為、「はっきり明示」の方法も当然解らず、プログラムとデータの入ったファイル(ブック)がいくつも出来ました。常にデータと共にプログラムがファイル内にある為、ファイルサイズが大きくなるのと、新しいデータを扱う為に、プログラムの入った雛形のファイル(ブック)を用意しておく必要がありました。

 

 次回は、プログラムによるオートフィルター解除の方法をご説明予定です。お楽しみに。

 

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

hiro-yukioのサイト

8月7日の記事は後日修正し、お知らせ致します。