マクロを組む前に最低限の知識を
何かのきっかけでプログラミングを覚えようと考えたあなたへ
前回の記事では、具体的に手順を考えてきました。そろそろ手順を考えているだけでは飽きてしまうでしょうから、そろそろ実際にコード化してみましょう。
コード化してみよう
これまでに考えてきた手順をコード化してみます。
B3セルの数値が、九九の表の横軸(1行目)の何列目にあるか探す。
- 九九の表のB1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、2列目に中にある。
- 九九の表のC1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、3列目に中にある。
- 九九の表のD1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、4列目に中にある。
- 九九の表のE1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、5列目の中にある。
- 九九の表のF1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、6列目の中にある。
- 九九の表のG1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、7列目の中にある。
- 九九の表のH1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、8列目の中にある。
- 九九の表のI1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、10列目にある。
Dim lngIndex As Long
Dim lngColumn As Long
For lngIndex = 2 to 10
If Cells(1,lngIndex).Value = Range("B3").Value Then
lngColumn = lngIndex
End If
Next lngIndex
単純にコード化してみました。(※このコードは実際には実行できません)どの手順が、どの構文に対応しているか考えてみてください。手順の1〜9は同じようなことを繰り返しているということが、ポイントになります。
覚えておきたい構文
今回のコードの中で、利用した3種類の構文は、最低限覚えておい他方が良いものです。
Dim文
「変数」とは処理中で変わる可能性のある値を入れておく入れものになります。その入れものに「名前」と「型」という中身の種類をつける構文がDim文です。基本的な変数の型には、次のものがあります。
- 数値型 Long
- 文字型 String
- 日付型 Date
例文のコードでは「lngIndex」と「lngColumn」の2つが宣言されています。
For文
処理をいくつか繰り返す構文です。「For」で始まり「Next」で終わる入れ子の書き方で記述し、入れ子の中に記述された処理が、繰り返す回数で指定された回数だけ繰り返されます。その繰り返す回数を示すために変数が利用されます。
例文のコードでは「lngIndex」が、その繰り返す回数を示す変数になっています。
If文
値を比較する構文です。「If」で始まり「End If」で終わる入れ子で記述します。基本的な比較式には、次のものがあります。
- 等しい「=」
- より小さい「>」
- 以下「>=」
- より大きい「<」
- 以上「<=」
これによって、比較した結果、条件を満たす、満たさないによって、処理を分けることができます。
例文のコードでは、セルの内容を比較しています。
コード化してみよう(続き)
横軸での手順をもとに、縦軸側の探す手順をコード化してみましょう。なお、「Column」は「列」なので、「行」は「Row」で表します。
ここに記述したコードでは実行できませんが、何がいけないのか探してみるのもプログラミングの一興です。
次は