機械系エンジニアの備忘録

20代独身社会人。仕事では機械・機構の研究開発を行っているエンジニアが、自分の専門分野ではないpythonを扱って楽しむブログです。

MENU

【Excel-VBA#1】VBAの始め方

Excelのプログラミング機能であるVisual Basic for Applications(VBA)の始め方

 

1. はじめに

VBAとはVisual Basic for Applicationsのことで、MicrosoftのOfficeシリーズ(Excelなど)に標準で搭載されているプログラミング機能です(マクロ機能と呼ばれることもあります)。

VBAを使うと繰り返し処理を自動で行ったり、複雑な数値計算を行ったり、簡単なシステムを作ったり、さらにはゲームを作ることもできます。

今回は第1回としてVBAの始め方とマクロ機能を紹介します。

 

2. VBAの始め方

2.1 開発タブの表示

VBAは開発タブから開きますが、初めは以下のように開発タブが表示されていないと思います。

f:id:stjun:20201019002701p:plain

そこで開発タブを表示させます。

まず「ファイル」から「オプション」をクリックすると以下の画面が現れます。

その中の「リボンのユーザー設定」をクリックし、右側の赤線の「開発」というところにチェックを入れます。

f:id:stjun:20201019002854p:plain

これで開発タブが現れます。VBAは開発タブの一番左のVisual Basicをクリックすると使えます。

f:id:stjun:20201019003130p:plain

 

2.2 VBAを試しに使ってみる

開発タブのViasual Basicを押すと以下の画面が出てきます。

f:id:stjun:20201019003249p:plain

今回はセルのB3に12という数字を代入してみたいと思います。

「挿入」タブから「標準モジュール」をクリックすると次のように「Module1」が作られます。

f:id:stjun:20201019003428p:plain

ちなみにOption Explicitという文字が上の画像では書かれています。これは変数を使用する際に必ず宣言をするという初期設定をしているからで、「ツール」タブから「オプション」をクリックし、以下の画面から「変数の宣言を強制する」にチェックを入れると可能になります。今は特に必要ないので省略してください。

f:id:stjun:20201019003818p:plain

次にでてきた画面に以下のコードを書いてください。

Sub A()
Range("B3").Value = 12
End Sub

f:id:stjun:20201019004332p:plain

入力し終わったら、上の緑色の矢印を押して実行するとB3のセルに12が代入されます。

f:id:stjun:20201019004433p:plain

なお以下のように書いても同じ処理ができます。

Sub A()
Cells(3, 2).Value = 12
End Sub

f:id:stjun:20201019004639p:plain

 

2.3 数値計算をするならR1C1表示がお勧め

Excelは標準だと行は数字で列は英字になっています。

もちろんこれでも良いですが、数値計算などをしたい場合(特に行列などを使う場合)は行も列も数字標記のほうが何かと便利です。

「ファイル」から「オプション」を開き「数式」をクリックしましょう。この中の、「R1C1参照形式を使用する」にチェックを入れてOKを押してください。

f:id:stjun:20201019005703p:plain

すると次のように行も列も数字標記になります。

f:id:stjun:20201019005825p:plain

こうすると先ほどの以下のコード、Cells(行番号、列番号)とシートが一致するのでより分かりやすくなりますね。

Sub A()
Cells(3, 2).Value = 12
End Sub

 

3. おすすめ書籍

このシリーズはプログラミング初心者にも非常に分かりやすくてお勧めです。

私はプログラミングを初めて勉強する際、3番目の本を大学時代に買ってすごく助かりました。今でも手元に置いてるくらいです。 

 

4. 最後に

次回は簡単なコードの書き方を紹介します。