パソコンスキルの教科書

パソコンスキルの教科書

東京大学大学院卒。博士課程に進学を志すも、担当教授と折が合わず、無職になる。医者を目指すも結局断念。田舎で派遣社員として働く。「スキルがなければ、仕事ももらえない」と悟り、ビジネススキルを学ぶ。プログラミング、英語を学び、一部上場企業へ転職。年間100時間以上の業務効率化を行い、社内講師に抜擢。海外の案件を担当し、数億円のプロジェクトに携わる。個人の事業でも、月売上100万を達成。現在は、自分の価値を高めるためのスキル向上支援を行う

エクセルマクロVBAの標準モジュールを解説|名前変更/削除/呼び出し/実行/コピー/複数作成/表示など

f:id:gene320:20190107234644j:plain

エクセルマクロVBAでは、標準モジュールを使ってプログラムを作成します。

しかしマクロを使い始めたばかりだと、標準モジュールの使い方が分からず困ってしまうことがあります。

そこで、エクセルマクロVBA初心者が標準モジュールを使えるようになるために解説を行います。

具体的には、以下の内容をお伝えしていきます。

標準モジュールを
・作成する方法
・実行する方法
・名前変更する方法
・削除する方法
・コピーする方法
・複数作成する方法
・表示する方法

他にも、標準モジュールとクラスモジュールとの違いも紹介していきます。

VBEを起動して標準モジュールを作成する方法

VBEを起動して標準モジュールを作成する方法を紹介します。

ステップ1|「開発」ボタンをクリック
ステップ2|「Visual Basic」ボタンをクリック
ステップ3|「挿入」をクリック
ステップ4|「標準モジュール」をクリック

f:id:gene320:20190107210508j:plain

ステップ2で「Visual Basic」ボタンをクリックすると、以下のようにVBEが起動します。

f:id:gene320:20190107210742j:plain

「ステップ3|挿入をクリック」、「ステップ4|標準モジュールをクリック」と進めます。

f:id:gene320:20190107210527j:plain

そうすると、「標準モジュール」が作成できます。

f:id:gene320:20190107210534j:plain

エクセルリボンに「開発」ボタンがない場合の対処法

f:id:gene320:20190107211734j:plain

もし、ステップ1で「開発」ボタンがない場合は以下の手順で「開発」ボタンを使えるようにします。

ステップ1|「ファイル」ボタンをクリック
ステップ2|「オプション」をクリック
ステップ3|「リボンのユーザー設定」をクリック
ステップ4|「開発」にチェックを入れる
ステップ5|「OK」をクリック

まず、ステップ1で「ファイル」ボタンをクリックします。

f:id:gene320:20190107211744j:plain

次に、ステップ2で「オプション」をクリックします。

f:id:gene320:20190107211758j:plain

「ステップ3|リボンのユーザー設定をクリック」、「ステップ4|開発にチェックを入れる」、「ステップ5|OKをクリック」と進めていきます。

f:id:gene320:20190107211809j:plain

そうすると、「開発」ボタンが表示されます。

f:id:gene320:20190107211917j:plain

ここまで来たら、上記の「VBEを起動して標準モジュールを作成する方法」のステップ1|「開発」ボタンをクリックを行うことができるようになります。

標準モジュールを実行する方法|ボタン、F5、F8

次に標準モジュールを実行する方法についてお伝えします。以下の3つを紹介します。

実行方法1|ボタン
実行方法2|F5
実行方法3|F8

以下で詳しくお伝えしていきます。

実行方法1|ボタン:マクロを実行

ボタンを押してマクロを実行する方法です。

ステップ1|動かしたいプログラム(プロシージャ)にカーソルを合わせる
ステップ2|「▶」をクリック

上記の手順でマクロを実行します。

f:id:gene320:20190107213108j:plain

そうすると、マクロによってエクセルに値が出力されます。

f:id:gene320:20190107213313j:plain

注意点としては、「ステップ1|動かしたいプログラム(プロシージャ)にカーソルを合わせる」ことです。

もし、Sample2にカーソルを合わせると、Sample2のマクロが起動します。

また、Sample1とSampl2の外にカーソルを合わせると、以下のようにどのマクロを実行するか聞かれます。

f:id:gene320:20190107213930j:plain

f:id:gene320:20190107213938j:plain

この方法でマクロを実行することは可能です。しかし、マウスでクリックするのは面倒なので私はこの方法でマクロ実行はしません。

実行方法2|F5:マクロを実行

マクロ実行のショートカットキー[F5]で、マクロを実行する方法です。

ステップ1|動かしたいプログラム(プロシージャ)にカーソルを合わせる
ステップ2|キーボードの[F5]を押す

f:id:gene320:20190107214743j:plain

そうすると、マクロによってエクセルに値が出力されます。

f:id:gene320:20190107213313j:plain

注意点としては、ボタンでマクロを実行するときと同じで、「ステップ1|動かしたいプログラム(プロシージャ)にカーソルを合わせる」ことです。

上記で説明済みなので、省略します。

実行方法3|F8:ステップイン

マクロのステップインのショートカットキー[F8]で、マクロを一行ずつ実行する方法です。

ステップインとは、プログラムコードを1行ずつチェックしていく方法のことです。

この方法はプログラムのエラーを見つけるために行います。例えば、プログラムエラーは出ないが、想定したものと子tなる結果になる場合があります。

そこで、プログラムを1行ずつ動かし、結果を確認しながらチェックして機能をステップインといいます。

作成したばかりのプログラムを検証するときに、よく使います。

それでは、使い方を紹介します。

ステップ1|動かしたいプログラム(プロシージャ)にカーソルを合わせる
ステップ2|キーボードの[F8]を押す (1回押すとプログラムが1行分進みます)

f:id:gene320:20190107215752j:plain

[F8]を押すと、マクロがステップインで動き始めます。

f:id:gene320:20190107220751j:plain

上記のように[F8]を押すたびに、マクロが一行ずつ動いていきます。

そうすると、赤枠で囲んだ部分に値が出力されていくのが分かります。

これを確認することで、プログラムが想定通りに動いているか確認することができます。

マクロVBAの標準モジュールの名前を変更する方法

マクロVBAの標準モジュールの名前を変更する方法を紹介します。

ステップ1|名前変更したい標準モジュールをクリック(マウス左)する
ステップ2|「Module1」と記載されたテキストボックスをクリック
ステップ3|好きな名称に変更

f:id:gene320:20190107221728j:plain

f:id:gene320:20190107221737j:plain

f:id:gene320:20190107221746j:plain

f:id:gene320:20190107221753j:plain

マクロVBAの標準モジュールを削除する方法

マクロVBAの標準モジュールを削除する方法を紹介します。

ステップ1|削除したい標準モジュールを右クリック
ステップ2|「Module1の解放」をクリック
ステップ3|「いいえ」をクリック

f:id:gene320:20190107222408j:plain

f:id:gene320:20190107222530j:plain

f:id:gene320:20190107222539j:plain

ステップ3で「はい」をクリックすると、マクロのプログラムを「.bas」という拡張子で保存することができます。

ただ、これは慣れてから覚えれば問題ありません。そのため、初心者の内は「いいえ」を選択してマクロを削除すると覚えておけば十分です。

マクロVBAの標準モジュールを複数作成する方法

f:id:gene320:20190107223343j:plain

マクロVBAの標準モジュールを複数作成する方法を紹介します。

ステップ1|「挿入」をクリック
ステップ2|「標準モジュール」をクリック

f:id:gene320:20190107223400j:plain

そうすると、以下のように複数の標準モジュールを作成することができます。

f:id:gene320:20190107223548j:plain

マクロVBAの標準モジュールをコピーする方法

マクロVBAの標準モジュールをコピーする方法を紹介します。

標準モジュールをコピーする以下の2つがあります。

コピーする方法1|同じエクセルブック内でマクロをコピーする
コピーする方法2|他のエクセルブックにマクロをコピーする

それでは、一つずつ解説していきます。

コピーする方法1|同じエクセルブック内でマクロをコピーする

f:id:gene320:20190107224859j:plain

同じエクセルブック内でマクロをコピーする方法を紹介します。

ステップ1|コピーしたいプログラム(プロシージャ)がある標準モジュールをクリック
ステップ2|コピーしたい範囲を選択
ステップ3|コピーをクリック( ショートカットキー [Ctrl] + [C] でも可能)
ステップ4|コピー先の標準モジュールをクリック
ステップ5|コピー先に貼り付ける

f:id:gene320:20190107235142j:plain

f:id:gene320:20190107225226j:plain

f:id:gene320:20190107225239j:plain

コピーする方法2|他のエクセルブックにマクロをコピーする

f:id:gene320:20190107225900j:plain

他のエクセルブックにマクロをコピーする方法を紹介します。

ステップ1|コピーしたい標準モジュールをクリック
ステップ2|クリックしたままコピー先へマウスをドラッグする

f:id:gene320:20190107230427j:plain

f:id:gene320:20190107230435j:plain

Book2に移動したら、マウスから手を離します。そうすると、以下のように異なるエクセルブックへ標準モジュールをコピーできます。

f:id:gene320:20190107230445j:plain

マクロVBAの標準モジュールの呼び出しを行う方法

f:id:gene320:20190107231142j:plain

マクロVBAの標準モジュールの呼び出す方法を紹介します。

ステップ1|Module2のプロシージャ名を書く
ステップ2|マクロを実行する

標準モジュールの呼び出す方法は以下です。

Call 呼び出したいプログラム名(プロシージャ名)

ここでは、Call Sample3 と記載します。なぜなら、呼び出したいプログラム名(プロシージャ名)が「Sample3」という名前だからです。

つまり、呼び出したいプログラム名によって、記載を変更する必要があります。

f:id:gene320:20190107231612j:plain

マクロを実行すると、Sample3が動いていることが分かります。

f:id:gene320:20190107231622j:plain

マクロVBAの標準モジュールが表示されないときの対象法

f:id:gene320:20190107232043j:plain

マクロVBAでは、標準モジュールが表示されないときがあります。

このときの対処法は以下です。

ステップ1|「表示(V)」をクリック
ステップ2|「プロジェクトエクスプローラー(R)」をクリック

f:id:gene320:20190107232425j:plain

そうすると、以下のように標準モジュールが表示されます。

f:id:gene320:20190107232434j:plain

ちなみに、「コード」や「プロパティウィンドウ」も以下の操作で表示することができます。

f:id:gene320:20190107232902j:plain

標準モジュールとクラスモジュールの違い

ここまで標準モジュールについてお伝えしてきました。

ただ、実は標準モジュールのほかにクラスモジュールというものが存在します。

f:id:gene320:20190107233300j:plain

しかし、VBA初心者の内は基本的に標準モジュールだけを覚えて使えば問題ありません。

なぜなら、VBAによる自動化プログラムは標準モジュールで作成できるからです。

例えば、メール操作(Outlook操作)やインターネットのIE操作も標準モジュールで作成できます。

このように、操作の自動化をしたいのであれば、標準モジュールに記述すれば、ほぼ問題ありません。

したがって、VBA初心者の内は基本的に標準モジュールだけを覚えて使えば問題ありません。

クラスモジュールとは

クラスモジュールの説明はMicrosoft社の説明が参考になります。

クラスとモジュールの主な違いは、クラスはオブジェクトとしてインスタンス化でき、標準モジュールはインスタンス化できないことです。

標準モジュールのデータには 1 つのコピーしか存在しません。

したがって、プログラムのある部分で標準モジュールのパブリック変数を変更した後、プログラムの別の部分で同じ変数を読み取ると、変更後の値が取得されます。

一方、オブジェクト データは、オブジェクトのインスタンスごとに存在します。

また、標準モジュールとは異なり、クラスはインターフェイスを実装できます。

なお、クラスモジュールを使用するメリットは「プログラムが簡潔になる」、「メンテナンスがしやすい」という点があります。

しかし上述の通り、初心者の内は標準モジュールを使っておけば問題ありません。

したがって、難しいことをあれこれ覚えるのではなく、まずは標準モジュールをマスターすることをお勧めします。

マクロVBAに関するお勧めの記事

ここまで、エクセルマクロVBAの標準モジュールについて解説してきました。

以下では、マクロの設定やマクロ作成におけるコツを記載しています。

ぜひ読んでみてください。

●エクセルマクロでできることを知りたいなら
●エクセルマクロの難易度や習得までの期間を知りたいなら
●エクセルマクロを独学で上達するコツを知りたい
●エクセルマクロを効率的に作成するコツを知りたいなら
●エクセルマクロについてもっと詳しく知りたいなら
●本やウェブのマクロVBAのコードが使えない理由
●エクセルマクロオンライン教材のおすすめ
●初心者が知っておきたいエクセルマクロVBAの初期設定
●パソコン仕事を効率的に使うワザを知りたいなら