読者です 読者をやめる 読者になる 読者になる

アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

ExcelVBA入門 #3:プログラミングには必須!変数ってなんぞ?

練習問題:これが分かる・できる人は以降読まなくても大丈夫

  • 変数が宣言できる
  • 変数の型がなんとなくわかる
  • 変数に値を代入したりそれを使ったりできる
  • コード中にコメントが書ける

はじめに

さて、今回は「変数」について。
VBAに限らずですが、変数が上手く使えるかどうかでプログラムの出来は全然違ってきます。重要です。だいじです。

まあ大抵のプログラミング言語で使うものなので、プログラミング経験者の方は適当に読み飛ばして、宣言の仕方と使い方だけ簡単に確認してください。

で、変数って?

変数とは、データを入れておく「箱」みたいなものです。

例えば、「x」という変数を用意し、そこに「2」というデータを入れます。
そして以下のコードを実行してみると、A1セルに、「2」が表示されます。

Range("A1").Value = x

さらに、「y」という変数に「3」を入れて以下のコードを実行してみると、
A1セルに、「2」と「3」が足された「5」が表示されます。

Range("A1").Value = x + y

…ちょっとしたサンプルプログラムだとその便利さがいまいち伝わりませんが、変数は必ず必要になります。
次に、実際の使い方を見てみましょう。

変数の宣言方法

他の多くの言語の例に漏れず、VBAにも「宣言」があります。
データを放り込む前に、「この変数はこういうものを入れるためのものです」と説明してやるのです。

変数を宣言するには、以下のような書き方をします。

Dim A As Long     '整数が入る変数「A」
Dim B As String   '文字列が入る変数「B」
Dim C As Variant  'なんでも入る変数「C」

LongやString、Variantを「型」と呼びます。
VBAの変数の型については、下記の記事を参考にしてください。

honey8823.hateblo.jp

↑は別に初心者向けってわけではないので、何言ってるのか分かんねえよおおおって方はこちらもどうぞ。気は楽になると思います。

参考:型は覚えなくていい - Office TANAKA
http://officetanaka.net/excel/vba/variable/03.htm

また、コードの中に「'」と書くと、そこから先はコメントとなり、プログラムとして認識されません。
上記のように、プログラムの説明や、一部のコードを一時的に消したいときに使うことができます。

変数の使い方

宣言した変数にデータを格納したり、その変数を使う方法を、以下の例で説明します。

Public Sub test()
    
    '整数型変数「A」を宣言し、2を代入して、A1セルに表示
    Dim A As Long
    A = 2
    Range("A1").Value = A
    
    '整数型変数「B」を宣言し、3を代入して、A+Bの結果をA2セルに表示
    Dim B As Long
    B = 3
    Range("A2").Value = A + B
    
    '文字列型変数「C」を宣言し、「あいうえお」を代入して、A3セルに表示
    Dim C As String
    C = "あいうえお"
    Range("A3").Value = C
    
    '文字列型変数「D」を宣言し、「A4」を代入して、
    'A+Bの結果を「D」で指定したセルに表示
    Dim D As String
    D = "A4"
    Range(D).Value = A + B
    
    '【おまけ:ちょっと難しいやつ】
    '文字列型変数「E」を宣言し、「A5」を代入して、
    'オブジェクト(Range)型変数「F」を宣言し、Eで指定したセルを代入して、
    'Cを「F」セルに表示
    Dim E As String
    Dim F As Range
    E = "A5"
    Set F = Range(E)
    F.Value = C

End Sub

これを実行すると、A1~A5セルに、
「2」「5」「あいうえお」「5」「あいうえお」が表示されるはずです。

次回予告

ExcelVBA入門 #4:エンドレスエイトに学ぶ繰り返し処理 - アナログCPU:5108843109

「なんかプログラミングって面白くないぞ…」「Excelあんまり関係なくね?」
いやいやちょっと待って!面白いのはここからなので!
まどマギだってよく「とりあえずまどかが魔法少女になるまでは見ろ」って言われるじゃん!まって!

というわけで次回、「エンドレスエイトに学ぶ繰り返し処理」!デュエルスタンバイ!


…何故か突然アニオタっぽくなった…(このネタのうち何一つとして見てない)