マクロ記録のVBA解説 Macユーザー向け Excel VBA 入門 [02] Excel2019 for Mac

Excel2019 VBA Primer[02] image(Png)

 [02] Excel の「マクロの記録」で保存されるVBAコードを弄ってみよう!

 安全なマクロ (VBA) を含んでいる Excel ファイルのみ、「マクロを有効」にしましょう。

 VBA( Visual Basic for Application )は、マイクロソフト の( .NET ではない)「 Visual Basic 6.0 」プログラム言語を 同 Office のマクロ記述用として応用した物です。
 VBAコードを編集するには、 [option] + [F11] キー押下で表示される VBE( Visual Basic Editor )ウィンドウを利用します。

 ※本日は、(これ以降)難しい「VBA用語の説明」を抜きにして、進めますね!


 [02] Excel の「マクロの記録」で保存されるVBAコードを弄ってみよう! 

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

 安全なマクロ (VBA) を含んでいる Excel ファイルのみ、「マクロを有効」に! 

vba2019_primer[01] 04_png

(01) 復習です。 前回保存した 拡張子 xlsm の Excel ファイルを開くと、マクロ ( VBA ) が含まれているため 上記のダイアログが 表示されます。 これは悪質なマクロを含んだ危険な Officeファイルが存在し、その実行を回避するための手段です。 知らない方から「マクロを含んだ Officeファイル 添付」のメールが届いた場合、絶対に添付ファイルを開いてはいけません。

 安心なマクロ ( VBA ) と判っている場合のみ、[ マクロを有効にする ] ボタンをクリックします! 知り合いの方と「マクロを含んだ Officeファイル」をやり取りする場合、事前に相手に伝えておくと良いでしょう。

 それでは、前回保存された VBAコード を見てみましょう! 

(02) [開発]リボン左上の [Visual Basic] ボタンのクリック あるいは [option] + [F11] キーを押下して、 VBE ウィンドウを表示。
 VBAコードは 大文字/小文字を区別しませんが、全て小文字で記述しても見易いよう、(インデントも含め) VBE にて自動的に補完されます。 ただし、必ず「無変換」状態(昔で言う「半角」)にて入力ください。
 ( VBE ウィンドウでは コメント(注釈) は「緑」色、エラー箇所は「赤」色で表示 )

 Macro1 にて黄色で塗りつぶした場合の VBAコード 
Sub Macro1()
'
' Macro1 Macro
'

'
  Range("B2:C10").Select
  With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 65535 ' 「黄」色
    .TintAndShade = 0
    .PatternTintAndShade = 0
  End With
End Sub


 Macro2 にて赤色で塗りつぶした場合の VBAコード 
Sub Macro2()
'
' Macro2 Macro
'

'
  Range("B2:C10").Select ' 同じセル範囲を選択
  With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 255 ' 「赤」色
    .TintAndShade = 0
    .PatternTintAndShade = 0
  End With
End Sub

Excel2019 VBA Primer[02] 01_png

(03) VBE から マクロ単位でコード実行する一番簡単な方法は、上記画面のように Sub 行の マクロ名( Macro1 あるいは Macro2 )を選択反転後に ミニアイコン1行めの ▶️(再生ボタンみたいなの)をクリック!
 実行すると、セル選択範囲の色が変わるはず。

Excel2019 VBA Primer[02] 02_png

(04) 通常、 VBE にて緑色で表示される部分は 「コメント(注釈)」のため、無くても実行結果は変わりません。 (行の途中でも) ' (アポストロフィ・シングルコーテーション)以降行の最後までと、Rem で始まる行は VBA のコメントになります!

 1行目は、セルの「B2」から「C10」を選択するというコード。 次の行の Selection は選択したセル範囲。 コメントを除くと 2つのマクロを比較して異なる部分は、 65535255 の数字の箇所のみ。 この数字にて、「塗りつぶし」の色が決まります。
  HTML Color Chart HTMLカラーコード を整数化したものがこの数字で、 RGB color code は「 Red 0-255 , Green 0-255 , Blue 0-255 」の組み合わせで 1670万色 を表現可能。
 HTMLカラーコード は RGB の3要素を「0からffまでの16進数」で続けて表記し、先頭に # を付けます。 (例)赤色の場合、 #ff0000

赤色だと、RGB(255, 0, 0) で、255 + 256*0 + 256*256*0 = 255
黄色だと、RGB(255, 255, 0) で、255 + 256*255 + 256*256*0 = 65535
緑色だと、RGB(0, 255, 0) で、0 + 256*255 + 256*256*0 = 65280
青色だと、RGB(0,0,255) で、0 + 256*0 + 256*256*255 = 16711680

 なお、計算しなくても VBA で利用可能な VB (Visual Basic) の RGB関数 を用いれば判ります。 下記画面のように 「イミディエイト」ウィンドウ に入力して確かめてみてください。 「イミディエイト」ウィンドウの表示は、VBE ウィンドウが選択された状態のメニューバー [表示]-[イミディエイト ウィンドウ] にて。 すべて小文字入力でも結果は同じで、 行の最後は [return] キーが必要。 (「?」は「Debug.Print」の省略形)

Excel2019 VBA Primer[02] 03_png

(05) 実は 25565535 指定ではなく、 rgb(255,0,0) あるいは rgb(255,255,0) で 色指定が可能 です。 (下記画面を参照)
 VBAコードを上書き後、再度実行して動作を確認! これで、1670万色の中から任意の色が指定可能で、数値直指定と比べ かなりプログラムっぽくなったのでは...

Excel2019 VBA Primer[02] 04_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