そもそもマクロってなに(2)?
『そもそもマクロってなに(1)?』で、マクロの全体的なイメージを説明したところで、もう少し詳しい話をします。
『そもそもマクロってなに(1)?』で紹介したWordに実行させる作業内容は以下のものでした。
theをタイプする
"t"という文字をタイプしなさい。
"h"という文字をタイプしなさい。
"e"という文字をタイプしなさい。
これら作業内容を記述した指示書を作成し、これに記述された作業内容を実行させるとお話ししました。
人間なら上記の通り書いて渡せばいいのですが、Wordの場合このまま書いてもダメです。
というのも、Wordという従業員は機械語しか理解しません。人間には非常に理解し辛い言語です。
人間にも、異なる言語を話す人に何かを伝えるときには通訳/翻訳という作業を伴います。
Wordに指示するときも同様に通訳/翻訳が必要になってきます。
人間が書いた作業内容を機械語に通訳/翻訳してWordに伝えてくれる物をコンパイラーと呼びます。
Wordには、Word専属のコンパイラー(通訳者/翻訳者)がいると想像してみてください。このコンパイラーにWordに伝えて欲しい作業内容を渡すのです。
ただ、どんな書き方で書いてもちゃんと機械語に翻訳してくれるのかというと、そういうわけではありません。
コンパイラーに訳して欲しい作業内容を書くには、ぎっちり固められたルールがあります。人間の話す言葉以上に厳しいです。
人間の通訳者や翻訳者ならかなり融通がきくんですが、コンパイラーはそうはいきません。
ルールに従って書かれてないものは、簡単な誤記であってもエラーとして突き返してきます。
例えば、上記指示内容をこのルールに従って記述すると以下のようになります。
Sub theをタイプする()
Selection.TypeText "t"
Selection.TypeText "h"
Selection.TypeText "e"
End Sub
これは、こんな感じで短く書くこともできます。
Sub theをタイプする()
Selection.TypeText "the"
End Sub
あまり深く考えなくていいです。
ここでは、こういうふうに書くんだという程度に見てください。
また、秀丸エディターにも、秀丸エディター専属のコンパイラー(通訳者/翻訳者)がいます。
このコンパイラーに対する人間側のルールは、Word専属のコンパイラーに対するルールと異なります。
例えば、
"t"を打ちなさいと指示するとき、Wordのコンパイラーには、このように指示します。
Selection.TypeText "t"
秀丸エディター専属のコンパイラーには、
insert "t";
と指示します。
Wordと秀丸エディターには、こういう違いこそあれ、基本的な流れは同じです。
どちらの場合も、コンパイラーという専属の通訳者/翻訳者が居て、このコンパイラーに訳して欲しい作業内容を予め記述しておきます。
この作業内容を実行するように命令すると、コンパイラーが作業内容を機械語に通訳/翻訳してプログラムに伝えます。プログラムは、訳された作業内容を実行します。
マクロを作成するということは、このコンパイラーに通訳/翻訳して欲しい作業内容を、ルールに従って書き記された指示書を用意するということです。
『そもそもマクロってなに(1)?』で紹介したWordに実行させる作業内容は以下のものでした。
theをタイプする
"t"という文字をタイプしなさい。
"h"という文字をタイプしなさい。
"e"という文字をタイプしなさい。
これら作業内容を記述した指示書を作成し、これに記述された作業内容を実行させるとお話ししました。
人間なら上記の通り書いて渡せばいいのですが、Wordの場合このまま書いてもダメです。
というのも、Wordという従業員は機械語しか理解しません。人間には非常に理解し辛い言語です。
人間にも、異なる言語を話す人に何かを伝えるときには通訳/翻訳という作業を伴います。
Wordに指示するときも同様に通訳/翻訳が必要になってきます。
人間が書いた作業内容を機械語に通訳/翻訳してWordに伝えてくれる物をコンパイラーと呼びます。
Wordには、Word専属のコンパイラー(通訳者/翻訳者)がいると想像してみてください。このコンパイラーにWordに伝えて欲しい作業内容を渡すのです。
ただ、どんな書き方で書いてもちゃんと機械語に翻訳してくれるのかというと、そういうわけではありません。
コンパイラーに訳して欲しい作業内容を書くには、ぎっちり固められたルールがあります。人間の話す言葉以上に厳しいです。
人間の通訳者や翻訳者ならかなり融通がきくんですが、コンパイラーはそうはいきません。
ルールに従って書かれてないものは、簡単な誤記であってもエラーとして突き返してきます。
例えば、上記指示内容をこのルールに従って記述すると以下のようになります。
Sub theをタイプする()
Selection.TypeText "t"
Selection.TypeText "h"
Selection.TypeText "e"
End Sub
これは、こんな感じで短く書くこともできます。
Sub theをタイプする()
Selection.TypeText "the"
End Sub
あまり深く考えなくていいです。
ここでは、こういうふうに書くんだという程度に見てください。
また、秀丸エディターにも、秀丸エディター専属のコンパイラー(通訳者/翻訳者)がいます。
このコンパイラーに対する人間側のルールは、Word専属のコンパイラーに対するルールと異なります。
例えば、
"t"を打ちなさいと指示するとき、Wordのコンパイラーには、このように指示します。
Selection.TypeText "t"
秀丸エディター専属のコンパイラーには、
insert "t";
と指示します。
Wordと秀丸エディターには、こういう違いこそあれ、基本的な流れは同じです。
どちらの場合も、コンパイラーという専属の通訳者/翻訳者が居て、このコンパイラーに訳して欲しい作業内容を予め記述しておきます。
この作業内容を実行するように命令すると、コンパイラーが作業内容を機械語に通訳/翻訳してプログラムに伝えます。プログラムは、訳された作業内容を実行します。
マクロを作成するということは、このコンパイラーに通訳/翻訳して欲しい作業内容を、ルールに従って書き記された指示書を用意するということです。