変数名、プロシージャ名の付け方

名前を付ける場合は以下の内容を含める。

  1. 型名。v:Variant、lng:Long、dbl:Double、str:Stringなど。Subプロシージャに型名は無い。
  2. 機能。myDateのように名前から型がわかることもある

自分が作る変数やプロシージャ、プロパティは小文字から始まる名前にする。VBAやExcelなどシステムが使う名前は大文字から始まるため区別しやすい。例えば、file2Cellはファイルからセルに入れるという機能を表す。型名は、strDateとかlngRet,dblRet(RetはReturnの略)とか型とデータの中身や機能を意味する文字列を見やすくするために大文字を使う。大文字を区切りに使うと読みやすいし、入力を全部小文字でも一部は大文字に変化するため、入力が正しいことがわかる。次図は、myDateもstrDateも型宣言済みなのでこのモジュールに同じスペルを入れると大文字小文字は定義(宣言した文字列)に従う。

このテキストでは、ExcelやVBAが使っている名前を使いたい場合はmyを前に付けて使う。一時的に使う場合は、簡単にaaやbbなどを使う。

練習:適当にSubプロシージャを作り、中にDim sRowName As Stringを宣言した次の行に全て小文字でsrowname="abc"と入れてRとNが大文字に変わるか確認
カテゴリー: 2 VBEを使うための基本操作と知識 | コメントする

プロシージャの引数はプロシージャ内で使える変数

プロシージャ内でDim宣言した変数と引数の変数はそのプロシージャ内で有効な変数で、プロシージャー内で使える変数になる。引数もプロシージャ内で使えるが、ByRefの引数の値の変更は渡した側の変数も変わるので慎重に、濃いのでこれはまたどこかで。

Functionプロシージャの場合は、その名前もプロシージャ内の変数として使える。

Function bbからEnd Functionまでbb,x,yはバリアント型の変数として、jはInteger型の変数として使える。プロシージャ内で宣言した変数はjだけだが、引数、Functionの場合はそのプロシージャが変数として使える。

カテゴリー: 2 VBEを使うための基本操作と知識 | コメントする

宣言とか定義という言葉

各モジュールには、変数やプロシージャーを書くことができる。テキストでは「変数は宣言」、「プロシージャーは定義」という言葉を使うことが多い。

変数の宣言と定義

「As 型名」の型の指定も含めて変数の宣言という。ユーザーが定義できる型は、ユーザー定義型と言うが「As 型名」も含めて宣言として書く。

プロシージャーの宣言と定義

Sub/Functionの宣言は、引数の個数と型、Functionの場合はプロシージャー名の型まで含む。定義は宣言を含め、処理内容も含むのでプロシージャーの場合は定義という言葉を使う。

カテゴリー: 2 VBEを使うための基本操作と知識 | コメントする

標準モジュールにSub mainプロシージャーを書いて実行

プロシージャーは、どのモジュールにも書くことができる。ここでは標準モジュールを使う。

プロシージャを書いて作る

プロシージャーはSubの他にFunctionがある。Functionも例えばfunction mainでエンターキーを押すと( )とEnd Functionが追加される。

イミディエイトウィンドウでmain、bbプロシージャーを呼び出す(実行する)。以下は、イミディエイトに入力する。

main             '()を書く必要は無い。Subプロシージャーの実行に()はいらない。
 1
bb
 2

main、bbが呼び出せない場合は、Sheet1やSheet2などのモジュールに書いている可能性がある。

カテゴリー: 2 VBEを使うための基本操作と知識 | コメントする

オブジェクト・プロシージャーボックス(Sub main)

次図は、標準モジュールにSub mainプロシージャを書く。

次図のDim lngData As Longの下の線はGeneral-Declarations領域とプロシージャー領域を区切る。書いているプロシージャは、ブロシーボックスと同じ名前になる。

オブジェクトボックスを「全体」(General)を選択し、プロシージャーボックスは宣言(Declarations)を選択してから入力すると変数の宣言領域にカーソルが移動する。Dimで宣言したlngData変数は、このモジュール内で使える。DimをPublicにすれば全モジュールで使える変数を宣言できる。

カテゴリー: 2 VBEを使うための基本操作と知識 | コメントする