つれづれ電脳記(日くらしPCに向かひて)

つれづれなるままに、日くらしPCに向かひて、その悪戦苦闘ぶりをそこはかとなく書き付くるおじさん。たまに雑談[管理人:goosyun]

つれづれなるままに、日くらしPCに向かひて、デジタル関係の悪戦苦闘ぶりをそこはかとなく書き付くるおじさんです。
たまに雑談してます。連絡・問い合わせフォームは、ページ最下部に置いています。[著者(運営人):goosyun]

(当ブログには本文中に広告リンクが含まれています。)

処理単位ごとにサブルーチン化するVBAテクニック


 zip圧縮ファイルの解凍作業を自動化するために、
  Excel作業をVBAで効率化」
というサイトに掲載され、一般向けに提供されている Excel VBAマクロのコードを利用させてもらいました。

 上記サイトの紹介記事は、
  こちらをご覧ください。

 上記サイトで提供されているVBAコードにおいては、
 解凍処理の本体部分は「解凍関数」として独立させ、別個のプロシージャとしています。

 その「解凍関数」を、別のプロシージャから呼び出す仕組みになっています。
 呼び出し元のプロシージャ中に、「解凍関数」名が記述されており、それによってその関数が呼び出されて解凍処理を行い、その処理結果(解凍処理がうまく完了したか、失敗したか)を、呼び出し元に返します。
 処理の一部をサブルーチン化するテクニックです。
 
 そのように、なかなか洗練された作りになっています。
 大きなプロシージャを一つ作成するよりも、処理単位ごとに小分けして、独立のプロシージャとして作成することには、たくさんのメリットがあります。

 そのメリットの一つが、処理本体部分には一切手を加えることなく、入り口となる呼び出し元プロシージャを、各自の必要に応じて、自由に編集できる、というものがあります。
 今回、私も、そのメリットを享受させてもらいました。

 入口となる親プロシージャを編集して、47個のzipファイル(47都道府県の郵便番号zipデータ)を、一気に解凍できるようにしました。

 一応の参考として、私が書いたVBAコードを掲載しておきます。




 素人が書いたコードなので、修正した方がよいところがあるかもしれません。もし、そうした箇所があれば、やさしいコメントをお願いします(厳しい語調での指弾は、勘弁してください。)。




それでは、また次の記事で
goosyun