131:マクロの親子

100:エクセル

親子と書きましたが、メインとサブということです。これを知っているのと知らないのでは、本当に作業性が違います。for nextとかも不要でやりたいことができます。

はじめに子供のマクロを作ります。

これは、実際にマクロで作業をやらせたい内容を記載します。例えば

Sub 子供マクロ()
     ActiveCell.FormulaR1C1 = "=+R[-1]C+1"
     ActiveCell.Offset(1, 0).Range("A1").Select
End Sub

これは、今あるセルに、一つ上のセルに1を足して、一つ下のセルを選択しなさい。という命令です。

親マクロを作ります。

親マクロは、私はいつも、main()としておりますが、親()でも良いです。

Sub main()
 子供マクロ
End Sub

子供マクロ()の”()”括弧をとった形で、そのマクロが動きます。一度試してください。

これで話は終わりなのですが、さすがに、こんなに単純ではないと思いますが、このような単純な作業を30回繰り返させたいということがあると思います。そんなときに、for~next、だったり、Do~Loopを使ったりしたら、確認している時間がもったいないと思います。

そんな時には、上記でいう子供マクロというのを、30回コピーしてあげれば、思ったことがすぐにできます。

Sub main()
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 子供マクロ
 End Sub

ちょっと行を使ってしまいましたが、いわゆるこれは、コピーをしただけなので、すぐできます。

親子の関係はこれだけではない

上記内容は一例です。普通は、複数の子供マクロを直列につなげて、処理の流れを作ってあげるのが、一般的な流れでしょう。

Sub main()
 子供ファイルを開く
 子供処理をする
 子供ファイルを保存する
End Sub

上記のような感じでしょうか?

コメント

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