Excel VBAを速攻で覚えたい③ ~変数編~
こんにちは、こたつです。
いよいよ今回が最後の章、「変数」についてです。
Excelを操作する際、変数が使えることですごく便利になります。
ゴールは目前、早速行きましょう!
目次
変数とは
「変数」とは、値を入れる箱のようなものです。
そして「変数」という名前の通り、その箱の中の数(値)は変えていくことができます。
とりあえず実際に見ていきましょう。
まずは以下の表をExcelに貼り付けてください。(貼り付ける場所に注意してください!今回はセルA1を選択して貼り付けます)
獲得日 |
獲得金額(円) |
---|---|
7月1日 |
1500 |
7月2日 |
1000 |
7月3日 |
500 |
7月4日 |
3000 |
7月5日 |
1200 |
7月6日 |
2000 |
7月7日 |
900 |
7月8日 |
1500 |
7月9日 |
800 |
7月10日 |
1000 |
7月11日 |
600 |
7月12日 |
2000 |
こんな感じになったと思います。
ちなみにここでVBAによってやりたいことは、獲得金額が10000円を超えた日付に印をつける、ということにします。
続いて標準モジュールを開いて([ALT] + [F11] でも開ける)、新しく次のコードをコピペしてください。(気合の入った人は手入力してもらって構いません)
Sub テスト3() Dim 金額 As Integer 金額 = 0 Range("B2").Select Do Until 金額 >= 10000 金額 = 金額 + ActiveCell.Value If 金額 >= 10000 Then ActiveCell.Offset(0, 1).Value = "10000円達成!" End If ActiveCell.Offset(1, 0).Select Loop End Sub
こんな感じですね。
このコードの中にある「金額」が変数となります。
解説していきましょう。
まず変数を使うためには、変数を宣言する必要があります。
Dim 金額 As Integer
これが変数の宣言です。
「Dim」と「As」は決まり文句です。
「金額」は変数名であり、「獲得金額」にしようが何にしようが構いません。
「Integer」は、その変数という箱の種類のひとつです。
その箱の種類には他に「String」などがあり、「String」は文字列を入れるための箱、「Integer」は数値(整数のみ)を入れるための箱という感じです。
とりあえずはこの2つを覚えてもらえればと思います。
今回は数値を取り扱うので「Integer」にしました。
ちなみに Dim 金額 As Integer の後の 金額 = 0 によって、「金額」という箱の中に「0」という数値が入ることとなります。
では細かい説明は後にして、まず再生ボタンを押して動かしていきましょう。
はい、10000円を超えた日付に文字が入力されました。
先程のコードを解説していくと、
まず変数を宣言した後、金額 = 0 により、金額という変数に「0」という数値が入りました。
そして Do Until 金額 >= 10000 は、金額の数値が10000円以上になるまで、中の処理がループされるということです。
次の 金額 = 金額 + ActiveCell.Value ですが、数学的な考えをする理系の人にとっては違和感を感じるかもしれませんが、
これは(一週目では) 金額 = 0 + 1500 ということです。(ここの1500はセルB2の値のこと)
つまりこの時点で、「0」だった金額という変数は「1500」に入れ替えられることになります。
そして次の、
If 金額 >= 10000 Then
ActiveCell.Offset(0, 1).Value = "10000円達成!"
End If
というコードを見てもらうと、この金額が10000円以上になれば、右に「10000円達成!」という文字が入力されるようになっています。
ちなみに「10000円達成!」が"(ダブルクォーテーション)で囲まれていますが、数値ではなく文字列の場合は"(ダブルクォーテーション)で囲まなければならないというルールがあります。
そしてループの2週目では、金額 = 1500 + 1000となるので、金額は2500に入れ替えられます。(ここの1000はセルB3の値のこと)
そのように繰り返していくと、7月7日の時点で金額は10100となり、if ~ Thenステートメント内の処理が行われ、「10000円達成!」が入力されるというわけです。
以上が「変数」の説明となります。
お疲れ様です!
理解できたでしょうか?
「まあ・・・なんとなく・・・・・・」
という感じだったら十分です。
プログラミングははっきり言って難しいです。
一度やっただけで完璧に理解するのは不可能です。
何度もコードを書くことで、徐々に理解を深めていくことができます。
他にも覚えることはいくつもありますが、ここまでついてきてくれた皆さんは、VBAを理解たといっていいでしょう。
後はどんどんコードを書いて、できることを増やしていくだけです。
めざせ、VBAマスター!
おわりに
【Excel VBAを速攻で覚えたい】シリーズでは、Excelの操作から、ステートメント、変数について、足早ですが一通り説明しました。
基本的にこれらのことが理解できれば、VBAの仕組みはある程度理解したということになります。
しかしVBAの世界はまだまだ奥が深いです。
などVBAによってできることはいくらでもあります。
むしろできないことはない、と思ってこれから使っていってよいと思います。
ちなみに、これから本格的にVBAを学んでいきたいという方には、下記の本をお勧めします。
実際に私もこの本で、VBAをマスターしました。
非常に丁寧でわかりやすく書かれており、Excel VBAを学ぶ王道の一冊と言っていいでしょう。
それでは、皆さんがVBAマスターになることを心から祈っています。
ここまで読んでいただきありがとうございました!