こんにちは! ハマラクです。
ExcelのVBAを使って業務を効率化したいと思っていても、初期設定やプログラムの書き方が難しそうで始めることにためらいがありませんか。でも、出来るようになれば業務の幅ができて、時間にも余裕が出てくるはずです。
この記事では、そんなVBAの始め方(初期設定)からVBA初心者が覚えるべき3つのポイントについて説明します。この記事で以下のことが分かります。
・Step0:VBAを始める前の初期設定
・Step1:変数宣言
・Step2:繰り返し処理(For~Next文)
・Step3:条件分岐(If文)
・Step4:1~3を実際に使ってみよう
プログラムは、箱を用意し(変数宣言)、箱に値を代入、代入された値による処理を変える(条件分岐)、これを繰り返し実行(繰り返し処理)が大きな流れとなります。Step1~Step3はこの必要な処理を行う方法を説明します。
この記事を読み終えれば、VBAを実践するための基本的な文法が身についているでしょう。
このサイト内の「VBA」タグはVBA初心者が日頃の業務を改善し、自分の時間を作っていくこと応援することを目的に作成しています。
Step1:VBAを始める前の初期設定
VBAに限らず、プログラムを書いて実行するためにはその環境を用意する必要があります。VBAは他のプログラミング言語に対し、比較的簡単に環境を設定することができます。
まず、自分のパソコンにMicrosoft Officeがインストールされているでしょうか。インストールされていれば、ほぼ設定は完了しているといっても過言ではありません。初期設定からプログラムを書くためには2ステップです。
1.Excelに開発タブを追加する
2.Visual Basicを開き「標準モジュール」を追加する
1.Excelに開発タブを追加する
VBAを使用するOfficeソフトはExcelがメインとなりますが、タブの中にはVBAを使用するための「開発」というタブがありません。そのため、最初に「開発」タブを表示させる必要があります。
表示させるのは簡単で任意のExcelを開き、「ファイル」→「その他」→「オプション」という順番にクリックしていきます。オプションの中にある「リボンのユーザー設定」を選択し、右側の「メインタブ」から「開発」にチェックを入れて「OK」を押します。
上記の操作でExcelのメインタブの中に「開発」というタブが追加されているはずです。
2.Visual Basicを開き「標準モジュール」を追加する
「開発」タブが用意することができたら、次に実際にプログラムを書くスペースを作ります。このプログラムを書くスペースが「標準モジュール」となります。
メインタブの中から「開発」を選択し、その中にある「Visual Basic」を開きます。このVisual Basicがプログラムを書くための環境となります。実際にプログラムを書きこんでいくために、「挿入」→「標準モジュール」をクリックします。
この操作で中央部分に白いエリアができたと思います。このエリアにプログラムを書いていくことになります。
次に実際の文法について説明していきますが、初期設定について詳しく知りたい方は次の記事を読んでみてください。
VBAを始めてみよう|10分でできる”Hello World!”
初期設定を終えて、初めて行うプログラム(Hello World)も紹介していますので是非見てください。
Step1:変数宣言
プログラムを書いていく環境が整いましたので、次にプログラムの文法、制御について説明したいと思います。プログラムの流れは1.変数の用意、2.値の代入、3.処理になります。ここでは、1つ目の変数の用意(変数宣言)と2つめの値の代入について説明いたします。
1.変数の用意(変数宣言)
プログラムで値(文字列など)を扱うためには、その値を箱に入れる必要が出てきます。この値を入れる箱のことを「変数」といい、変数名とその箱の型(データ型)を決めて宣言します。その構文は次のようになります。
Dim 変数名 As データ型
変数名はその名前の先頭にアンダースコア( _ )や数字をしなければ、好きな名前にすることができます。(英数字、ひらがな、カタカナなど)
データ型は扱う値に合わせて決めます。最初に覚える必要があるデータ型は2つ、(a)Integer型と(b)String型になります。
(a)Integer型
Integer型は数値を格納することができるデータ型で、-32,768~32,768までを扱うことができます。入れられてる値が整数のため整数型ともいいます。
(b)String型
String型は文字列を格納することができるデータ型です。格納する際には文字列と認識させる必要があるため、代入する値を” ”(ダブルクォーテーション)で挟む必要があります。
2.変数に値を代入する
変数に値を代入するには左側に変数、右側に入れる値を置きその間を=(イコール)でつなぎます。
Dim 数値 As Integer
数値 = 3
Dim 文字 As String
文字 = “ほげほげ”
イコールでつなぐため数学のような表現のように感じますが、プログラムはあくまで文法のため処理は上から下、左から右に流れます。そのため、値の代入も「変数の中身はこの値」という形で覚えるといいでしょう。
次に繰り返し処理(For文)について説明いたしますが、さらに変数について知りたい方は次の記事を読んでみてください
VBAを始めてみよう|変数の宣言(初めに覚えるべき2つの型)
実はVBAでは、変数を宣言しなくてもプログラムを書くことができますが、変数を宣言するメリットなどを紹介しています。
Step2:繰り返し処理(For~Next文)
変数を宣言し、代入する方法を覚えたと思いますが、変数への代入を大量に行ったり、探している値が出てくるまで変数の中身を確認する際には同じ処理を何度も繰り返します。この繰り返しの処理のことをループ処理といい、そのために用意された構文があります。ここでは、1.繰り返し処理を行うFor文についてと2.多重ループについて説明いたします。
1.繰り返し処理(For文)
繰り返し処理を行う構文には2種類、For~Next文とDo~While文があります。それぞれの処理の方法は以下の通りです。
1.For~Next文 ・・・ 決められた回数同じ処理を繰り返す
2.Do~While文 ・・・ 条件が成立するまで繰り返す
ここで覚えてほしいループ処理はFor~Next文のみです。Do~While文も便利なのですが、For~Next文に次に説明するIf文を組み合わせることで似たような制御をすることができます。
For~Next文の構成は次の通りです。
For 変数 = 開始 to 終了 Step ●
処理したい制御
Next
変数に開始の値を入れて、Step ●ごとに値を増減させていき、終了の値まで来たら処理を終えます。
終了の値には変数を使用することができ、ループの回数が把握しやすいので処理が分かりやすいのがメリットだと思います。
2.多重ループ
繰り返し処理の中にさらに繰り返し処理を書くこともできます。この処理の構文を多重ループと言います。例えば、10回同じことを行う処理をさらに10回行うなどの処理をすることができます。構成は次のようになります。
For 変数 = 開始 to 終了 Step ●
For 変数 = 開始 to 終了 Step ●
処理したい制御
Next
Next
この処理は例えば、Excelのシートの中から値を探すときに使用したりします。具体的に、1つめのループ処理でシートの行方向、2つめのループ処理で列方向を探すという制御ができるようになります。他にも、複雑な計算などにも使用したりします。さらに繰り返し処理について知りたい方は次の記事を読んでみてください
VBAを始めてみよう|ループ処理(For文でプログラム力アップ)
ループ処理のメリットやプログラム例を紹介しています。
Step3:条件分岐(If文)
条件分岐とは、変数の中身やセル中身を確認し、決められた値の時に決められた処理を実行したい場合に使用します。条件分岐にも大きく2つ、If Then文とSelect Case文があります。ここで覚えてほしいのは1つめのIf Then文です。If文自体はExcel関数にも存在するため、馴染みがあるかもしれません。
ここではIf文の構成と比較演算子について説明いたします。
1.If文の構成
If文は、「もし~ならば、~を行う」という処理になります。この意味から分かるように条件が合致したときに処理を行います。If文の構成は次のようになります。
If 処理を判断する条件 Then
処理したい制御
End If
処理を判断する条件には比較演算子を使用するので、次に比較演算子について説明いたします。
2.比較演算子
処理を判断するためには、決められた値より大きいか、中身が一致しているかなどの条件を設定しなければなりません。その条件を設定に使用するのが「比較演算子」です。例えば、変数Aの値が1000より大きいという条件は、「A>1000」という書き方をします。使用頻度の高い比較演算子を次に記載します。
演算子 | 働き | 使い方 | 意味 |
= | =(等しい) | a = b | aとbは等しい |
< | <(小なり) | a < b | aはbより小さい |
> | >(大なり) | a > b | aはbより大きい |
<= | ≦(以下) | a <= b | aはb以下 |
>= | ≧(以上) | a >= b | aはb以上 |
さらに高度な条件設定をする場合には、論理演算子を使用します。高度な条件設定やプログラム例を知りたい場合は次の記事を読んでみてください。
VBAを始めてみよう|条件分岐(If文で覚える処理の場合分け)
ここまで1.変数宣言、2.繰り返し処理、3.条件分岐を説明いたしましたが理解できたでしょうか。次にこの3つを実際に使用したプログラム例を書いてみたいと思います。
Step4:1~3を実際に使ってみよう
プログラムの例題として下記の画像のように、A1~H14までに入れられた値の中から100が入力されている箇所を探し、セルの色を黄色にするプログラムを書いてみましょう。
プログラムを書くと次のようになります。
ここで説明していない文法も出ているため、簡単に説明いたします。
1:Cells(a,b) → a列、b行のセルの中身を確認する。
2:Cells(a,b).Interior.Color → a列、b行のセルの背景色を変更
3:RGB(255,255,0) → RGB値で黄色を指定
4:変数 & “文字列” → 変数と”文字列”を結合する。結合する際には間に&を入れる。
5:シングルクォーテーション(‘) → コメントを追記。実行時には無視される。
このプログラムを実行すると次のような結果となる。
どうでしょうか。実行結果は同じになったでしょうか。プログラムの例を見ずにかけたのであれば、今回抑える3つのポイントは完璧でしょう。
終わりに
VBAを始めるために、初期設定から最初に覚えたい3つのポイントについて説明しましたが、いかがだったでしょうか。まだまだ使えるほど身についていないと思う方もいらっしゃると思いますが、使えるレべルになるまでにはプログラムを書く回数を増やすしかありません。プログラムは実践あるのみだと思います。
ここまで覚えた方の中には、どうやってプログラムに起こせばいいのかわからないという方もいると思います。その方は次の記事を読んでみてください。プログラムを書くための前段階として参考になると思います。
少しずつプログラムを実装できる範囲を広げられるように今後も情報を発信したいと思いますので、次回も読んでいただければと思います。
ここまで読んでいただきありがとうございます。ではまた次回まで!
コメント