ExcelVBAへの道
|
3.コード VBAのコードはマクロが標準モジュールのModuleに書かれるのに対して、主にフォームのコードウィンドウ書かれます。また、フォームウィンドウとコードウィンドウは同じ右側表示部分に切り替わり表示されます。
ユーザーフォームにボタンなどのオブジェクトを配置して、ダブルクリックするとコードウィンドウが表示されコードの始めと終わりのコードが自動的に作成されます。 この中間に実行コードを書きます。フォームから何か実行さす時に使います。(クラスモジュールに属します) 標準モジュール 標準モジュールには、他のコードから呼び出して使うようなコードと変数・定数を書きます。 コードウィンドウの最上部の宣言セクション部分に変数・定数を書きます。 例) Public MyCount As Integer(変数) Public Const TAX = 0.05(定数) クラスモジュール クラスが定義されたモジュール。定義するオブジェクトのプロパティおよびメソッドのコードが記述されています。 通常は意識して使うことはありません。すでにVBAで定義されているからです。 新たに自分独自のクラスを定義するときにしか使いません。オブジェクトが持つメソッドやプロパティを定義するためのモジュール Microsoft Excel Object モジュール シートには、各シート上にボタンなどのオブジェクトを設置して何か実行させるときにここにコードを書きます。 This Workbookにはブックオープン時に実行さすコードを書きます。 第4章 コード(VBAプログラミング) コードをどこに書くのか コードはVBEの右側のウィンドウコードウィンドウに書くのですが、コードウィンドウは1個だけではなく、4タイプの各Moduleごとにそれぞれコードウィンドウを持っています。だから、実際には非常にたくさんのコードウィンドウが作成されるようになるのです。また、同じプログラムコードでも、違うコードウィンドウに書いてはコードを実行さすことはできません。用途に応じた正しいModuleのコードウィンドウにコードを書かなければ目的の処理動作をさすことができません。 コードウィンドウ画面 コードウィンドウには上部左側にオブジェクトボックスと上部右側にプロシージャボックスがあり、左下隅にプロシージャ表示ボタンとモジュール全体表示ボタンがある。
プログラムの書き方 コード名は日本語を使えますが、それ以外は全て英語です。通常小文字で書いていきます。正しいスペルだったら自動的に先頭文字が大文字に変換されますので、もし、自動的に大文字にならなければスペルミスかも知れませんので、要チェックです。 Sub 名前() 宣言コード部分 (変数・定数を使いたい場合にはここで宣言します。使わない場合はありません。) 実行コード部分 End Sub 宣言と変数と定数 プログラムコードを書く上で必ず使うものに、変数・定数・データ型があります。 これを覚えないと実際に使えるソフトを作成することはできません。 宣言コード部分に宣言して使います。 例 Dim A As Integer Dim はこのコードブロックのみで利用可能であるという意味の文字です。その他Public,Private,staticがあり、目的により使い分けます。 A は変数名です。任意の文字列を使用できます。日本語も使えます。よく使われる例はMyCount,Countなど第三者が見てもわかるような変数名にしておくことです。 As はお決まりの文句です。 Interger が変数のデータ型です。 つまり、Aという変数は整数のデータ型でこのブロックでしか有効ではありませんという意味です。 Publicモジュールで宣言 Publicで変数を宣言すると宣言したコードウィンドウ以外の部分のコードウィンドウからでも変数を使用することができます。 Privateモジュールで宣言 プライベートモジュールレベルで宣言すると宣言したコードウィンドウでしか変数を利用することはできません。通常はPrivateが使われます。 プロシージャレベルで宣言 Sub 名前() End Subの間でのみ有効です。通常はDimが使われます。 変数のデータ型
オブジェクト変数 Dim myBook1 As Workbook<=================変数にオブジェクトを設定 Dim mySheet1 As Worksheet Dim myCell1 As Object<================Objestとして総称して設定することができる。 Set myBook1 = Workbooks("XXXX.xls")<=======Setでオブジェクトへの参照を設定 Set mySheet1 = Worksheets("Sheet1") 変数の宣言の強制と解除 変数の宣言を強制する場合には宣言部分に Option Explicit のコードを入れる。 |