Excel VBAは、OfficeシリーズのMicrosoft Excelで使えるプログラミング言語です。VBAを使うことで、Excelを自分の好きなようにカスタマイズできるだけでなく、定型的な業務を自動化させることができたり、Excelを用いたアプリケーションを作ることができます。会社で作られるほとんどの報告書は、VBAを用いて作成を自動化できます。身に着けることで、普段の業務を大幅に短縮させられるでしょう。また、データを分析するときにも、分析以外の作業に手間取らずに済むので大変便利です。このページでは、Excel VBA初心者に向けた最初のセットアップから有名な関数やメソッドまで、幅広く学べる記事をまとめました。
始め方
Excel VBA初めての方へ。プログラムを組む上で必要な土台を設定します。
入門
VBAでプログラミングを組むうえで絶対に必要になる基礎中の基礎知識です。初心者の方は、まずはこの章から勉強を進めていくとよいでしょう。
変数の定義は、プログラミングの基本です。必ずできるようにしましょう。
プログラムの結果を表示させる方法の一つにメッセージボックスがあります。
プログラムの結果をイミディエイトウィンドウに表示する方法を紹介します。
後で見た時でもコードの意図が分かるように、適時コメントをつけることが重要です。
Dimに比べると使用頻度は低いですが、使えると便利なので定数も使えるようにしましょう。
セルを操作する
コンピュータにセルを操作させるプログラミングを組みます。どれも単体で使用されるより、他の関数と一緒に使われることが多いので、使用頻度は高いです。
任意のセルの範囲を取得します。
ワークシートのセルに入った要素を使いたい、またはセルに文字や数値を入れたいときに使用します。
セルを選択させる関数です。
Excelで行われる計算式とその結果をセルに入力します。
セルを別の場所にコピー・ペーストします。
表にメリハリをつけたいときなどは、背景色を設定するとよいです。
表を作りたいときには、このBordersとInteriorを使うと綺麗にできます。
いくつかのセルを結合させたり、結合を解除させたりさせます。
表の数値部分のみを扱うときなど、選択位置をずらす必要があるとき使用します。
特定の行や列だけ非表示にする関数です。
ワークシートを操作する
ワークシートを操作するプログラムです。最初のうちは直接触れたほうが速いように思えますが、複雑なプログラムを組む際には便利です。
ワークシートや配列のようなオブジェクトを指定するときには、Setステートメントが必要です。
シートをアクティブにします。複数のシートを用いたプログラムで便利です。
シートの名前を取得して使用したり、任意のものに変更したりできます。
シートを新たに追加します。
シートを任意の順番に入れ替えます。
不必要なシートを削除します。
シートのデータをそのまま新しく作るシートにコピーします。
任意のシートのみを表示する関数です。
ステートメント:条件分岐、繰り返し
プログラムの大枠を作るステートメント達です。場合ごとに条件分けをしたり、同じ操作を繰り返したりという作業はExcelでよくあります。そのような作業を自動化するにはどうすればよいのか、紹介します。
プログラムの中で条件を分けて考えたい部分で使用します。
Selectでも条件分岐をさせることができます。場合によってIfとどちらがシンプルに書けるか使い分けるとよいでしょう。
Withは同じ文章を何度も打ち込む場面で便利です。
繰り返し同じ作業をさせる時に、Do While Loopは便利です。
For Nextでも繰り返しをさせることができます。
配列などを効率よく扱いたいときは、For Each Nextによる繰り返しが便利です。
For~NextやDo~Loopの繰り返しを途中で抜けたいときに使用します。
数値を操作する
Excel VBAでは、数を「数値」と言い、それ以外のアルファベット、記号、漢字などの文字を「文字列」と言います。この章では、数値の扱い方を紹介します。
四捨五入した値を返す関数です。
数値なのか、文字列なのかを返します。同じ列に文字列も数値もある場合などで有効です。
数値と文字列が混在している要素を数値に変えます。
Val関数の逆で、数値を文字列に変更します。
文字列を操作する
この章には文字列を扱う関数をまとめてあります。
左や右など、任意の位置から、任意の文字数を切り出します。
複数のセルに分かれた文字列を結合します。
文字列の一部を別のものに買えたり、削除したりするときに用います。
文字列を分割します。
文字列に不必要な空白があったときなどに使用します。
指定した文字列と、他のデータを比較します。
データの中から、指定した文字列を含むものをさがします
データを扱う
Excelでデータを分析するときに利用する関数がまとめられています。利用する頻度の高い関数ですのでどれも使えるようにしておくとよいでしょう。データの大きさを調べたり、ソートしたりする方法を紹介します。
今まで指定していたセル範囲とは別の範囲を扱いたいときに用います。
扱うデータが毎度同じ大きさとは限らない場合、この関数を用いて対応します。
範囲が広く確認に時間がかかる時便利です。
セルを昇順、降順などのある法則のもとに並び替えます。
大量のデータの中から条件に合うデータを抽出します。
乱数を発生させます。ランダムな処理に使用します。
配列
配列とは、同じ要素が集まったものです。Excelでは多くの要素が配列によって整理されています。それらを扱う関数がまとめられています。
配列を宣言し直す際など、Dim以外で宣言しなければならない場合が存在します。
配列内から指定したものを含む要素を返します。
指定した配列の中にある要素の最大数を調べます。
配列を初期化して、新しく利用するときに使用する関数です。
2次元配列の説明をしたあと、2次元配列の宣言方法を紹介します。
グラフ
データをわかりやすくするために、Excelでグラフはよく使用されますが、これもVBAで自働化できます。
2回に分けて、さまざまなグラフを書く指令をだすプログラミングを組みます。
第2回は、グラフの種類や、グラフを各一、大きさを指定する方法を紹介します。
日付・時刻
日付や時刻を自動で取得する関数です。
PCに記録されている時間から曜日を取得します。
PCに記録されている時間から日付・時刻を取得します。
Excelの外を操作する。
プログラムによっては、Excelの外での処理が必要になる場合があります。
ファイルが存在するか調べます。
PC内の場所を指定して新規フォルダを作ることができます。
PC内にある他のソフトやプログラムを起動します。
エラー処理
プログラムが常に成功するわけではなく、時には作ったプログラムに合わないデータを扱ってしまったり、バグが発生したりすることがあります。そのような事態のために、エラー処理をあらかじめしておくとよいでしょう。
エラーが起こった際に条件分岐して処理を行います。