プログラミングファン

仕事で使える!?実務での利用範囲が広いVBAの基本

プログラムの中でも、営業・事務職の方などに関わりの深いプログラム言語がVBA(VisualBasic for Application)です。

Excel・WordなどMicrosoft Office製品などでも使うことがです、学習難易度のプログラム言語の中では低くなっていて初心者でも学びやすいのではないでしょうか。

プログラマ以外の方が活用できるプログラムとしては稀有なものだと思いますので、学ぶとすぐに日常の業務で活用できるのもVBAが人気となっている大きな理由です。

今回はこの「VBA」に焦点を当て、VBAの基本についてお話していきたいと思います。

EXCEL VBAによる定型処理のオートメーション

同じ処理を何度もEXCELで、しかも手作業で行っているなら、EXCEL VBAでのプログラム処理を検討するべきです。

データ入力・編集・コピーなどの処理は類似処理の繰り返しとなっている例も数多くあり、人手によって行われているケースも多いのではないでしょうか。

EXCELでは「セル」と呼ばれるデータ入力範囲に数値や文字列など多種のデータを格納することができます。

「セルやセル内のデータをVBAでどう扱うのか?」を学んでいくことで、VBAを利用した業務効率化を行うことができるようになります。

プログラムを書く際にVBAでは「マクロ」という単位を用います。

マクロ1つが「1つの処理系」を表しているのですが、マクロを作成するためには、「作業の自動記録機能を使用する」もしくは、「プログラムを書く」必要があります。

VBAプログラムの書き方

VBAは「VB(VisualBasic)」というMicrosoft製品で主に使用されているプログラミングが言語元となっているため、記法に関してはほとんどVBと同じです。

ということはVBAを学ぶことで、VBの学習も行いやすくなるという副次的なメリットもあります。

VBE(Visual Basic Editor)

VBAを書く際にはVBEと呼ばれる専用のエディタを使用します。

VBEには、プログラムの実行機能・デバッガなどマクロ開発に有用な機能が数多く含まれていますので、これらのVBE機能の使い方を学んでいくことで、より効率的なマクロ開発を行うことができます。

他のプログラミング言語でも同じようにさまざまなエディタがありますが、VBEは単にエディタというわけではなく、IDEのように使うことができるため、初心者の方でも使いやすいのではないかと思います。

変数

VBAで変数を利用するためには、基本的に「変数の宣言」→「変数の利用」という流れで行います。

変数の宣言は、

Dim 変数名 As データ型

のように行うことができます。

例えば、整数を入れるnum変数を作りたい場合は、

Dim num As Integer

のように書きます。

データ型を指定して、変数に格納できるデータ型を制限する方法を「型安全」と呼ぶことがあります。

型安全は変数のデータ型と違う値を入力しようとすると、コンパイラがエラーを知らせてくれるため、予期しないデータが入力されることを防止することができますが、データ型を変数を宣言するたびに書いていくのは大変です。

そのため最近では「型推論」と呼ばれる、自動でデータ型を決定していく手法を採用するプログラミング言語が増えてきています。

データの安全性を求めるとプログラミングに負担がかかりますし、作業性を優先するとデータの安全性により注意を払わなければならなくなりプログラマの心理的負荷は増大してしまいますね。

セルの指定方法

VBAでセルを指定する場合、「F5」セルを指定する場合は、

Range("F5")

と記述します。

他にも、行と列を番号で指定することもでき、

Cells(列番号,行番号)

と書きますが、列はAが1、Bが2、Cが3という形でAから順に番号が割り振られています。

もし「F5」を指定したい場合は、

Cells(6,5)

と書きます。

if文

VBAでの制御構文についてみていきましょう。

条件分岐処理をif文で行う場合、VBAでは次のように書きます。

If 条件1 Then
  条件1の条件に合致した時の処理
ElseIf 条件2 Then
  条件2の条件に合致した時の処理
Else
  条件1・条件2に合致しなかった時の処理
End If

条件分岐はプログラムの中で比較的使用する機会が多いため、使い方を少しずつ覚えていきましょう。

for文

繰り返し処理の行える「for文」を書く場合は、次のようになります。

For ループ変数の初期化 To 繰り返し条件
  繰り返し処理
Next ループ変数

例えば、処理を10回ほど繰り返す場合は下記のようになります。

For i =1 To 10
  繰り返し処理
Next i

繰り返し処理には他の構文もありますので見ていきましょう。

Do While文

Do While文は、ある条件があり、その条件を満たす間だけ繰り返し処理を行うことができます。

Do While 1 <= 10
  実行したい繰り返し処理
  i = i + 1
Loop

Do While文を使う場合は、ループ変数の値を繰り返し処理の中で変化させていかないと、無限ループとなってしまうこともありますので気を付けましょう。

Select Case

他のプログラム言語で、「Switch文」にあたるのが「Select Case」文です。

Select Case文のコードは次のようになります。

Select Case 変数
  Case 値A
    変数の値と値Aが等しい場合の実行処理
  Case 値B
    変数の値と値Bが等しい場合の実行処理
  Case Else
    上記条件を満たさなかった場合の実行処理
End Select

VBAの活用

今回はVBAの基礎についてお話をしてきましたが、プログラミングの入り口がVBAだという人も増えてきていて、プログラミング初心者の方が取り組むには最適な言語ではないかと思います。

プログラミングを学ぶ際の煩雑な開発環境構築などを省くことができるため、学習障壁がかなり低いのも大きなポイントです。

まだプログラミングをやってみたことがないかたは、ぜひVBAの学習から始めることをお勧めします♪

HOMEへ