Excel VBA入門講座【1】開発環境の準備とはじめてのVBAプログラミング

Pocket

はじめに

「Excel VBA入門講座」では、プログラミング経験もなく、これからはじめてExcel VBAを学ぶ方のための講座です。

全くのゼロからでも、超わかりやすい解説で簡単にVBAを使いこなせるようになります。

「Excel VBAベーシック」等の資格取得も目指せます。

とにかく親切な解説を心がけますので、是非、一緒に、Excel VBAを学んでみませんか?

尚、Excel VBA入門講座【1】では開発環境の準備の仕方とVBAの初歩を解説します。

Excel VBAとは

結論から言えば、VBAを使うことで、面倒なルーチンワークを自動化することができます。2時間、3時間かかっていた作業を1分でできるようになります。エクセルのマクロはそうした業務自動化を簡単に実現できるプログラミング言語です。

Excelにはたくさんの関数が既に用意されていますが、VBAを使えば、自分だけのオリジナル関数を作ることもできたりします。

VBAの正式名称は、Visual Basic for Applicationです。略してVBAですね。

そして、マクロやVBAを開発するためのツールをVBEと呼びます。VBEとは、Visual Basic Editorの略で、Excelに標準搭載されている高機能なVBAの開発環境です。

VBAを書くための環境を整えよう

開発タブを表示させることから全てがはじまる!

Excelを用いてVBAプログラミングをするためには最初に[開発タブ]を表示させます。

[ファイル]⇒[オプション]⇒[リボンのユーザー設定]⇒ [メイン タブ] の下の [開発チェック ボックス]にチェックを入れます。

<参考画像>

excel

 

すると以下のように開発タブが表示されます。

ws000003

[開発タブ]を選択し[Visual Basic]を選択します。すると以下のような画面になります。

この画面で[表示]⇒[コード]を選択します。

vb

 

すると以下のような画面が出てきます。赤枠の中がVBAのプログラムを書く部分です。

vb2

セキュリティの設定をしよう

開発タブの表示の次はセキュリティの設定です。セキュリティを正しく設定しないとマクロを実行できないので注意しましょう。

セキュリティの設定は下記の手順で行います。

①[開発タブ]を選択。

②[マクロのセキュリティ]をクリック。

③[警告を表示してすべてのマクロを無効にする]を選択。

④[OK]ボタンをクリック。

以後、Excelを起動するたびに「セキュリティ警告」というダイアログボックスが表示されます。その際[このコンテンツを有効にする(E)]を選択するようにして下さい。誤って[不明なコンテンツから保護する(推奨)(P)]を選択するとマクロを実行することができなくなります。

最初のVBAプログラム

試しに、VBEを利用して、以下のマクロを書いてみて下さい。A1セルにHello VBAと表示させるマクロです。

上記のサンプルコードを入力し終えたら[再生ボタン]をクリックします。

次にExcelのアイコンの形をしたボタンを押下するとVBEからExcelの通常画面に戻ります。

するとA1セルにHello VBA!と表示されます。

おめでとうございます!これでVBAプログラミングの第一歩を踏み出しました!

それではこのマクロの意味を下記にて詳しく解説していきます。

マクロの解説

VBAの命令文はSubプロシージャの中に書く

厳密にはいろいろ複雑な事情があるのですが、今はこう覚えて下さい。

「エクセルのマクロはSub 好きな名前()ではじまり、End Subで終わる!」

このSub~End SubのことをSubプロシージャと呼びます。

VBAの具体的な命令文はこのSubプロシージャの中に書いていきます。

従って、SubプロシージャはVBAの命令文を入れるための箱のようなものです。

しばらくの間はVBAのコードを書くときは「とりあえずSubプロシージャを使う」と思って下さい。

尚、プロシージャ名には英語だけではなく日本語も使えます。

セルを表すには?

さて、Range(“A1”)というのはA1セルを表します。

Range(“セルの番地”)と書くことでセルを表すことができます。例えばRange(“C3”)と書くとC3セルを意味します。

ドットの意味とは?

Range(“A1”).Valueという具合にRange(“A1”)とValue(バリュー)の間に(ドット)が入っていますよね。

この(.)は日本語でいうところの「~の」に相当するものです。

Valueは「」を意味しますから、Range(“A1”).Valueの意味は、A1セルの値を意味します。

セルに文字や数値を入力するには「=」を使う

そして、「=」という記号は数学のイコールとは似て非なるものです。どういう意味かというと、Range(“A1”).Valueつまり、A1セルの値“Hello VBA!”という文字を「代入する」という意味なのです。

イメージ図で表すとこんな感じです。

マクロでセルに値を代入するイメージ図

なんとなくイメージがわいてきたでしょうか?

ちなみにダブルクォーテーション(””)で囲まれた値のことを正式には「文字列」と呼びます。

なので、逆に言えば数値は(“”)で囲む必要はありません。

例えばB1セルに1000という数値を代入するにはこんな風にマクロを書きます。

マクロを含むExcelブックの保存方法

せっかく開発タブを表示させて、マクロを書く準備が整いましたので、このExcelファイルを保存しておきましょう。

尚、マクロを含むExcelファイルは、下記のようにして保存する点に注意して下さいね。マクロを含むExcelブックの保存方法

ちょっと見えにくいかもしれませんが、[Excelマクロ有効ブック]を選んで保存します!

もちろん強制ではありませんが、次回からのマクロ(VBA)の学習のために、適当なファイル名でデスクトップに保存されることをお勧め致します。

オブジェクトとプロパティ

VBAを理解するにはオブジェクトとプロパティという2つの概念を知っておく必要があります。

VBAにおけるオブジェクトとは

VBAにおけるオブジェクトは簡単に言えばExcelを構成する各「部品」のことです。Excelを構成する部品にはセル、図形、ワークシートなど様々なものがありますが、それらは全てオブジェクトです。

先ほどのサンプルコードに出てきたRange(“A1”)はA1セルを表すオブジェクトだったのです。

オブジェクトは必ずプロパティを持っています。ではプロパティとはなんでしょうか?

プロパティとは何か?

プロパティとはオブジェクトの属性のことです。例えばRange(“A1”)というコードはA1セルを表すオブジェクトです。A1セルの属性にはどんなものがあるでしょうか。セルにセットされている値、セルの横幅/高さ、セルの背景色などなど様々な属性がありますよね。

普段なにげなくセルの背景色を変えたりしているかと思います。実はそうした操作はセルというオブジェクトの背景色プロパティを変更していたのです。

最初のプログラムであるRange(“A1”).Value = “Hello VBA!”はA1セルというオブジェクトのValueプロパティに”Hello VBA!”という値を代入(またはセット)していたのです。

尚、Range(“セルの番地”)のことをRangeオブジェクトと呼びます。

セルは全てRangeオブジェクト!と覚えましょう。

補足&ポイント

VBAのプログラムではRange(“番地”).Valueのようにオブジェクト.プロパティという書式を多用する!

あわせて読みたい