マクロの記録だけでも、有益なコードは取得可能です。
※ローカル環境でも有益なコードを取得して運用可能です。
始めに
結構色々な情報が、マクロの記録で取得可能な場合が有ります。
面倒な場合もありますが、 ネットに接続できない環境や、コードの辞書、逆引き辞書が手元に無い。思い出せそうで、思い出せない、等、
無駄な時間を悩むより、早く解決出来る場合も多々あります。
取得可能なプロパティの例
●入力内容、フォントカラー、フォントサイズ、太文字、斜体文字、アンダーライン。
●セルの背景色、セルの選択方法や、ハイパーリンク、名前定義の方法、など。
◎他にも、図形作成を記録してみて、どのプロパティに属するのかとかにも使えます。(マクロで記録できない物もあるので注意)
簡単なマクロの記録例
- 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」、その他のプロパティですが、
指定方法はもちろんこれだけではありません。
中級者やそれ以上の方は是非、自分にとって一番美しく、見易く、速いコードが書ければと思います^^