マクロの記録で作業を進めるようになると、誰しも少し欲が出てきます。
「別のブックも開けるようにならないかしら」とか、
「セルの値を自動で判別して作業を分岐できないかしら」とか・・・・。
記録したマクロでは満足できない状況もでてくるかもしれません。
基本的に記録したマクロでは同じ作業を繰り返すだけなので、限界はあります。
「融通の効く」マクロは自分である程度「手を加えてやる」必要があります。
いきなり「手を加える」と聞いて尻込みする人も多いかもしれませんが、
手順を踏めばそれほど難しいことではありません。
そして、「手を加える」ために必ず使用しなければいけないのが、
VBE(Visual Basic Editor)です。
この章ではVBEの基本的な使い方を大まかに説明します。
通常、VBEの左側に配置されて表示されています。
ここにはブック単位で構成要素がツリー状に表示されます。
表示はファイルエクスプローラに似ています。
プロジェクトエクスプローラにはマクロの記述場所を視覚的に表示してくれる
ウィンドウだと思ってください。
マクロの記録でマクロが記録される場所は「標準モジュール」というフォルダの
「標準モジュール」です。
Module1などと名前がついているものがそうです。
プロジェクト | マクロを記録するファイル(ブック)全体を「プロジェクト」と呼びます。 ブックそのものを指すのではなく、ブックに登録されているマクロ(ブックに存在するモジュール) の全てを1セットとしてプロジェクトと呼称するわけです。 プロジェクト名としてはブック名が与えられます。 |
---|---|
モジュール | 実際にマクロが記述される場所です。 ひとつのプロジェクトに複数のモジュールを設定することが可能です。 またひとつのモジュールには複数のマクロを登録することが出来ます。 「オブジェクトモジュール(ブック・シート)」「標準モジュール」「フォー ムモジュール」「クラスモジュール」などがあります。 ひとつのプロジェクトには最低でもブックオブジェクトモジュールと そのブックのシートと同じ数のシートオブジェクトモジュールが存在します。 ブックの構成に依存するオブジェクトモジュール以外はドラッグアンドドロッ プでプロジェクト間で簡単にコピーする事ができます。 |
マクロの記録されている標準モジュールをダブルクリックすると、その中身が
右側のコードウィンドウに表示されます。
Sub〜End Sub のひとかたまりがマクロのひとつの単位、「プロシージャ」
です。
「Sub なんとか()」の「なんとか」の部分がプロシージャの名前、つ
まり、そのマクロの名前になります。
プロシージャ | Sub〜End Sub を「プロシージャ」と呼びます。 マクロ実行の単位になります。 マクロを呼び出すときはこのプロシージャ単位で呼び出すことになります。 |
---|---|
プロシージャ名 | Subに続く「Macro1」などがプロシージャの名前になります。 |
ステートメント | プロシージャの中に書かれた1行づつ(正確には1論理行)をステートメントといいます。 基本的に上から下へ順番に実行していきます。 |
コメント | 「'」(シングルクォーテーション)に続く部分は「コメント」として処理からは除外されます。 覚書として利用します。 「マクロの記録」時にもユーザー名、日時がコメントとして記録されます。 また、ステートメントを一時的に実行できないようにする時にも利用します。 ちなみに記録時に挿入されるコメント中のショートカットキーの記録はあくまでコメントなので、 この部分を編集してもショートカットキーの変更はできません。 |
VBEの「ステップイン」という機能を使ってマクロとしてかかれた呪文が実
際どのような作業をしているか、一行(1ステートメント)ずつ確認すること
が出来ます。
この場合、
コードとエクセルの実際の動きをリアルタイムに追うためにエクセルのウィン
ドウとVBEのウィンドウを並べて表示して両方が見えるようにしておくこと
をお勧めします。
1 | エクセルとVBEのウィンドウを「元のサイズに戻す」で可変サイズウィンドウに |
---|---|
2 | それぞれのウィンドウが上下に並んで両方とも見えるようにサイズを調節 |
3 | エクセルのウィンドウで、作業を行うシートを表示 |
4 | VBEで実行するプロシージャのコード内にカーソルを置く |
5 |
「ステップイン」のコマンドボタン(またはF8)を押す度に
(コメント以外の)コードを一行ずつ実行 |
コードのキーワード中にカーソルを置いた状態でF1を押すと、その項目に対
するヘルプが表示されます。もちろん全ての項目に対してヘルプが有効なわけ
ではありませんが、ヘルプのキーワードで検索するよりはよほど確実に目的の
ヘルプに到達することが出来ます。
コードの入力時に全て小文字(または大文字)で入力しても綴りさえ合っていれば
自動的に大文字からはじまるスタイルに変更してくれます。
つまり、入力時には大文字小文字を気にする必要はあまりなさそうです。
また、引数のカンマの前後、演算子の前後などにスペースを挿入して見やすくしてくれます。
ただし、文字列演算子の「&」だけは入力する際にその両側に半角スペースを
あらかじめ手入力する必要があるようです。
【下から4行目】 このように小文字だけで入力していっても ・・・・ |
|
↓ | |
自動的に単語先頭を大文字にしたり、 数値の前にスペースを挿入して見やすく 整形してくれます。 |
VBA関数、メソッドなど引数の必要なものを入力すると、自動的に引数のヒント
が表示されます。
Rangeプロパティなら「Range(」まで入力すると、表示されます。
現在入力中の引数は太字。
「[ ]」で囲まれた引数は省略可能であることを示します。
「As 〜」はヒントの表示されたメソッドや関数の戻り値がどのようなデータ型か
示しています。
ユーザーが入力している時点で入力可能な候補の一覧を表示してくれる機能です。
Ctrl+Space のショートカットキーで候補リストを
いつでも表示できます。
表示されたリストから↑↓で探して
Tab(またはマウスでダブルクリック)で確定です。
オブジェクト、プロパティ、メソッド、関数、組み込みの定数はもちろん、プロシ
ージャ名やユーザーの設定した変数や定数、ユーザーフォームやシートに配置し
たコントロール名までリストに表示してくれるので、大変便利な機能です。
初心者から上級者まで幅広く利用できる機能です。
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||