という事実は知っているだろうか?まだ知らないならこの記事をみて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コードのきれいな書きかたをここにすべて記す【まとめ】を見てみるといい。役に立つから。