マクロを組む前に目的を手順を
何かのきっかけでプログラミングを覚えようと考えたあなたへ
前回の記事では、表について触れました。今回は少し具体的に目的を手順にする方法に触れます。
単純にプログラミング言語の構文を覚えるよりも前に、論理的思考を身につけようと論じました。そのために今回は、例題として目的を提示させていただきます。前回作った九九の表を利用して、簡単なマクロを組む準備をしてみましょう。
九九マクロの目的
表計算ソフトなので、「掛け算」などはお得意なのですが、ここはあえて、九九の表を利用して掛け算の結果をマクロで求めてみましょう。
A | B | C | D | E | F | G | H | I | J | |
1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
2 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
3 | 2 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 |
4 | 3 | 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 27 |
5 | 4 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 |
6 | 5 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 |
7 | 6 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 |
8 | 7 | 7 | 14 | 21 | 28 | 35 | 42 | 49 | 56 | 63 |
9 | 8 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 |
10 | 9 | 9 | 18 | 27 | 36 | 45 | 54 | 63 | 72 | 81 |
今回のマクロの目的は、B3セルに入力された値と、D3セルに入力された値を掛け合わせた結果を、F3セルに表示する。というものとします。
A | B | C | D | E | F | G | |
1 | |||||||
2 | 横軸 | 縦軸 | 答え | ||||
3 | 7 | かける | 8 | は | ? | ||
4 |
単純にF3セルに「=B3*D3」という計算式を入力してしまえば、できることなのですが、論理的思考やマクロの組み方を学ぶために、あえてこれをマクロにしてみます。
九九マクロの手順
目的のB3セルに入力された値と、D3セルに入力された値を掛け合わせた結果を、F3セルに表示するを達成するための手順を、まずは大雑把に考えてみましょう。
掛け算マクロの表に入力されている横軸「7」の値は、8列目に見つかります。また縦軸「8」の値は、9行目に見つかります。九九の表の8列目の9行目のセルに入っている「56」という値が見つかり、それが答えになります。
- B3セルの数値が、九九の表の横軸(1行目)の何列目にあるか探す。
- D3セルの数値が、九九の表の縦軸(A列目)の何行目にあるか探す。
- 九九の表の見つけた列と行の交わるセルにある値をF3セルに表示する。
とりあえず、手順の列挙をこの程度からはじめてみて、さらに細かく手順を深めていきます。
「九九の表の横軸(1行目)の何列目にあるか探す」という手順から深めてみましょう。
B3セルの数値が、九九の表の横軸(1行目)の何列目にあるか探す。
手順を深めるためには、その手順が「目的」になります。今回は、九九の表の横軸(1行目)には、B列目の「1」からJ列目の「9」までの9つの列があります。その中からB3セルに入力された値を見つけるというのが、目的になります。まず「見つける」というのは、見比べるセルの値どうしが同じであるということで、「見つけた」となります。
- 九九の表のB1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、2列目に中にある。
- 九九の表のC1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、3列目に中にある。
- 九九の表のD1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、4列目に中にある。
- 九九の表のE1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、5列目の中にある。
- 九九の表のF1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、6列目の中にある。
- 九九の表のG1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、7列目の中にある。
- 九九の表のH1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、8列目の中にある。
- 九九の表のI1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、9列目の中にある。
- 九九の表のJ1セルの値と、掛け算マクロのB3セルの値が同じか?
- 同じ場合は答えは、10列目の中にある。
D3セルの数値が、九九の表の縦軸(A列目)の何行目にあるか探す。
次は、同じように縦軸側の何行目にあるかを探す手順を考えます。これは横が縦になっただけなので、難しくないでしょう。
- 九九の表のA2セルの値と、掛け算マクロのD3セルの値が同じか?
- 同じ場合は答えは、2行目に中にある。
- 九九の表のA3セルの値と、掛け算マクロのD3セルの値が同じか?
- 同じ場合は答えは、3行目に中にある。
- 九九の表のA4セルの値と、掛け算マクロのD3セルの値が同じか?
- 同じ場合は答えは、4行目に中にある。
- 九九の表のA5セルの値と、掛け算マクロのD3セルの値が同じか?
- 同じ場合は答えは、5行目の中にある。
- 九九の表のA6セルの値と、掛け算マクロのD3セルの値が同じか?
- 同じ場合は答えは、6行目の中にある。
- 九九の表のA7セルの値と、掛け算マクロのD3セルの値が同じか?
- 同じ場合は答えは、7行目の中にある。
- 九九の表のA8セルの値と、掛け算マクロのD3セルの値が同じか?
- 同じ場合は答えは、8行目の中にある。
- 九九の表のA9セルの値と、掛け算マクロのD3セルの値が同じか?
- 同じ場合は答えは、9行目の中にある。
- 九九の表のA10セルの値と、掛け算マクロのD3セルの値が同じか?
- 同じ場合は答えは、10行目の中にある。
九九の表の見つけた列と行の交わるセルにある値をF3セルに表示する
最後は、見つかった列目と行目を使って、九九の表の中で交わったセルに入っている値を、F3セルに表示するために、セルに値を入れればおしまいです。
ざっくりとここまでの流れで、引っかかる部分があれば、それを放置しないでください。何が引っかかるのかよく考えて、その理由と答えを必ず見つけて解決してください。