【 マクロ記録は便利! でも 】
Excelには便利な「マクロ記録」機能があります。
これは、記録ボタンを押してから修了するまでの一連の操作を、プログラムのソースコードで出力してくれるものです。
とても便利ですが、注意点もあります。
「あくまでも参考にすること」に徹することが第一だと思うのです。
参考になるところは、下記の2点だと思います。
・どんな関数を使えば良いのかの検討がつくところ
・パラメータがわかるところ
参考以上にしては行けない理由は、
・プログラムのソースコードが必要以上に長くなるケースが多い
・条件分岐や繰り返しなど(if~then や for ~ next )が入らない
・自分のソースコードスタイルと違う
・コメントが入っていない
特に、複雑な操作の記録をコピペで使ってばかりいると、
・記録されたプログラムを解読してから使わなくなる
・コピーしたところを後から見ても、何が書いてあるのかよくわからなくなる
・きちんとしたプログラムのソースコードが書けなくなる
と、初心者に舞い戻ってしまうことになります。
【 マクロ記録の例 】
例えば、レーダーチャートを表示するために、領域を選んでから、
「挿入」-「グラフ」-「レーダーチャート」を記録すると、このようなプログラムとして記録されます。
Sub Macro3()
'
Range("A4:C9").Select --- ①
ActiveSheet.Shapes.AddChart2(317, xlRadar).Select --- ②
ActiveChart.SetSourceData Source:=Range("Sheet1!$A$4:$C$9") --- ③
End Sub
この例だと、表示対象の領域設定が①、③の2カ所に現れています。
①は、最初にグラフを作るための表示領域の設定。
②は、レーダーチャートグラフを生成する部分。
③は、既に作られているグラフに表示領域を設定しにいく。
①と③とは目的が違います。③を応用すれば、一つのグラフを表示した後に、表示領域を変更するだけで、いろいろなグラフを表示できるようになります。
この時に使うのが、ChartオブジェクトのSetSourceData という関数で、その変数としてExcelシート上のデータが記入されている領域を指定する、と理解しましょう。
単純にグラフを表示するだけなら、①と②でも動作します。