エクセルVBA超入門講座(第2回)VBAの書き方、VBE、セル操作

excel-vba-lecture02 Excelマクロ

第1回の講座ではマクロとVBAの違いやマクロの記憶の方法など、マクロの基礎について解説しました。(詳しくはこちら

マクロの記憶方法を知っていると、同じ操作をボタン一つで繰り返し操作が出来ます。

しかし、マクロの記憶を使う方法だと、いちいち手動操作をしてコンピュータに覚えさせないといけません。

非常に面倒ですよね。

VBAの書き方を知っていると、いちいち記憶させなくても自由にマクロを作成する事が出来ます。

今回はVBAの書き方、その第1回目の学習としてExcelのセルの操作方法について解説します。

VBAの書き方はマクロを使う上での必須スキルです。

図を用いて分かりやすく解説しますので、ぜひ最後までお読みください!

VBE(エディター)の起動方法

vba-teacher
天馬先生

前回マクロの記憶の方法について説明しました。

何となくやり方について分かったかな?

student-smile
たけし

はい!マクロの記憶の方法については理解できました!

vba-teacher
天馬先生

今回はマクロを自分で作るためのプログラミング言語VBAの書き方について説明するよ

student-smile
たけし

ついにプログラミング言語を書くんですね!

student-cry
たけし

でもプログラミング言語なんて僕に書けるか心配です…

vba-teacher
天馬先生

VBAは他のプログラミング言語と比べて比較的分かりやすい言語だから安心して!

一つずつ分かりやすく解説していくよ。

vba-teacher
天馬先生

まずはマクロを使うための土台を作るよ。

1.【開発】タブの「マクロ」ボタンをクリックします。

macro-menu

2.マクロ名(任意)を入れて「作成」ボタンをクリックします。

マクロ名は何でも構いません。

ここでは英語で「First_Macro」としていますが、日本語の名前でも構いません。

new-macro

するとこのような画面が表示されます。

new-VBE

vba-teacher
天馬先生

これがVBAを使ってプログラミングするための土台(エディター)だよ。

これはVBE(Visual Basic Editor)と呼ばれているよ

student-question
たけし

エディター?また知らない単語が出てきたな…

vba-teacher
天馬先生

エディターとはプログラミングを行うための開発ツールの事を言うよ。

このツールを使ってVBAを書いていくんだよ。

student-cry
たけし

なんだか分かったような分からないような…

vba-teacher
天馬先生

プログラミングをやった事ないと、急にエディターと言われても難しいよね。

徐々に慣れていくから心配しなくて大丈夫だよ。

 

マクロ、VBA、VBEの違い

Excelのマクロというものは「マクロ」「VBA」「VBE」の3つに分けられます。

  • マクロ:Excelの操作を自動で行う機能のこと
  • VBA :マクロを動かすためのプログラミング言語のこと
  • VBE :VBAを記述するための開発ツールのこと

この3つの違いを抑えておけばマクロはマスター出来ます!

最初は違いがよく分からないと思いますが、マクロを作っているうちに徐々に覚えていきますのでご安心ください。

大事なのは手を動かして簡単なマクロを作ってみることです。

決して難しくはありません。

頑張って一緒に学んでいきましょう!

VBAの書き方

vba-teacher
天馬先生

エディターが起動出来たところで、いよいよVBAの書き方について教えていくよ。

vba-teacher
天馬先生

まずはエクセルの特定のセルに文字を入れるマクロを作ってみよう

VBA記述方法

次のような記述をしてみます。

first-VBA

VBE(エディター)ではVBA(プログラミング言語)で次のように書かれています。

Sub First_Macro()
Range(“A1”).Value = “はじめてのVBA操作”
End Sub

このVBEに記述されているVBAの内容をコードと呼びます。

コードを書くことでマクロの作成が出来ます。

ではこのマクロを実行してみましょう。

マクロ実行方法

実行は次の手順で行います。

実行方法は2通りあります。

①VBE(エディター)上で実行する方法

1つ目はVBE上で実行する方法です。

緑色の三角ボタン(再生ボタンのようなマーク)をクリックします。

execute-macro1

②マクロ一覧画面から実行する方法

2つ目はマクロ一覧画面から実行する方法です。

「開発」タブの「マクロ」をクリックします。

実行するマクロ「First_Macro」を選択し、「実行」ボタンをクリックします。

execute-macro2

マクロ実行結果

マクロを実行するとExcel上で次の結果になります。

macro-result

A1のセルに文字が入りましたね!

student-smile
たけし

おー!文字が入った!すごい!

vba-teacher
天馬先生

簡単でしょ!コードの内容についてもっと詳しく解説していくよ。

セルの操作方法

どのセルに何を入れるかはコードの中で次の方法で指定します。

cell-operation

セルの指定

ここでどのセルに対して操作をするかを指定します。

記載方法は以下です。

Range(“(操作するセルの場所)”)

Rangeは「レンジ」と読みます。

Range(“A1”)と書くとA1セルに対する操作、Range(“B10”)と書くとB10セルに対する操作になります。

セルの操作

ここでどんな操作をするかを指定します。

今回の例では「セルに文字や値を入れる」という操作を指定しています。

セルに値を入れるという操作は次のように書きます。

.Vlaue = “(セルに入れる文字列)”

指定したセルの右に”.”(ドット)を入れます。

”.”(ドット)の後ろが行う操作です。

「Value」は入れる文字を指定する操作ですが、入っている文字を取得する「Text」というものもあります。

Excelマクロでは主にこの2つ「Value」と「Text」を使います。

今回はセルに文字を入れる「Value」だけ覚えて頂ければ大丈夫です。

「Text」の使い方は別の講座で詳しく解説します。

挿入文字

ここで入れる文字を指定します。

文字は半角のダブルコーテーション(”)で囲みます。

“(セルに入れる文字列)”

文字列はダブルコーテーション(”)で必ず囲む必要があります。

数値の場合はダブルコーテーション(”)無しでも大丈夫です。

(例)A1セルに数値”5″を入れる場合

Range(“A1”).Vlaue = 5

 

vba-teacher
天馬先生

こうしてExcel上に入れたい文字を入れることが出来るんだよ

student-smile
たけし

なるほど!VBAの書き方って思っていたよりも簡単ですね!

複数セルの操作

上の例では1つのセルのみ文字を入れましたが、複数のセルを同時に操作することも可能です。

次のマクロを実行してみましょう。

multi-vbacode

コードはこのようになっています。

Range(“A1”).Value = “はじめてのVBA操作”
Range(“A2”).Value = “文字を入れることが出来ました”
Range(“A3”).Value = “もっといろんな操作を覚えていきましょう!”

マクロ実行結果は次のようになります。

multimacro-result

このようにコードを複数行書くことによって複数の処理が1度に可能になります。

VBAコードの整形方法(インデント)

VBAコードの書き方が分かったところで、コードの整形方法について解説します。

VBAを書くときはインデントを使って綺麗に整形しましょう

次の2つのコード見比べた時にどちらの方が見やすいでしょうか?

VBA-indent

②の整形ありの方が見やすいですよね。

このように整形することをインデントすると言います。

コードの先頭文字を間隔を空けることによって見やすくします。

インデント無しでもマクロは正常に動作しますが、コードの内容が多くなると大変見づらくなるのでインデントでコードを整形する癖をつけましょう。

先頭文字は半角スペース4つ分空けるのが基本ルールです。

スペースを毎回4回打ち込んでもいいですが、面倒なのでインデントしたい部分で「Tab」キーを入れると自動で半角スペース4つを入れてくれます。

Tabキーはキーボードの一番左の真ん中あたりにあります。

keyboard-tabkey

インデントするには、まず整形したい行の先頭の文字にカーソルをあてます。

この状態で「Tab」キーを入れると自動で半角スペース4つ分インデントされます。

execute-indent

スポンサーリンク

プロシージャとは

続いてプロシージャとは何か解説します。

プロシージャはマクロを動かすために必須の項目です。

vba-teacher
天馬先生

VBAコードの書き方は分かったかな?

student-smile
たけし

はい!わかりました!

student-question
たけし

ところで、コード書くところいある”Sub”って何の事ですか?

VBA-subroutine

 

vba-teacher
天馬先生
いいところに気が付いたね!それがプロシージャと呼ばれるものだよ。
vba-teacher
天馬先生

プロシージャ処理の内容が書かれた、かたまりと覚えてくれれば良いよ。

プロシージャの記載方法

プロシージャは次のように記載します。

Sub プロシージャ名 ()
End Sub

プロシージャ名は何でも構いません。

プロシージャは「Sub」~「End Sub」で囲みます。

処理が「Sub」から始まって「End Sub」で終わりという事を表わしています。

もう一度さきほどのコードを見てみましょう。

VBA-subroutine

ここで何か気づきましたでしょうか?

そう、プロシージャ名がマクロの名前になっています。

プロシージャは自分で作成する事もできますが、マクロの作成をすると
プロシージャを自動で作られ
プロシージャ名にマクロの名前を自動で入れてくれます。

このようにプロシージャのかたまりの中に、行いたい処理の内容をVBAコードで書くことによってマクロが実行できるようになります。

プロシージャの種類

マクロのプロシージャにはこの「Sub」と、他にも「Function」というものがあります。

それぞれ役割が少し異なっています。

Functionについては別の講座で詳しく解説します。

まずはこの「Sub」というプロシージャを覚えてください。

セルに文字を入れるだけであれば「Sub」が使えれば問題ありません。

作成したマクロの保存方法

作成したマクロを保存しましょう。

第1回の講座で行った通り、マクロファイル(.xlsm)で保存する事を忘れないで下さい。(詳しくはこちら

Excelファイル(.xlsxや.xls)で保存してしまうと、せっかく作ったマクロが消えてしまうのでご注意ください。

まとめ

今回はVBAの書き方として簡単なセルへの文字の挿入方法について解説しました。

「VBE」「プロシージャ」「セル操作方法」「インデント」

と色々な新しい単語が出てきて混乱された方もいらっしゃるかと思います。

第1回の講座で出てきた単語と合わせておさらいをしておきます。

  • マクロ:Excelの操作を自動で行う機能のこと
  • VBA :マクロを動かすためのプログラミング言語のこと
  • VBE :VBAを記述するための開発ツールのこと
  • プロシージャ処理が書かれたかたまりのこと
  • セル操作:Rangeを使ってセルを操作する
  • インデント:VBAのコードを整形すること

今回解説した内容はExcelマクロを作る上で必須の超基本となる部分です。

ぜひ今回の内容を踏まえご自身で好きな内容をセルに入れるマクロを作ってみてください。

次回はセル操作について、さらに詳しく解説します。

次回もご覧いただけると幸いです。

~天然マクロ学校~

コメント

タイトルとURLをコピーしました