変数の宣言サブプロシージャ「転記」は、データを転記する作業です。手作業だとそのままコピペして、名前の列をそれぞれのコードの後ろに挿入することでしょう。マクロの記録で手作業を再現すれば、記録した動きを毎回同じように実行してくれます。ここでは、練習のために敢えて変数を使います。変数の宣言を行います。赤線の部分を書き加えてください。「“a”は変数ですよ!」という宣言になります。これは、暗記してください。「a=1」は「”a”は1です。これは、後に書き加えるプログラムの準備です。この変数を操作してプログラムを実行します。Until〜Loop」について解説します。赤線の部分を書き加えてください。Sheets”生data”.Cells(a,1)=“”〜Loop」の意味は、シート名「生data」のa行1列のセルが空白になるまで実行してください。空白になったらLoopを抜けてください。)内は「行」/「列」の順番で表記します。sample1.xlsを例にすると、シート”生data”の1行目〜295行目までは空白ではありませんからDoとLoopの間を繰り返します。「シート”生data”の296行目になったらLoopを抜けてください。」ということになります。いかがですか?VBEの画面とエクセルの画面を見比べる作業が増えてませんか?できるだけ負担を減らすために、印刷した「program_01」を参照しながら進めてくださいね。data”シートに貼り付け、コードの後ろに各テーブルから名前を持ってくる準備を行います。赤枠の部分を書き加えてください。data”シートのa行1列のセルに”生data”シートのa行1列のセルの値を持ってきてください」という意味です。data”シートのセルA1に”生data”シートのセルA1の値を持ってきてください」ということになります。data”シートのa行4列のセルに”生data”シートのa行3列のセルの値を持ってくるように」命令しています。これは、コードの後ろに名前を入れるペースを空けるためです。4行目、5行目も同様です。エクセルのシート間を見比べるとその意味が解るでしょう。最後のa=a+1は、「次の行に移ってください」という意味です。a=1でしたから1つ加えたら2ですね。Do〜Loopの間は繰り返されるので、1行ずつプログラムが実行されて行く訳です。Sub」プログラムを終了します。これで、転記の作業は終了です。マクロの実行プログラムを実行してみましょう。「転記」のマクロが表示されます。「転記」を実行してください。data”シートに名前を入れる列を空けたデータが転記されます。以上が「転記」のマクロです。次に、各テーブルから名前を持ってくる作業を行います。data”シートをご覧ください。table”シートの”エリア名”を紐付ける作業を行います。手作業で行うなら、関数VLOOKUPで簡単にできる作業ですが、area/category/sizeの3列に式を入れることを考えると、瞬時にはできません。毎日の定型業務ならワンクリックで済ませたいものです。プログラムのイメージを共有しましょう。data”シートの1行目の3列目(C列)に”area名”と書き込みます。table”シートのA列から探し出します。table”シートのB列の値を表示させます。マクロを書いてみましょう。data”シートの1行目の3列目(C列)に”area名”と表示させる命令を書きます。上記のように、セルを指定して、=”area名”とするだけです。2行目からは、変数を使います。table”シートのA列を縦に探していきます。1行ずつ移動して探す訳です。サブプロシージャの「転記」では、2つのシートで1行ずつ連動していたので変数は1つでした。table”シートのA列から1行ずつ移動しながら探すので、変数が2つ必要になります。table”シートの変数をbとします。“加工data”シート側の動きは、データが空白になるまで実行されればいいので、と書きます。今、”a”は2行目です。table”シートの”b”行目A列のコードが一致するまで1行ずつ照合します。プログラムで表現すると、となります。table”シートの2行目からスタートしてください」という意味です。table”シートの”b”行目A列のコードが一致することを表しています。ここで注意するのは、コードが一致しない場合を想定するか?しないか?です。1)=“”のプログラムは必ず加えましょう。新しいエリアや商品により、元データに新しいコードが発生し、そのコードがテーブルに存在しない場合は、延々と探し続けることになるからです。table”シートのA列が空白になったらLoopを抜ける」というプログラムになります。しておけば、不一致のコードが発生した場合でも、探し続けることなく処理を続行します。不一致の部分は空白のままとなります。ここで、プログラムの改行について触れておきます。プログラムの改行には決まりがあります。プログラムを繋いでいて、見易くするために改行するときは、スペース+アンダーバーを入れてください。_(改行)マクロが長くなって一読できないときにしばしば用いますので、覚えておいてください。さぁ、紐付けの最終段階です。使って、一致した場合と不一致の場合と2つの条件を指定しました。次の命令は、「一致したら値を転記し、不一致なら何もしない」という内容です。実行せよ...という命令です。1)=“”が正なら何もしない。