実は普段お使いのExcelにプログラム機能が含まれているのはご存じでしょうか?
今回はExcelにデフォルトで備わっている、Excel VBAと呼ばれるプログラム言語を始めるにあたって、これだけは押さえておきたい基本事項をまとめて紹介させて頂きたいと思います。
開発環境構築も非常に簡単ですので、プログラムの敷居としては非常に低く、初心者の方にもお勧めの言語です。
Excel VBAを始めるには?
Excel VBAの環境構築
ほぼ全てのプログラミング言語を学ぶ上で、多くの初心者の方が躓くであろう開発環境の構築ですが、Excel VBAにおいては非常に簡単です。
Excelがインストールされている時点で、プログラムとしては既にお使いのパソコン内にインストール済みです。
後は開発環境がデフォルトでは非表示となっているため、表示をしてあげるだけで実は完了してしまいます。
もし開発環境の設定が完了済みでない方はこちらの記事を参考にしてください。
(開発環境をより快適にするための方法も併せて紹介をさせて頂いております。)
Excel VBA これだけは押さえておきたい基本事項
Excel VBAを使用するとファイル形式が異なる
通常はExcelのファイルを保存する際は、「Excelブック(*.xlsx)」などのファイル形式を選択されるかと思います。
しかし、Excel VBAをExcelで使うには専用のファイル形式に設定する必要があります。
ファイル形式
拡張子
Excel VBA
バージョン
Excelマクロ有効ブック
(*.xlsm)
使用可能
Excel 2007~
Excel 97-2003ブック
(*.xls)
使用可能
Excel 97 ~ Excel 2003
Excel ブック
(*.xlsx)
使用不可
Excel 2007~
Excel VBAを使用する際はマクロの有効化が必要
プログラムを作成する際は特に問題は無いのですが、2回目以降ファイルを開く際にExcelのセキュリティの設定上、警告が出てマクロを無効化されてしまいます。
Excelを2回目以降起動した際は、下記画像の「コンテンツ有効化」を選択してマクロを有効化した上でお使いください。
トラストセンターより常に有効にする方法もありますが、セキュリティ上お勧めしません。
Excel VBAの編集画面(VBE)の見方
Excel VBAを編集するための開発環境はVBE(Visual Basic Editor)と言います。
VBEの簡単な使い方とそれぞれの機能について順番に紹介していきます。
VBEの表示のさせ方
Excel上の「開発」タブの一番左「Visual Basic」を選択すると表示がされます。
見慣れない画面のため、ごちゃごちゃしていて非常に分かりずらいかと思います。
これから順番にそれぞれの概要をざっくりと紹介していきます。
「プロジェクトウィンドウ」でExcel VBAのプログラムを記述する対象を選択が出来ます。
例えばExcelのシートが2つ以上あった場合、特定のシートだけにプログラムを組み込んだり、またはExcelのブック全体に組み込んだり自由に選択が可能です。
- 下の画像では「Sheet1(Sheet1)」を選択しているため、Sheet1のシートへプログラムを記述しようとしています。
- 「ThisWorkbook」を選択した場合は、Excelのブック全体にプログラムが記述が可能です。
STEP1で紹介した通り、現在はSheet1にプログラムを記述するための場所が表示されています。
デフォルトで記述されているのは
アイコンがいくつか並んでいるかと思います。すべての機能を紹介すると長くなってしまうので、簡単に主要なアイコンを紹介していきます。
アイコン
機能
ショートカット
プログラムを実行。
F5
プログラムをリセット。
なし
プロジェクトウィンドウを表示。
Ctrl+R
プロパティウィンドウを表示。
F4
インデント
Tab
Shift+Tab
コメントブロック
なし
Excel VBAでのライブラリ追加方法
ライブラリとは他の人が既に作ってくれているプログラムの詰め合わせパックみたいなものです。プログラムを作成する際に、すべて1から作っていてはいくら時間があっても足りません。
もし他の誰かが既に作っているプログラムがあるなら、そのプログラムを基に自分が追加したい機能を追加する方が時間の短縮にもなり非常に楽です。
Excel VBAではライブラリを追加する際には、参照設定と呼ばれる設定を実施する必要があります。
参照設定を行いたいときはこちらの記事を参考にしてみください。
Excel VBAのプロジェクトウィンドウについて
プログラミング初心者の方に向けて、それぞれの項目の最初に簡単な概要を紹介しています。既に知っている方は読み飛ばして頂ければ幸いです。
Excel VBAのユーザーフォームについて
ユーザーインターフェース(人が操作する画面)を自作することが出来ます。
Excel VBAのモジュールについて
プログラムのコード行数が1000行、10000行と、どんどん長くなってしまったとき、何処に何が書かれているか非常に分かりづらくなってきます。そんな時に便利なのがモジュールとなります。
プログラム全体としては10000行あったとしても、例えばモジュールを20個用意して、それぞれのグループで500行ずつに分けてあげると、プログラム全体を見やすくすることができます。
モジュールの分け方は人それぞれですが、プログラム内の特定の機能に分けるとプログラム全体の可読性が上がり、管理もしやすくなります。
Excel VBAのクラスについて
クラスを使うことによってプログラムのメンテナンス性が良くなり、機能の修正や追加も容易となります。(クラスがどのようなものか興味があればクリックしてみてください。)
クラスについてはプログラミング言語の独特な考え方なので、深く考えずプログラムの世界にはそんなものがあるんだ程度に読み流して頂ければと思います。
例題を使って大雑把に紹介をさせて頂きます。
ある診察所で患者のAさん、Bさん、Cさんという人が居たとして、それぞれの人に対して、体重、身長、性別をプログラムで管理をしたいとします。
現実ではそんな不便な方法で管理をしないかと思いますが、プログラムの世界では1つの記録用紙に1つの情報しか入れることが出来ません。
つまりそれぞれの患者に対して、体重、身長、性別を1つ1つ記録用紙に用意する必要があります。(Aさんの体重、Bさんの体重、Cさんの体重、Aさんの身長、Bさんの身長…)
このルールに従うと3人×3項目で合計9つの記録用紙を準備する必要があります。
これではとてもではありませんが管理が大変です。
そこで登場するのがオブジェクトと呼ばれる概念です。
今までは、「Aさんの体重が書かれた記録用紙」、「Aさんの身長が書かれた記録用紙」、「Aさんの性別が書かれた記録用紙」と別々で管理されていたものを、オブジェクトを使えば、「Aさんの診断書(体重・身長・性別)」といったような管理の仕方ができるようになります。
そしてこの「診断書(体重・身長・性別)」のような予め決めたフォームを作れるのがクラスとなります。
予め決められた診断書を作っておけば、新しい患者さんが来た時でもその診断書の用紙を新しくするだけで同じような管理が出来ます。
このように複数の変数や操作を定められたルール通りに管理できるのがクラスとなります。
削除方法について
下記の画像ではClass1のクラスを削除。
下記の選択肢から任意のものを選ぶ。
- 「はい」 対象をエクスポートして削除。
(エクスポートしたファイルは別のExcelへのインポートが可能となります。)
- 「いいえ」 何もせずに削除。
- 「キャンセル」 何もせずに元に戻る。
最後に
お疲れさまでした!今回はExcel VBA において、これだけは押えておきたい基本事項方法をまとめて紹介させて頂きました。
Excel VBAを始める敷居は非常に低いため、是非これを機会にプログラミングにチャレンジしてみては如何でしょうか。