準備と予備知識

カテゴリー名: [VBEの自動操作によるExcelマクロの組込み

2016/08/13

 Excelにマクロを組み込む方法にかんして、
 準備と予備知識について記します。


《このページの目次》


    

1. VBScriptでマクロを組み込むための準備

 VBAのマクロをExcelに組み込む処理は、VBE(Visual Basic Editor)で行うのが一般的だと思います。

 しかし、それ以外に VBScriptプログラムによって行うこともできます。

 VBEを立ち上げてマクロのコードを入力する方法ではなく、
メモ帳などでマクロコードを書いたテキストファイルを用意して、
VBScriptプログラムを実行することによりマクロを組み込むやり方です。

 その場合、Excelのマクロセキュリティの設定をあらかじめ変更しておく必要があります。設定変更は一度やるだけでOKです。

 ExcelをGUI操作して、マクロのセキュリティに関して次の設定変更を行います。
具体的な操作方法は、Excelのバージョンによって違うのでここでは省略します。

    

 上記は Excelのセキュリティを緩める処置です。
あまり神経質にならなくてもいいとは思いますが、
気になるようでしたら、VBScriptによるマクロの組込みをやらない時は
セキュリティを強化しておく方がいいかもしれません。

    

目次に戻る


    

2. マクロ組込みにかかわる構成要素

 Excelでマクロを扱う場合の仕組みとして、
まずプロジェクト(VBProject)というのがあります。

 プロジェクトの中には、複数のコンポーネント(VBComponent)が含まれています。

 コンポーネントというのは、標準モジュール、クラスモジュール、ユーザーフォームなどのことです。それらの総称です。

 そして、コンポーネントの本体(ソースコード)を見ると、
Sub Macro1 …… End Sub
のようなマクロ(プロシージャ)が書かれています。

 一つのコンポーネントに複数のプロシージャが書かれていることもしばしばです。
Macro1 の他に Macro2 があるといったケースです。

 マクロにかかわる構成要素には上記のようなものがあるので、漠然とでも念頭に置いておいて下さい。

    

目次に戻る


    

3. コンポーネントの種類と名前

 コンポーネントには、標準モジュールとかクラスモジュールなどの種類(Type)と、
「Module1」 「Module2」とか「Class1」などの名前(Name)の属性があります。

 これら属性の値は、component.Type(数値)、
component.Name(文字列)で知ることができます。

 Typeの値には次の意味合いがあります。

    

 コンポーネントにかかわるVBScriptのコードを一部のみ掲げてみます。

標準モジュールを追加
VBProject.VBComponents.Add(1)
クラスモジュールを追加
VBProject.VBComponents.Add(2)
Module1という名前をTestModuleに変更
VBProject.VBComponents("Module1").Name = "TestModule"

 VBProject.VBComponents("Module1") というのは、Module1という名前のコンポーネントオブジェクトを指します。

    

 なお、イベントプロシージャを組み込むところ(シートモジュール、ブックモジュール)もコンポーネントの一種です。

 シートモジュールとブックモジュールは、最初から存在しているので Addメソッドで追加する必要はありません。

 標準モジュールやクラスモジュールとは、かなり色合いが違います。

〜 以上 〜