『Excel』 VBAでちょっと便利!?(その21)

2019年08月23日 仕事のこだわり

Excelでのプログラミング21回目です。

今回は、セルの装飾などでどのようなプロパティを使い、どのように設定すればいいか分からないときに便利な、「マクロの記録」機能を紹介します。

「マクロの記録」機能は、手動で設定したセルの装飾等の手順をプログラムに出力してくれる便利な機能です。

■マクロの記録

マクロの記録機能は、[開発]タブの[マクロの記録]を使います。

下の表に罫線を引いてみましょう。

・「マクロの記録」をクリックします。

マクロの記録保存先の設定が表示されるので、そのまま[OK]ボタンを押します。

※「自動保存ができません」のメッセージが表示された場合は、[名前を付けて保存]をクリックし、「Excelマクロ有効ブック」形式を選択して保存します。

・罫線を引きたい範囲を選択します。

・範囲内で右クリックし、「セルの書式設定」を選択します。

・「セルの書式設定」画面で必要な線を引きます。

・罫線が引かれた状態

・[開発]タブの[記録終了]をクリックします。

これで今行った操作がプログラムとして記録されました。

 

■マクロの編集

・[開発]-[Visual Basic]を選択し、コードエディタを表示します。

「標準モジュール」が追加されて、「Module1」ができています。

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sub Macro1()

‘ Macro1 Macro


Range(“B2:D7”).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
End Sub

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1行目の
Range(“B2:D7”).Select
の部分が選択範囲です。

実際に自分のプログラム内で使用するときは適宜書き換えます。
2行目以降で、選択した範囲に罫線を引いています。

フォントの変更や、文字の配置等同じ手順で試してみてください。

注意していただきたい点は、
「マクロの記録」では不要な部分もコード化されてしますということです。

慣れてきたら、プロパティの仕様を調べながら不要なところを削除するとプログラムがすっきりします。

例えば、2、3行目の

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone

は、

初期値なので、わざわざ記述しなくても同じです。

このように、困ったときには「マクロの記録」でサンプルを出力して、ご自身のプログラム内に切り貼りして使用すると勉強にもなります。

今回はここまでです。

 

 

 

 

Copyright c syshan.jp all rights reserved.