広告

【プログラミング入門】【VBA】4日目 変数とは?

2022.10.10更新

ExcelVBAでプログラミング入門のタイトル画像になります

お仕事などでお馴染みの表計算ソフト、エクセルに付属しているExcelVBA(エクセルブイビーエー)というプログラミング言語を使って初心者・入門者向けにプログラミングのキホンを解説していきます!

ExcelVBAができるようになれば業務内容によってはボタン一つで大幅な業務効率化ができる他に、普段のエクセルの使い方も段違いにレベルアップする事ができます!

ベテランの方も新人さんも興味のある方はぜひ挑戦してみてください!

変わる数(変数)

プログラムの中で変化する数(ゲームで言うなら主人公の体力とか、残り時間とか、敵の居場所とかとにかく変化する数はなんでもです!)を使う時は「変数(へんすう)」という入れ物を用意してそこで管理します。

変数を使ってみよう!

使う時はわかりやすいように名前をつけます!プログラムを書く時と同じでキホンは半角でアルファベットで小文字です。

おにぎりだったら「onigiri」みたいに、自分が使いやすい名前で大丈夫です。ExcelVBAの命令と同じはダメです!

■こんなのが大丈夫です■

・○一文字だけ・・・a b c d e

・○番号をつける・・・a1 a2 a3 a4 a5

・○日本語のローマ字・・・ringo mikan enpitu

・○途中にアンダーバー・・・no_1 no_2

■こんなのがダメです■

・×数字だけ・・・1 2 3 4 5 6

・×数字が頭・・・1a 2a 3a 4a

・×日本語・・・りんご みかん えんぴつ

・×最初にアンダーバー・・・_no1 _no2

今回は「変数を用意して適当な値を入れて表示する」というトコロまでやってみます。

プログラミングしてみましょう!

■4日目 プログラム1■


'4日目 プログラム1

Sub test()

	Dim suji As Integer

	suji = 100

	MsgBox "らっしゃい!今なら桃一個" & suji & "円だよ"

End Sub

■実行結果■

VBAにおける変数を使ったプログラムの基礎の説明画像1

■説明■

プログラムの中の「Dim suji As Integer」に注目してください。

変数を使う時は、この「Dim」を最初につけます。そして変数名を書いてお尻に「As Integer」というのをつけます。今回は「suji」が変数の名前です。

「変数「suji」を今から使います!」というのをコンピューターに伝えるワケです!

この事を「変数を宣言する」っていいます。変数を使う時は必ずその変数を使う前に行います!

プログラムの最初の部分にまとめて書いておくのが良いと思います。

■初期化(しょきか)■

変数を宣言した後に必ず何かしらの値を変数に入れてあげるのがきまりになってます。これを初期化するっていいます。


suji = 100

ここで初期化してます。もし入れる値が決まってない時は「suji = 0」のように「0」でも入れておきましょう!

■変数の内容を表示■

ただ変数の内容を表示したい時は


MsgBox suji

これだけで大丈夫です。

「"」ではさまないトコロに注意です。

■メッセージと一緒に表示■

他のメッセージと一緒に表示したい時は


MsgBox "らっしゃい!今なら桃一個" & suji & "円だよ"

メッセージ部分は「"」で囲って、変数部分は「&」で結びます。

MsgBox内で改行

「&」の事を連結記号と言いまして文字と文字、変数と文字などをつなぐ事ができます。

ここに「改行コード」なるものをつなげる事によってMsgBox内で改行する事ができます。

プログラムで確認してみましょう!

■4日目 プログラム2■


'4日目 プログラム2

Sub test()

	MsgBox "あいうえお" & vbCrLf & "かきくけこ" & vbCrLf & "さしすせそ"

End Sub

■実行結果■

VBAにおける変数を使ったプログラムの基礎の説明画像2

■説明■

改行コード「vbCrLf」を連結する事によってMsgBox内で改行する事ができます。

これを使えばメッセージが長くなった時に横に広がるのを防止できますね。

改行コードと変数を続けてつなぎたい時などは


MsgBox "らっしゃい!今なら桃一個" & vbCrLf & suji & "円だよ"

のようにします。

文字や文章を入れる場合

変数の中に文字や文章を入れる事もできます。

今は何に使うか想像しづらいかもしれませんが、大きいプログラムの中で文章なんかが色々な場所に散らばっていると、とてもわかりづらいので変数としてまとめておく事が多いです。

■4日目 プログラム3■


'4日目 プログラム3

Sub test()

	Dim bunsyou As String

	bunsyou = "おはようございます。"

	MsgBox bunsyou & vbCrLf & "今日はいい天気ですね!"

End Sub

■実行結果■

VBAにおける変数を使ったプログラムの基礎の説明画像3

■説明■

文字や文章を入れる時はお尻の部分に「As String」というのをつけます。

そしてメッセージ部分を変数に入れる時は「"」で囲みます。

他は数字の時とほとんど変わりありません。

数字の時は「As Integer」

文字の時は「As String」

ここのトコロをしっかり覚えましょう!

広告

整数型・文字型

変数には「型」というものがありまして扱えるもの、範囲などが細かく決められております。

通常のエクセル上でも数値を入れた時に「数値」として扱うか「文字」として扱うか決める時がありますよね。

あんな感じです。

先ほど紹介した変数の場合は

「As Integer」・・・整数型

「-32768 ~ 32767」の範囲、小数は使えない

「As String」・・・文字型

最大約20億文字まで保存可能

のようになります。

VBAにおける変数の扱える数の範囲の説明画像

↑扱える数の範囲を超えた場合のエラー↑

他にも

「As Long」・・・長整数型

「-2147483648 ~ 2147483647」の範囲、小数は使えない

「As Variant」・・・何でも

もちろん限度はあるが整数、小数、文字なんでも保存可能

などがあります。(他にもSingle,Doubleなどなどいろいろあります)

今回はプログラミング入門なので細かい説明は省略しますが、いくらコンピューターと言っても扱える数に限界があるというトコロを覚えておいてください。

最後の「Variant」についてですが、とりあえず何でも使える便利な変数なのですが、何も考えずにこれを使っていると思わぬエラーを引き起こす原因になったりもするので当サイトでは基本的に「整数型Integer」・「文字型String」を使って解説していきたいと思います。

プログラミングしながら慣れましょう!

■4日目 プログラム4■


'4日目 プログラム4

Sub test()

	Dim suji As Integer
	Dim suji2 As Integer

	suji = 100
	suji2 = 200

	MsgBox "sujiの内容 = " & suji
	MsgBox "suji2の内容 = " & suji2

End Sub

■実行結果■

VBAにおける変数を使ったプログラムの基礎の説明画像4

■説明■

もちろん2つ以上の変数も使う事ができます。

■4日目 プログラム5■


'4日目 プログラム5

Sub test()

	Dim suji As Integer , suji2 As Integer , bunsyou As String

	suji = 100
	suji2 = 200
	bunsyou = "おはよう!"

	MsgBox "sujiの内容 = " & suji
	MsgBox "suji2の内容 = " & suji2
	MsgBox "bunsyouの内容 = " & bunsyou

End Sub

■実行結果■

VBAにおける変数を使ったプログラムの基礎の説明画像5

■説明■

「,」でつなげて複数宣言する事も可能です。

■4日目 プログラム6■


'4日目 プログラム6

Sub test()

	Dim bunsyou As String
	Dim suji As Integer
	
	bunsyou = "テストの点数は"
	suji = 100

	MsgBox bunsyou & suji & "点でした!"
	
End Sub

■実行結果■

VBAにおける変数を使ったプログラムの基礎の説明画像6

■説明■

変数同志をつなげる事もできます。

エクセル画面の値を取得・表示

前回学んだ「Range」・「Cells」命令を使ってエクセル画面から値を取得、表示してみましょう。

■4日目 プログラム7■


'4日目 プログラム7

Sub test()

	Dim bunsyou As String
	Dim suji As Integer
	
	bunsyou = Worksheets("Sheet1").Range("A7").Value
	suji = Worksheets("Sheet1").Cells(8,1).Value

	MsgBox bunsyou & suji & "円!"
	
End Sub

■実行結果■

VBAのRange,Cells命令を使った値の取り込みの説明画像

■説明■

「Range」・「Cells」命令を使ってエクセル画面から値を取得する事ができます。

「A7セル」の「焼肉弁当」と「A8セル」の「480」という値をそれぞれ取得してみました。

使い方は


bunsyou = Worksheets("Sheet1").Range("A7").Value

のように「Value」まで書けばそこのセルに入っている値を取得する事ができます。

もちろん「Range」・「Cells」命令を使って変数の値をエクセル画面上に書き込む事もできます。

今回は変数に決まった値を入れるだけでしたので、次回より計算などを通して変数の値を文字通り変化させていきたいと思います。

次回

5日目 計算のやり方(四則演算)

広告

Copyright 2016 K.N/petitetech.com