支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


はじめに

エクセルの「マクロ」とは、エクセルの操作を自動化する為のものです。 自動化の機能が、「マクロ」と呼ばれています。 マクロは、プログラムで、そのプログラムを動かしているプログラミング言語が、「VBA」(Visual Basic for Applications)になります。 「マクロ」と「VBA」の違いについて誤解されがちですが Excelにある「マクロ機能」を動かすプログラミング言語が「VBA」で記述されているという事になります。

【マクロ初心者入門】マクロの特徴


1. エクセル操作を自動化する機能
2. マクロはVBA言語で動作する
3. Excelの全機能を操作可能
4. 操作の記録が可能
5. Windowsの設定やインターネットのデータ収集も可能。

【マクロ初心者入門】VBAとは

マイクロソフトのプログラミング言語「Microsoft Visual Basic」を、同社製品のMicrosoft Officeに搭載したものです。 「Officeの標準機能では不十分なので、機能拡張を行いたい場合」、「大量のデータの場合手動だと効率が悪いので、自動処理を行いたい場合」 これらを実現するのが、マクロ機能であり、マクロ機能を動作させる為に記述するのが「VBA言語」になります。 VBA言語は、ほとんど英単語がそのまま使用されているので英単語を順に読んでいけば、ある程度は記述されている内容が理解可能です。

【マクロ初心者入門】VBAを学習するメリットとは?


VBAを学習するメリットは、大きく分けて主に以下の2つになります。

1. 作業の時短・及び確実性

VBAの最大のメリットは、普段のExcel作業を自動化できることです。 一度VBAでコードを作成すれば、ミスなく確実に同じ処理を実行できます。 人為的ミスがおこることもありません。

2. 資格の存在

VBAには「VBAエキスパート」と呼ばれる資格があります。「VBAエキスパート」は以下4つ存在します。 資格を取得しておけば、転職時のスキル証明にもなります。 「ベーシック」、「スタンダード」に分かれており、1つずつ学習して取得しておけば、網羅的に知識をつけることが可能となります。


マクロ初心者入門編の資格一覧
1. Excel ベーシック
2. Excel スタンダード
3. Access ベーシック
4. Access スタンダード

【マクロ初心者入門】VBAサンプルコード


Excelのセルに値を書き込むサンプルコード
1. Sub Sample1()
2. 
3. Worksheets("Sheet1").Range("A1").Value = "Sheet1のA1に値を書き込む"
4. 
5. End Sub

「Sub マクロ名 ~ End Sub」までが、1つの処理(マクロ)になります。 「Sub マクロ名」を入力してEnterキーを押すと、自動でEnd Subが表示されます。 この中に記述したコードが、マクロを実行した際は動作します。 今回の場合は、「Worksheets("Sheet1").Range("A1").Value = "Sheet1のA1に値を書き込む"」が実行されます。 コードの意味についてわかりやすく日本語で書き換えると、以下のようになります。


サンプルコード
1. Worksheets("Sheet1").Range("A1").Value = "Sheet1のA1に値を書き込む"

日本語訳
1. シート名が「Sheet1」のA1セルに値の「Sheet1のA1に値を書き込む」を入力する

【マクロ初心者入門】For文サンプルコード

VBA言語だけでなくプログラミング言語は、同じ処理を何度も実行するのが得意分野になります。 その際、ループ処理が使用できると大変便利です。For文を使用したループ処理のサンプルコードは以下のとおりです。

1. Sub Sample2()
2. 
3.   'ループ処理用の変数を用意
4.   Dim i As Integer
5. 
6.   '5回セル内に記述のループ処理を行う
7.   For i = 1 To 5
8.     Worksheets("Sheet1").Range("A" & i).Value = i & "回目の処理"
9.   Next i
10. 
11. End Sub

「For i = 1 To 5 ~ Next i」の処理中、iが1から始まり、5になるまで処理を実行しています。 iは1つずつ数が増加し、記述してある処理を5回実行しています。 また、Rangeに記述しているセルアドレスの数字部分、書き込む文字列に「i」を使用しているため、 ループするごとに書き込む位置、文字列が変わります。

1. Worksheets("Sheet1").Range("A" & i).Value = i & "回目の処理"

まとめ

いかがでしょうか。今回は【マクロ初心者入門】でマクロとVBAの基礎知識についてお話ししました。本記事をお読みいただきVBAにご興味をお持ちいただいた方は初心者入門編の参考書などで学習していただき資格の取得などを目指してみてはいかがでしょうか。