VBA用語説明(基礎)+ インテリセンス Macユーザー向け Excel VBA 入門 [03] Excel2019 for Mac

Excel2019 VBA Primer[03] image(Png)

 [03] VBA 用語説明(基礎)+ VBE環境設定1 + インテリセンス

 VBA を学習するにあたり、最低限知らないといけない用語を説明。

 VBA の処理単位を プロシージャ と呼び、戻り値を返す Function (関数)プロシージャ と、戻り値を返さない Sub プロシージャ の2つ など!

 忘れてました。 用語説明の前に 必須の VBE環境設定 を行います。
 おまけで、 インテリセンス(MSのコード入力補完技術の名称)の利用方法も載せました!


 [03] VBA 用語説明(基礎)+ VBE環境設定1(Option Explicit + フォント設定) 

 まず、Excel メニューバーの [ヘルプ] - [更新プログラムのチェック] にて、適用されていないアップデートがあれば行ってください。

 VBE環境設定1(Option Explicit + フォント設定) 

必須の VBE環境設定 を行うため、 VBE ウィンドウ選択状態で  メニューバー [Excel]-[環境設定] ダイアログ(下記)を表示。

vba2019_primer[03] 01_png

 デフォルトの[編集]タブ内の「変数宣言が必要です」チェックボックスをオンに変更し、変数の宣言を強要。 これ以降、挿入されたモジュールの先頭に「 Option Explicit 」が自動的に付加されます。(詳細は、「変数」解説時にて)

vba2019_primer[03] 02_png

 デフォルト状態のままだと日本語入力時に文字カーソル表示がずれる  ため、[エディターの設定]タブ内の VBE全般のフォント設定となる [標準コード] のフォントを "Meiryo UI" に変更。
( 他だと "MS Gothic" や "Monaco" 等、文字カーソル表示がずれない かつ 見やすいフォントを選択) また、フォントサイズも 見やすいサイズに変更。 最後に [OK] ボタンをクリックしましょう。

 2021/06/26 追記 
 一部の等幅フォント でないと(日本語入力が不必要な)半角文字入力時に若干カーソル表示が乱れるようです。 標準コードのフォントを「MS Gothic 16point」に再変更しました!
等幅フォントの「Osaka フォント」では、きちんと等幅で表示されないような気がします。 ただ、 MS Gothic は「 数字の 0 」と 「英字大文字の O 」の判別が付きにくい  ので、注意が必要です。


vba2019_primer[03] 03_png

 ついでに、 Excelウィンドウ選択状態で  メニューバー [Excel]-[環境設定] ダイアログを表示後 [全般] アイコンをクリックして表示させ、見やすい フォント(サイズ)を選択。 また、下線のチェックボックスをオンにしておくと良いでしょう。


 VBA 用語説明(基礎) 

VBA を学習するにあたり、最低限知らないといけない用語の説明

  • マクロ …再利用可能なよう 狭義では一連の処理を記録したものを指し、広義では VBAで記述したコードも 含まれる
  • VBA ( Visual Basic for Application )  …(.NET系でない) VB6.0 ( Visual Basic 6.0 ) を、 MS Office も制御できるように拡張したもの
  • VBE ( Visual Basic Editor ) …VBA コード入力・編集のための VBA 開発環境【無料】
  • オブジェクト …セルを管理する Range や Cells オブジェクトといったような、最小構成単位
  • プロパティ  …オブジェクト毎に設定・参照可能な値
  • メソッド   …オブジェクト毎に用意されている命令
  • ステートメント…If 文のような、マクロ記録で記録されない VBA の挙動を制御するための構文
  • 関数     …実行結果として戻り値を返すタイプの処理単位。 (ほぼ)共通で利用可能な VB関数 が用意され、専用関数のサブセットが Excel、Word、Access、PowerPoint 等それぞれのオフィスアプリケーション毎に用意されている


戻り値を返す Function (関数)プロシージャ と、戻り値を返さない Sub プロシージャ

 Macro2 にて赤色で塗りつぶした場合の VBAコード 
Sub Macro2()
  Range("B2:C10").Select ' 同じセル範囲を選択
  With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = RGB(255, 0, 0) ' 「赤」色
    .TintAndShade = 0
    .PatternTintAndShade = 0
  End With
End Sub

  VBA の処理単位をプロシージャと呼び、戻り値を返す Function (関数)プロシージャ と、戻り値を返さない Sub プロシージャ の2つがあります!

 Function や Sub プロシージャが VBA にて実行可能な最小単位だが、プロシージャから別のプロシージャを呼び出すことが可能。 マクロ記録で作成されるのは 戻り値を返せない Sub プロシージャ で、プロシージャの呼び出しのみ可能。

先頭の Sub は Subプロシージャ の始まりを示し、その右側が プロシージャ名

 Subプロシージャ内の 1行目は、Range オブジェクトで使用可能な Select メソッド を実行。 B2:C10 までマウスで(反転)選択した操作が、コード化されたもの。

 2行目の Selection は シート上で選択した対象(今回は「セル範囲」、つまり Range("B2:C10") オブジェクト)、 Interior は「その内部」 を指す場所として 定義済み。
With から End With はその間を一括りにするためのコードで、 Selection.Interior に対して まとめて操作を行います。
なお、 [上位オブジェクト].[下位オブジェクト(プロパティ)] 表記のため、Selection オブジェクト内に Interior プロパティが存在します。
ちょっと、難しくなってきましたね。 今日のところは、 [親].[子].[孫] と左から順にオブジェクト(プロパティ)を指定して その間に . (ピリオド)を挟む と言うことだけ覚えれば充分ですよ。

 3行目以降はプロパティの設定となり、 Selection.Interior オブジェクトに対し 5つのプロパティを設定。
個々にプロパティ設定することも当然可能で、そのコード例は Selection.Interior.Color = RGB(255, 0, 0) となります。
先程説明した通り(シート上で選択対象を変更するまでは) Range("B2:C10").Interior.Color = RGB(255, 0, 0) でも同一操作で、 Selection は言わば一時的な別名と思ってもらえれば...

 End Sub は Subプロシージャ の終わりを示します。

最後に、 プロパティの値設定には 代入を意味する = (イコール)を用い、左辺に右辺の値を代入(設定) していることだけは 忘れないように!


★おまけ★ インテリセンス の利用方法

 対象オブジェクトが一つに絞れる場合、 .(ピリオド)まで入力すると インテリセンス(コード入力補完)が表示  されますが、先頭の1文字(候補が多い場合は、2文字か3文字)を入力して限定すると絞りやすいですよ。
 ミニアイコンの違いに気付きましたか? 「プロパティ」と「メソッド(緑色)」が見て取れますね。 説明の続きは画面内を参照!
 うろ覚えでも 楽して 間違い無くコード記述できるため、 インテリセンス にガンガン頼ってくださいな。 MSの インテリセンス ( IntelliSense ) 技術は Visual StudioVS Code で定評があり、最新版の Visual Studio 2019 と比べて機能は限定されますが VBA からも利用可能。
 (イミディエイト ウィンドウ内で説明していますが、もちろん コード ウィンドウ内でも インテリセンスが利用可能)

 2021/06/26 追記 
 コード ウィンドウ内の「インテリセンス」、不安定なようです! イミディエイト ウィンドウでは きちんと動くので、イミディエイトウィンドウで1行ずつ入力して コピペ ありかも...

vba2019_primer[03] 04_png

vba2019_primer[03] 05_png

vba2019_primer[03] 06_png

vba2019_primer[03] 07_png

vba2019_primer[03] 08_png

【参考】 「セル範囲の背景色の変更のみ」を行うVBAコードは(対象のセル範囲が予め判明しているのであれば)、以下の1行のみで実現可能。

  Range("B2:C10").Interior.Color = RGB(255, 255, 0)

With 〜 End With は対象オブジェクトに対し「複数のプロパティ」をまとめて設定する時などに利用するステートメントのため、今回のようにプロパティを一つ設定するだけなら 無くてもかまいません。 また、わざわざ対象のセル範囲を(マウスで)選択する必要もありません。


 [command] + [Q] にてまず VBE を終了し、Excel のウィンドウ内を選択して [command] + [Q] にて Excel も終了させます。 「作業中のブック」を保存するか確認のダイアログ画面が表示された場合は 「保存」しましょう。 「自動保存」済みの場合、保存するかどうかの確認ダイアログ画面は表示されません。


 お疲れ様でした! コードの説明が続くと、眠くなりますかね? 次回は、とりあえずコードの説明は抜きにして、 VBA で カラーチャート を作ってみましょう!




広告
  




Macブログ ランキング アイコン
最後まで読んでいただき、ありがとうございます。 また、お越しくださいませ。
// アタル
For follow LINE Reader Group!Subscribe to this blog on Feedly!

Next Post Previous Post
No Comment
Add Comment
comment url