こんにちは! ハマラクです。
VBAを始めるためにExcelの設定も終え、「Hello World」も表示することができた!いよいよプログラム書いていこうと思いつつも何から初めていいのか分からないってなっていますよね。
実は業務改善を目指すVBAには効率的に覚えていく手順が存在しています。
この記事ではVBAでの業務改善で一番初めに覚えてほしい「変数宣言」について説明します。
この記事を読むことで分かることは以下の通りです。
・変数とは何か?なぜ変数を宣言するのか?
・初めに覚えるべき2つのデータ型
・変数に値を入れて表示させてみよう!
VBAをこれから覚えていくうえで一番初めに手を付けてほしい変数宣言をマスターしてもらいたいと思います。
このサイト内の「VBA」タグはVBA初心者が日頃の業務を改善し、自分の時間を作っていくこと応援することを目的に作成しています。
変数とは何か?なぜ変数を宣言するのか?
変数とは値を入れることのできる「箱」のようなもののことです。プログラミングでは、データを管理するために目的に合わせた型で変数を宣言します。
VBAでは変数名の先頭にアンダースコア( _ )や数字を使用しなければ英数字、ひらがな、カタカナ、漢字で好きな名前を付けることができます。実際には変数宣言をしなくてもVBAではプラグラムを作ることができます。
では、なぜ変数宣言をするのかというと次のように考えます。
1.データの管理を行いやすくする
2.意図しない誤入力を防げる
3.プログラムの量を減らせる
それぞれ説明いたします。
1.データの管理が行いやすくなる
長いプログラムを書いている途中や一度書いたプログラムの動作を修正するときに、都度値を入れていると書いている部分が何を行っているのかという解析に時間がかかってしまいます。
例えば「合計」という変数を宣言して使用すれば、「合計」という変数は処理した値の合計が入っていると判ったり、合計処理を行っている部分を探しやすくなります。
2.意図しない誤入力を防げる
変数には宣言時にデータ型を決めます。そのため、宣言時に決めたデータ型と一致しない値が入力されるとエラーが返ってきます。一方で変数宣言時にデータ型を決めないとどんな値も入力できてしまい、入力間違いがあった場合に処理の結果が望んだものになりません。
3.プログラムの一つの短くすることができる
例としてテストというシートのA2セルの値×A3セルの値という計算結果を表示させるプログラムを書いてみます。
Sub 変数宣言ナシ()
MsgBox (Sheets(“テスト”).Range(“A2”) * Sheets(“テスト”).Range(“A3”))
End Sub
Sub 変数宣言アリ()
Dim ws As String
Dim a As Integer
Dim b As Integer
ws = “テスト”
a = Sheets(ws).Range(“A2”)
b = Sheets(ws).Range(“A3”)
MsgBox (a * b)
End Sub
どうでしょうか。全体的に書いている量は増えているように感じますが、一つずつの文は短くなっていますよね。そのため、一つずつが何を行っているかということがわかりやすくなります。
また、変数を使用することによってシート名が変わったときに変更するところが1か所だけで済むようになっています。
変数を宣言しなくても実行することは可能ですが、変数宣言をしたほうが圧倒的に管理がしやすく、ミスが減ります。
長いプログラムを書くときは、ミスを無くし、予期せぬエラーを減らすことによって全体の作業時間も少なくなっていくことになります。そのため、変数宣言は確実に行ったほうがいいでしょう。
では、その変数宣言のデータ型は何がよく使われるのか次に紹介いたします。
初めに覚えるべき2つのデータ型
一番初めに覚えてほしいデータ型は「Integer型」と「string型」です。VBAには色々と変数のデータ型が存在しますが、私が使用している頻度が高いのがこの2つのデータ型になります。ではそれぞれのデータ型について説明いたします。
1.Integer型
Integer型とは数値を格納することができるデータ型であり、-32,768~32,767までの値を格納することができます。入れられる値が整数のため、整数型とも呼ばれます。
Excelは表計算ソフトのため、処理するデータとしては数値がメインとなっていきます。そのため、一番使用する頻度が高いデータ型といってもいいでしょう。
2.String型
String型とは文字列を格納することができるデータ型です。格納するには、文字列として認識させる必要があるため、VBAでは「”(ダブルクォーテーション)」で格納する文字をはさみます。
データを処理する対象(ファイルやシート)を明確にする必要があるため、予め処理対象の名前を決めて格納することが多いです。
たった2つのデータ型ですが、ほとんどのプログラムに登場するのではないかと思うほど重要なものとなります。次に変数を宣言し画面に表示させるプログラムを実際に書いてみましょう。
変数に値を入れて表示させてみよう!
先に変数の宣言例が出てきましたがここでは実際に1.変数を宣言、2.変数に値を代入、3.代入した値を表示させるというプログラムを書いていきたいと思います。
1.変数を宣言する
変数の宣言は次のようになります。
Dim 変数名 As データ型
例えば変数名を「test」としてInteger型で宣言すると
Dim test As Integer
String型で宣言すると
Dim test As String
となります。
2.変数に値を代入
変数に値を代入するときは、左側に変数、右側に代入する値で書きます。
変数名 = 代入する値
例えば、「test」という変数に3という値を代入するプログラムを書くと
test = 3
テストというシートのA2セルの値を代入するプログラムになると
test = Sheets(“テスト”).Range(“A2”)
となります。
3.代入した値を表示させる
代入した値を表示させるためには「msgbox」という関数を使用します。プログラムを書くと
MsgBox( test )
となります。
1~3までの一通りをプログラムにすると次の通りとなります。
Sub 変数宣言()
Dim test As Integer
test = 3
MsgBox (test)
End Sub
それでは、実行してみてください。
上のような表示が出ましたでしょうか。表示できれば成功です。
String型の変数に値を入れて表示は、ご自身で試してみてください。
終わりに
VBAでの業務改善で一番初めに覚えてほしい「変数宣言」について説明いたしましたが、いかがだったでしょうか。これで変数を宣言し、値を代入し、処理をするという手順までできるようになりましたね。プログラムを書いている実感が出てきたのではないでしょうか。
今回の記事で使用できるようになった変数を用いて次回記事では、どんな処理(制御)があるのかについて説明していきたいと思います。処理ができるようになれば簡単な業務改善はできるようになりますので、次回も読んでいただければと思います。
ここまで読んでいただきありがとうございます。ではまた次回まで!
コメント