プログラミングの"変数"とはExcelのセルといっしょである
「プログラミングでいう変数。じつはExcelをふだん使ってるなら変数を使ってる。」

という事実は知っているだろうか?まだ知らないならこの記事をみてExcelのどこで変数を使ってるのかおしえていこう。

Excel = 変数?

まず簡単に変数というのはつぎのようなことをいう。

なんかいも参照(使う)する可能性があるものをいつでも取り出せる箱

たとえばExcelで税込金額を計算したいとする。2021年12月4日現在は、1.10をすればいいわけだが。ただ税込計算したいデータは1万件ある。

かりに消費税が15%に上がったらどうだ?1万件手作業で1.15にして計算する?

ちょっとExcelができるなら、A1セルに1.15と書いて、$A$1セルを参照にするはずだ。1万件変えるのはめんどいから。

A2セルに税抜き金額10,000円
A1セルに消費税1.15とあるとき

=A2*$A$1

結果は11,500円

この$A$1セルを参照すること。1.15という数値をいれること。それこそ変数を参照、格納することと同じってこと。

男性、女性で集計したいときどうする?

もうひとつ例をだそう。あなたは男性と女性でそれぞれあなたのWEBサイトに訪問した回数を合計したいとする。

少しでもExcel関数ができるならすぐSUMIFが思いつくはずだ。

たとえば男性の文字をD2セル、女性の文字をD3セルにいれてE2、E3セルにそれぞれのあなたのWEBサイトに訪問した回数を合計を出力するでしょ?

A列に性別のデータ。B列にあなたのWEBサイトに訪問した回数のデータ。
100件のデータがあり、男性の文字がD2セルにあるとき

=SUMIF(A2:A101, D2, B2:B101)

このD2、D3セルが変数と同じってこと。そうすればデータが女性から女になってもD3セルを変えるだけ。

なんかいも使う可能性があるものは変数にする

と覚えれば実際に使うとき府に落ちるはずだ。

実際にどう使うか

さて、じゃあ実際にどう使うのか?ここではVBAで説明していこう。


Sub testSignal()
    
    ' 現在の信号をsignalという変数に入れる
    Dim now_signal As String
    now_signal = "あか"
    
    If now_signal = "あか" Then
        MsgBox "あぶないから止まって!"
    ElseIf now_signal = "あお" Then
        MsgBox "うん、渡っていいよ。"
    ElseIf now_signal = "きいろ" Then
        MsgBox "そろそろあぶないよ。"
    End If
    
End Sub

変数はnow_signalだ。このnow_signal変数はさっきの$A$1セルやD2、D3セルといっしょということ。

なぜ変数にしてるかってtestSignalのなかでnow_signalを3回も使ってるわけだ。たとえば、now_signalが「きいろ」になったら3回も変えるのは大変でしょ?

なんかいも使う可能性があるものは積極的に変数にしていく

ということが大事。

まとめ: めんどくさいことを無くすために変数を使おう

なんかいも参照(使う)する可能性があるものをいつでも取り出せる箱

と教えたが、まあ簡単にいえばめんどくさいことを無くすために変数使おうぜ。って話。

ただ注意してほしいのが、変数の名前。意味のない変数名はつけないように。

あなたがVBAでちゃんとした変数名をつけたいなら【保存版】VBAコードのきれいな書きかたをここにすべて記す【まとめ】を見てみるといい。役に立つから。