トップページ
戻る

マクロの書き方

ここではマクロと何か、何のためにあるかの説明はしません。
これら概念がわかることが前提です。もしわからない場合、事前に理解しておいてください。
また、C#やVB.NETについても同様です。
どうしても理解できない場合は、無理してマクロを使う必要はありません。気楽に考えてください
ただし、この文書の内容が分かりにくくて理解できないならご連絡ください。改善させていただきます。
質問もお答えします。

本ソフトから提供されているコマンドと .NET Framework の機能を使用してマクロを記述してください。
現在使用可能言語はC#とVB.NETです。
.NET の全機能が使用可能です。アプリケーション内で既に .NET Framework の主要アセンブリ(DLLファイル)がインポート
されていますので、基本的に #usingディレクティブ(Importsステートメント)で宣言するだけですべて利用可能です。
もちろん、名前空間を含めた書き方でも結構です。
もし必要なアセンブリが組み込みでインポートされていない場合、[設定]-[マクロ]で追加してください
ここで追加できるアセンブリは正常に動作するものならなんでも良いです。自作もの、.NETのものでも結構です。
アセンブリがインポート済みかどうかはコンパイルメッセージで確認できます。
記述場所はエディタを立ち上げてそのまま記述しても問題ないですが、マクロ専用のエディタを使うと便利です。
マクロ実行はソースから実行する方法とソースをコンパイルして実行ファイルを作ってそれを実行方法もあります。
前者の場合実行する度にソースのコンパイルが行われるため、若干遅いです。後者はその分速くなります。
実行結果に変わりはありません。必要に応じて使い分けてください。
マクロ実行に引数が必要な場合も[設定]-[マクロ]で追加してください。ここで追加したものがマクロエディタで
一覧に現れて選択して使えます。


C#での雛形はこのようになっています(VB.NETでもほとんど同じですので省略します)。
class Macro : Chin.EditorMacro
{
	public override object Main()
	{
		//TODO

		//通常は null を返す
		return null;
	}
}
難しいことを考えずに、ただコメントの//TODOと書かれている所にコマンドを並べていけば良いです。
この雛形はいつでもマクロエディタのメニューからワンクリックで生成されますので覚える必要はありませんが、
ちょっとは説明しましょう。
名前 Macro です。変更はできません。※物理ファイル名は何でも良いです。
必ず、EditorMacroクラスを継承しなければなりません。
一つの物理ファイルにこの雛形と同じクラスをいくつ記述しても問題ありませんが、
その場合 Macro の名前がついているものだけが実行されます。ただし(当たり前ですが)、自分で
ほかのクラスのインスタンスを生成してメソッドなどを呼び出した場合はこの限りではありません。
名前空間も使用可能です。ただし、マクロの実行ファイルにすると実行に失敗しますので、(明示的に)名前空間の使用は
避けた方良いでしょう。ソースから実行するだけなら使用しても構いません。
※明示的に名前空間を指定しなければ、デフォルトの名前空間に属することになります。
実行はお馴染みの Main から始まります。この関数は戻り値も返せるようになっていますので
他のマクロから呼ばれて結果を返すことができます、object型ですので注意が必要です。
アプリケーションをマルチスレッドで操作する必要はまずありませんが
念のため一言、すべてのコマンドはスレッドセーフではありません。使う場合は必要な処置を行ってください。

サンプルを一つ用意しましたダウンロードして実行してみてください。
そして、中身を解析してみてください。

マクロソースのダウンロード

実行するとこの画面が表示されます。いろいろと操作してみてください。
理解しやすくなります