スポンサーリンク

マクロでとにかく情報を取得する。[構文を覚える必要なし]

取得プロパティ VBA
スポンサーリンク
スポンサーリンク

マクロの記録だけでも、有益なコードは取得可能です。

※ローカル環境でも有益なコードを取得して運用可能です。

始めに

結構色々な情報が、マクロの記録で取得可能な場合が有ります。

面倒な場合もありますが、 ネットに接続できない環境や、コードの辞書、逆引き辞書が手元に無い。思い出せそうで、思い出せない、等、
無駄な時間を悩むより、早く解決出来る場合も多々あります。

取得可能なプロパティの例

●入力内容、フォントカラー、フォントサイズ、太文字、斜体文字、アンダーライン。
●セルの背景色、セルの選択方法や、ハイパーリンク、名前定義の方法、など。
◎他にも、図形作成を記録してみて、どのプロパティに属するのかとかにも使えます。(マクロで記録できない物もあるので注意)

簡単なマクロの記録例

  • A1セルを選択して、
  • 内容を「あいうえお」
  • 決定すると選択セルがずれるのでA1セルを選択し直す
  • フォントカラーを「赤」で決定
  • 背景色を「黄色」に指定
  • 太字に設定
  • 斜体に設定
  • 下線を引く

記録例

これをマクロ記録した物が下記です。

Sub マクロで記録()
Range("A1").Select
ActiveCell.FormulaR1C1 = "あいうえお"
Range("A1").Select
With Selection.Font
    .Color = -16776961
    .TintAndShade = 0
End With
With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 65535
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Font.Underline = xlUnderlineStyleSingle
End Sub

注釈、改行を加えたもの

※改行とコメントアウトを挿入しています

Sub マクロで記録_コメ有り()  ''コメントつき

Range("A1").Select  ''アクティブなシートのA1セルを選択させる

ActiveCell.FormulaR1C1 = "あいうえお"  '’選択したセルの中身を「あいうえお」

Range("A1").Select  ''決定したら選択セルがずれるので、A1セルを選択し直す

With Selection.Font     ''選ばれている範囲のフォントを~・・・
    .Color = -16776961  ''色を赤に。
    .TintAndShade = 0   ''明るさはニュートラル(ゼロ)に

End With
With Selection.Interior  ''選ばれている範囲の背景を~・・・
    .Pattern = xlSolid   ''塗りつぶし無し(網かけ無し)
    .PatternColorIndex = xlAutomatic  ''カラーパレットを使ってのインデックス値で塗りつぶり無し
    .Color = 65535       ''背景色は黄色
    .TintAndShade = 0   ''明るさはニュートラル(ゼロ)に
    .PatternTintAndShade = 0   ''セルの網掛けの明るさはニュートラル(ゼロ)に
End With

Selection.Font.Bold = True      ''選ばれてる箇所範囲を太字に。
Selection.Font.Italic = True    ''選ばれてる箇所範囲を斜体に。
Selection.Font.Underline = xlUnderlineStyleSingle   ''選ばれてる箇所範囲に下線を引く。

End Sub

読み解いた物を分解、まとめて行く

※ 改行とコメントアウトを挿入しています

Sub マクロ記録後の自分で編集()

Range("A1").value=”あいうえお”
Range("A1").Font.Color = -16776961  ''色を赤に。

Range("A1").Interior.Color = 65535 ''背景色は黄色

Range("A1").Font.Bold = True      ''選ばれてる箇所範囲を太字に。
Range("A1").Font.Italic = True    ''選ばれてる箇所範囲を斜体に。
Range("A1").Font.Underline = xlUnderlineStyleSingle   ''選ばれてる箇所範囲に下線を引く。

End Sub

まとめ

● あらかじめ不要な項目が分かったので、 「selection」 から削除しました。

● 不要な項目が無くなった為「With Selection」で纏める必要性がなくなりました。

● 「selection」で設定されていた項目を直接”A1”とする事で、
  随分と読み解き易くなったと思います。

※今回は「マクロで取得したプロパティ」からコードを書くヒントを得るというものです。
※取得した「Font.Color」や「Interior.Color」、その他のプロパティですが、
 指定方法はもちろんこれだけではありません。

中級者やそれ以上の方は是非、自分にとって一番美しく、見易く、速いコードが書ければと思います^^

タイトルとURLをコピーしました