PR

 第17回から続けて解説している「Sabun」マクロですが、今回は以下に示すステップの3番目、このマクロの中心となる2つの表の差分を調べる処理を取り上げていきます。

(1)「作業用」シートに残っている過去のデータをクリアする
(2)「更新前」「更新後」それぞれの表を「作業用」シートにコピーする
(3)「作業用」シートにある2つの表の差分をチェックする

 ただし、「Sabun」マクロでの(3)の処理は、いっきに内容を読み解くには少々複雑です。この処理には「Do Until~Loop」という新しい繰り返し処理の構文が使われているのですが、まずはこの構文の使い方をシンプルな例題をもとに解説していくことにしましょう。

可変のデータを対象に、特定のデータを検索する

 まず、特定のセルに入力されたデータを検索条件として、それと同じデータを可変のセル範囲から探すような場合を考えてみましょう(図1)。この例では、検索条件となるデータはA2セルに入力されている「ざくろ」であり、それと同じ「ざくろ」をいう品名がD2~D8のセル範囲の中にあるかをチェックすることになります。ただし、D列に入力されているデータ数は可変としますので、セル範囲の末尾は変動します。

20-1.jpg
図1 A2セルに入力されたデータがD列に存在するかをチェックする

 このようなときのデータを検索していく方法はいろいろあるのですが、D2セルから下方にデータがなくなるまで、セルの値を順番にチェックしていく方法が定番作法のひとつです。