【VBA】コード作成に詰まってしまった時

2022年3月15日

VBAでコードを作成してる場合に
「この処理はどうすれば可能なのだろう?」と
詰まってしまったときには、
以下の2つを(或いは2つを順に)試してみてください。

■マクロの自動記録
■ヘルプ機能

それでは見ていきましょう。
 

広告

【マクロの自動記録】の活用

実は【マクロの自動記録】は「実行したい処理に必要なオブジェクト・プロパティ・メソッドについて分からない事をExcel自身に聞く」機能であります。

VBA_自動記録とヘルプ機能1
例題:セルの背景色を黄色に変更してみよう

例えば
A1のセルを黄色で塗りつぶししたいのだけど、黄色って選択できるの…?そんな場合は自動記録を活用すると、以下のようなコードが得られます。

    Range("A1").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With

.Color の部分に注目すると”65535” とあるので、
「これが黄色か!」と分かるわけです。

また、仮にプロパティが分からなくても、
ここでオブジェクトはRange(“A1”).でInterior、
colorプロパティを使えば色が変更出来そうだ、とVBAのコード作成に少し慣れていれば分かってくるかと思います。

余分な部分(すなわち色に関する部分)を除けば

Range(“A1”).Interior.Color = 65535

とすればセルを黄色く塗りつぶす事が出来る、と目途が立ちますね。
このように、処理方法が分からない場合は、まずは
自動記録を細かく実施していけば、解決できると思います。
 

【ヘルプ機能】を活用する

もし、マクロの自動記録で導き出されたコードの中に分からない単語が出てきた場合は、ヘルプ機能を使い調べ、理解を深める事が出来ます。
 

活用方法

VBA_自動記録とヘルプ機能3
該当の箇所を選択、もしくはカーソルを持って行き、【F1キー】を押すか、ツールバーからヘルプセンターに行けます

VBEウインドウ上で調べたい単語を選択し(もしくはカーソルを持って行って)、【F1キー】を押すとMicrosoft社のオンラインヘルプサイトにアクセスできます。※その他VBEのツールバーからもアクセスできます。

もしもGoogle等の検索エンジンを活用する場合は

Vba [検索したいワード] docs

で検索してみてください。
では、例として [ PasteSpecial Paste ] をヘルプで調べてみましょう。
それに伴い、例題です。

VBA_自動記録とヘルプ機能2

↑の画面のように、【A1セル】に有る値を【B1セル】に値貼付けした場合、これをマクロ記録を使うと下のようなコードが生成されます。

    Range("A1").Select
    Selection.Copy
    Range("B1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A1").Select
    Selection.Copy
    Application.CutCopyMode = False

そして、値貼付け部分の[PasteSpecial]を選択
(もしくはカーソルを移動)してから、【F1キー】を押すと

VBA_自動記録とヘルプ機能4
VBA_自動記録とヘルプ機能5

ヘルプページの説明文は読みづらいものがあるかもしれませんが、あまり細かい箇所にはこだわらず、「分かるところだけ」理解すれば良い、大枠で理解する気持ちで閲覧すると良いです。次第に慣れてくるだろう、という気持ちで丸暗記はしなくても良いのです。

【自動記録→ヘルプ機能活用】、これを繰り返していく中で、「少しずつでも曖昧だった点が明確になっていく、VBAの知識が蓄積されていく」この事が重要なのだと感じます。

広告