記録マクロと、記述マクロ | 秀丸マクロ, Word VBA, or the like

記録マクロと、記述マクロ

Wordであっても、秀丸エディターであっても、マクロには『記録マクロ』と、『記述マクロ』があります。

記録マクロとは、Word又は秀丸上で行った操作を記録して作るマクロです。

この操作というのは、
  *文字の入力
  *カーソルの移動
  *検索・置換
 等色々あります。

音声を録音するのと同じように、プログラム上での操作を記録します。
Wordにも秀丸にも記録マクロの作成の仕方についてはウェブ上でもたくさん資料が転がっているはずなので、ここでは割愛します・・が、Wordについては、こないだ作りました。せっかくなので、よければこちらも参照ください。↓↓



前に書いた記事『そもそもマクロってなに(2)?』で、「マクロを作成するということは、このコンパイラーに通訳/翻訳して欲しい作業内容を、ルールに従って書き記された指示書を用意するということです。」と述べました。

上の動画の手順で、記録マクロをつくるとWordが自動で『指示書』をつくってくれます。
このマクロの指示書(コード)はこんな感じです。

'---------------------------------------------------------------
Sub 文章毎に改行する()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p"
.Replacement.Text = "^p--new para--^p"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "。"
.Replacement.Text = "。^p"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
'---------------------------------------------------------------



一方、記述マクロというのは、この指示書(コード)を自分で1行ずつ書いて作るマクロです。


記録マクロと記述マクロを比べると、記録マクロの方が簡単そうでとっつきやすそうですが、記録マクロはにできることにかなり制限があります。

例えば、『こういう場合は、これ。それ以外はこう。』というような処理の分岐ができません

また、1~10までの作業内容があった場合に、例えば2の作業だけ2回繰り返しというように繰り返し作業ができません。1~10まで一度ずつ行って終了です。

こういう弱点があるものの、とりあえずマクロというものを始めたいという人はここから入ってみるのがいいと思います。意外と簡単というのがわかります。

また、記録マクロは、自動でコード書いてくれるので、これを利用して『こういう動作をさせたいときはどういうコードを書けばいいんだろう』と言う場合に、
一旦、記録マクロで動作を記録させて記録された動作のコードを見てみるといった感じで、辞書がわりに使うこともできます。

自分も最初は、自動生成されたコードをちょこちょこっといじっては実行してみて機能に変化があるかどうか見たりしながら、各コードの意味を理解していきました。