この記事では、VBAの変数の基本的な使い方とコメントの書き方を、2023年にヒットした映画、「ザ・スーパーマリオブラザーズ・ムービー」を通して学習します。
変数は、箱をイメージして下さい。
Amazonの段ボール箱でも何でも良いです。
注文した品物によって、段ボールの大きさが変わりますよね。
数値でしたら、Integerという大きさの箱を使います。
これは服のサイズで言ったら、Sサイズ、Mサイズ、Lサイズ、みたいなものでしょうか。
その変数の箱に、「変数に付けたい名前」を書いた紙を貼るイメージで、
変数に名前を付けます。
下記のプログラムでは、マリオがドンキーコングに攻撃する「回数」に数値型の変数を割り当てます。
その変数である、ドンキーコングに攻撃する「回数」を、プログラム実行中にユーザーが好きな値を入力出来るように、InputBoxという入力するボックスを使って、回数を入力します。
変数を定義するとき、Dimと記述します。
コードを分かりやすくするため、コメントを入れました。
コメントは、「’」(シングルクォーテーション)で記述します。
数値と文字列を連結するのに「&」(アンパサンド)を使います。
Sub 変数1()
Dim 回数 As Integer '数値型の変数「回数」を宣言
回数 = InputBox("ドンキーコングを攻撃する回数を入力して下さい。")
MsgBox " マリオはドンキーコングを" & 回数 & " 回攻撃した!!"
End Sub
回数を5とします。
InputBoxに入力します。
Enterを押すと、このようにメッセージボックスで、入力した回数が表示されました。
お疲れ様でした。
ここで一旦、写真で休憩を挟みます。
みなとみらいの夜景、横浜ランドマークタワーから撮影しました。
次に、文字を入れる変数の箱を用意します。
箱の大きさは、Stringというサイズの箱を用意します。
箱には「敵の名前」と書いた紙を貼っておくイメージです。
InputBoxで、「敵の名前」に入れる名前を「クッパ」と入力します。
数値型の回数には「678」を入れます。
今度は結果をイミディエイトウィンドウに出力します。
Sub 変数2()
'文字列型の変数「敵の名前」と数値型の「回数」を宣言
Dim 敵の名前 As String, 回数 As Integer
敵の名前 = InputBox("敵の名前を入力して下さい。")
回数 = InputBox("攻撃する回数を入力して下さい。")
Debug.Print "マリオは" & 敵の名前 & "を" & 回数 & " 回攻撃した!!"
End Sub
「クッパ」と入力してEnterを押します。
「678」と入力してEnterを押します。全角でも大丈夫です。
イミディエイトウィンドウの出力結果です。
お疲れ様でした。
ここで一旦、写真で休憩を挟みます。
お台場レインボーブリッジです。
次に、変数の演算をしてみましょう。
マリオはクッパにパンチとキックをして攻撃をします。
変数「パンチ」の回数と、変数「キック」の回数を合計して、
その合計値を変数「ダメージ」に格納します。
式で書くと、
ダメージ=パンチ+キック
になります。
Sub 変数3()
'文字列型の変数「敵の名前」と数値型の「ダメージ」を宣言
Dim 敵の名前 As String, ダメージ As Integer
'数値型の変数パンチとキックを宣言
Dim パンチ As Integer, キック As Integer
'敵の名前やパンチ、キックの回数を入力
敵の名前 = InputBox("敵の名前を入力して下さい。")
パンチ = InputBox("マリオのパンチの回数を入力して下さい")
キック = InputBox("マリオのキックの回数を入力して下さい")
'ダメージを「足し算」して求める
ダメージ = パンチ + キック
'メッセージボックスに結果を出力
MsgBox "マリオは" & 敵の名前 & "に" & ダメージ & "のダメージを与えた!!"
End Sub
実行してみます。
名前に「クッパ」と入れます。
マリオのパンチの回数を「2」と入力します。
マリオのキックの回数を「4」と入力します。
出力結果です。
上記のプログラムではメッセージボックスに出力しましたが、今度はExcelシート上のセルに出力してみます。
下のコードに「←を変更」と書いた所と、プロシージャー名を「変数4」にした箇所以外は、そのままです。
Sub 変数4()
'文字列型の変数「敵の名前」と数値型の「ダメージ」を宣言
Dim 敵の名前 As String, ダメージ As Integer
'数値型の変数パンチとキックを宣言
Dim パンチ As Integer, キック As Integer
'敵の名前やパンチ、キックの回数を入力
敵の名前 = InputBox("敵の名前を入力して下さい。")
パンチ = InputBox("マリオのパンチの回数を入力して下さい")
キック = InputBox("マリオのキックの回数を入力して下さい")
'ダメージを「足し算」して求める
ダメージ = パンチ + キック
' Excelシート上のセルに出力 ←ここを変更
Range("A1").Value = "マリオは" & 敵の名前 & "を"
Range("A2").Value = パンチ & "回" & "パンチして、"
Range("A3").Value = キック & "回" & "キックして、"
Range("A4").Value = ダメージ & "のダメージを与えた!!"
End Sub
実行結果は、このようにExcelのシートに出力されました。
お疲れ様でした。
ここで一旦、写真で休憩を挟みます。
江ノ電 鎌倉高校前の海
今度はRangeでは無く、Cells指定にします。
これまで、
ダメージ = パンチ + キック
と計算していた所を掛け算にして、
ダメージ = パンチ * キック
としてみます。
×は「*」(アスタリスク)を使います。
Sub 変数5()
'文字列型の変数「敵の名前」と数値型の「ダメージ」を宣言
Dim 敵の名前 As String, ダメージ As Integer
'数値型の変数パンチとキックを宣言
Dim パンチ As Integer, キック As Integer
'敵の名前やパンチ、キックの回数を入力
敵の名前 = InputBox("敵の名前を入力して下さい。")
パンチ = InputBox("マリオのパンチの回数を入力して下さい")
キック = InputBox("マリオのキックの回数を入力して下さい")
'ダメージを「掛け算」して求める ← ここを掛け算にします。
ダメージ = パンチ * キック
' Excelシート上のセルに出力 ← Cellsで指定しています。
Cells(8,2).Value = "マリオは" & 敵の名前 & "を"
Cells(9,3).Value = パンチ & "回" & "パンチして、"
Cells(10,4).Value = キック & "回" & "キックして、"
Cells(11,5).Value = ダメージ & "のダメージを与えた!!"
End Sub
同じように、
敵の名前=「クッパ」
キック=「2」
パンチ=「4」
と入力しました。
その出力結果です。
ダメージは2×4で8になっています。
掛け算を追えたところで、今度は「べき乗」を求めます。
掛け算では 2×4で8でしたが、べき乗にすると、2を4回かけるので、2×2×2×2=16になります。
(2の何乗に興味のある方は、ITパスポートや基本情報記述者試験のページをご参照下さい。)
べき乗は、キーボード右上の「へ」の所にあります。
ダメージの計算結果は、メッセージボックスに出力します。
Sub 変数6()
'文字列型の変数「敵の名前」と数値型の「ダメージ」を宣言
Dim 敵の名前 As String, ダメージ As Integer
'数値型の変数パンチとキックを宣言
Dim パンチ As Integer, キック As Integer
'敵の名前やパンチ、キックの回数を入力
敵の名前 = InputBox("敵の名前を入力して下さい。")
パンチ = InputBox("マリオのパンチの回数を入力して下さい")
キック = InputBox("マリオのキックの回数を入力して下さい")
'ダメージを「べき乗」して求める ← ここをべき乗にします。
ダメージ = パンチ ^ キック
'Excelシート上のセルに出力 ← メッセージボックスに出力します
MsgBox "マリオは" & 敵の名前 & "に" & ダメージ & "のダメージを与えた!!!"
End Sub
パンチとキックは「半角数字で」入力して下さい。
私の環境では全角で入力したら、オーバーフローしてしまいました。
お疲れ様でした。
ここで一旦、写真で休憩を挟みます。
江ノ電、鎌倉高校前駅の海です。
いよいよ最後です。
「ザ・スーパーマリオブラザーズ・ムービー」の映画チケット代金を出力します。
一般1,500円です。
チケット代は、 Currency(カレンシー)という通過型の箱を用意します。
「チケット代」と紙に書いて、それを箱に貼るイメージです。
文字列型の「映画タイトル」の箱も用意します。
ここでは簡単に、「マリオの映画」と入力します。
Sub 変数7()
'通過型Currencyの変数チケット代と、文字列型映画タイトルを宣言
Dim 映画タイトル As String, チケット代 As Currency
映画タイトル = InputBox("見たい映画のタイトル名を入力して下さい。")
チケット代 = InputBox("チケット代を入力して下さい。")
MsgBox 映画タイトル & "の一般料金は、" & チケット代 & "円です。"
End Sub
上記のプログラムを、
映画タイトル:「マリオの映画」
チケット代:「1500」
と入力すると
この様に出力出来ました。
参考にした記事:
【超初心者向き】Subプロシージャの基本を5分で理解する
【VBA】Currency (通貨型変数)
ザ・スーパーマリオブラザーズ・ムービー特別映像解禁
「ザ・スーパーマリオブラザーズ・ムービー」のムビチケ前売り券が12月16日より販売開始
皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・
逗子海岸です。
最後までご精読、誠にありがとうございました!!
仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!
こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。
※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪
最後までご精読、誠にありがとうございました!!
自己紹介
VBA自作サンプルプログラム集へ戻る
取りあえず事務職で働きたいから手っ取り早くExcel教えてくれ
MOSなどの資格試験対策