今回は、マクロ記録について、書きたいと思います。
マクロ記録は、メニューバーのツール→マクロ→新しいマクロの記録で、マクロ名(規定値はmacro1)を入力して、OKボタンを押すと、始まります。
記録終了ボタンを押すと、それまでの、マクロ記録された内容が、VBAのソースとして、標準モジュールに、サブルーチンとして、記録されます。
例えば、シート上で、罫線を引く事をマクロ記録した場合、下記のようなサブルーチンが作成されました。
Sub Macro2()
'
' Macro2 Macro
' マクロ記録日 : 2007/3/2 ユーザー名 : azuma-keiichi
'
'A1セル~C8セルを選択
Range("A1:C8").Select
'選択しているセルに対して、罫線なしにする
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
'選択しているセルに対して、左罫線をセットする
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous 'ラインスタイル
.Weight = xlThin '太さ
.ColorIndex = xlAutomatic '色
End With
'選択しているセルに対して、上罫線をセットする
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'選択しているセルに対して、下罫線をセットする
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'選択しているセルに対して、右罫線をセットする
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'選択しているセルに対して、水平罫線をセットする
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'選択しているセルに対して、垂直罫線をセットする
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub
コメントは私が、付加したのですが、これを一々コーディングするのは、結構大変ですね!
だから、マクロ記録をうまく使いたいのですが、このままだと、プログラミングし難い事があります。
マクロ記録で一番気をつけなければいけないのは、セルを表す命令がCellsではなく、Rangeになる事です。Cellsは、i行目のj列目という指定ができるのですが、Rangeは、A列の8行目のような指定の仕方をします。Range("A1:C8").Selectのように、列方向の指定が数字ではなく、英字なのです。
これでは、プログラムし難いですよね!
ですから、マクロ記録したソースを使用する場合、Rangeの部分は、Cellsに置き換える必要があります。又、当然、iとかjとかの変数ではなく、定数で展開されますので、その部分も変換します。
基本的には、注意事項はそれだけです。
EXCEマクロ(VBA)には、豊富な機能に対する命令が沢山用意されていますが、マクロ記録をうまく利用すれば、難しそうな事も、結構、簡単に実現できていまします。
この辺が、他の言語と違う所で、私が一番気に入っている所です。
それでは!
0 件のコメント:
コメントを投稿