マクロ登録の自動起動についてNo.10416
kendo さん 02/12/22 01:01
 
kendoです。またお教えください。

マクロ登録に 自動起動という ページがありますが、
その中で、

 送信用のエディタ起動時

 というのがありますが、

  送信用のエディタ終了時


 というのが付け加わらないものでしょうか。

(文章を書いた後に整形マクロを動かすことが結構あるのですが、それを必ず忘れな
いように、エディタ終了時に自動的にマクロを動かしたいという願いが私の場合、か
なりあります。)

[ ]
RE:10416 マクロ登録の自動起動についてNo.10417
ひろ さん 02/12/22 13:19
 
 kendo さん今日は、ひろです。
>   送信用のエディタ終了時
 確認ですが、「後で送信/今すぐ送信時」では役不足ということですよね。

[ ]
RE:10417 マクロ登録の自動起動についてNo.10418
kendo さん 02/12/22 13:54
 
ひろさん、kendoです。
> kendo さん今日は、ひろです。
>>   送信用のエディタ終了時
> 確認ですが、「後で送信/今すぐ送信時」では役不足ということですよね。
 実際にはご指摘のタイミングで不都合はありませんが、この場合、すべてのメール
でそうしたマクロが実行されるように思います。
 ですが、もしできれば、そのマクロが特定のテンプレートから呼べると、とてもと
てもうれしいです。特定の人にメールを送るときに、その人専用に整形などをしたい
からです。
 ですから、そうしたマクロを呼ぶようなコマンドをテンプレートのどこかに書き込
んで、メールの本文作成が終わり、ファイルを閉じるとき、その直前に自動的にマク
ロが実行できたら最高です。
 
 アドバイスよろしくお願いいたします。
 

[ ]
RE:10418 マクロ登録の自動起動についてNo.10419
山城屋 さん 02/12/22 14:29
 
これなんですけど、発想を逆転して、

  「マクロを呼び出して、送信エディタを閉じる」マクロ

というのを作れば解決する話なのではないかと思いました。
 で、話をわかりやすくするために、マクロ1とマクロ2という名前を使っ
てご説明します。まず、上の文に出てきた2つのマクロを

  マクロ1:「マクロ2を呼び出して送信エディタを閉じる」マクロ
  マクロ2:「マクロ1から呼び出される」マクロ

だと思ってください。
 いままでは、送信文を作り終えたら送信用エディタを終了していました。
この操作を変えてしまうのです。つまり、これからは送信文を作り終えたら
マクロ1を呼び出すことにするのです。送信用エディタは、マクロ1または
そこから呼び出されるマクロ2で閉じることにします。つまり、これまでの
習慣を思い切り変えてしまうわけですね。これからは送信用エディタを終了
するときには、常にマクロ1は明示的に手動で呼び出すことにするのです。
 そして、マクロ1のなかでは、「送信相手がXXさんのときはマクロ2を呼
び出す。そうでなければ何もしないで送信用エディタを閉じる。」とする。
マクロ2が、そのXXさん宛のメールについて実行したいマクロそのもの、と
する。(んで、処理が終わったら送信用エディタを閉じる)。

この作戦でOKならば、鶴亀メール本体に手を加えることなくできそうだと
思うのですが。マクロ作者さんたち、いかがでしょ?

山城屋

追伸:「役不足」ではなくて「力不足」でっせ。(^_^; 私もよく間違える)

[ ]
RE:10418 マクロ登録の自動起動についてNo.10421
秀まるお2 さん 02/12/23 00:18
 
> ですから、そうしたマクロを呼ぶようなコマンドをテンプレートのどこかに書き込
>んで、メールの本文作成が終わり、ファイルを閉じるとき、その直前に自動的にマク
>ロが実行できたら最高です。

 マクロの実行は「マクロ登録・自動起動・後で送信/今すぐ送信時」で登録し
ておいてもらうとして、テンプレートによってマクロの動作を制御するにはいく
つか方法があります。

 例えばですが、テンプレートの中で、

 $(SetHeader,X-Memo,XXXX)$-

 のような物を使ってメモを設定するようにしておいて、「後で送信/今すぐ送
信」のマクロでは、X-Memoヘッダの中身を見て動作を切り替えればいいんじゃな
いかと思います。

 例えばTo:欄のメールアドレスに全部「様」を付けたいなら、テンプレート上
では

 $(SetHeader,X-Memo,SetSama)$-

 のようにしておいて、「後で送信/今すぐ送信」に登録したマクロでは、

   if( dllfunc("CurrentHeader","X-Memo") == "SetSama" ) {
       call ProcessSetSama;
   }

 みたいなことをするとかです。

[ ]
RE:10418 マクロ登録の自動起動についてNo.10422
秀まるお2 さん 02/12/23 00:32
 
 今思ったんですけど、いっそのこと、独自ヘッダにマクロ名を入れて、それを
実行させる手もあります。

 テンプレートでは、$(SetHeader,X-Macro,"aaa.mac")$-とか指定するとしてで
す。

--------------------------------例----------------------
    loaddll "tkinfo.dll";
    $s = dllfunc("CurrentHeader", "X-Macro");
    if( $s != "" ) {
        #n  dllfunc("DeleteHeader", "X-Macro");
        execmacro $s;
    }

[ ]
RE:10421 マクロ登録の自動起動についてNo.10423
きいろいまふらあ さん 02/12/23 01:12
 
> 例えばですが、テンプレートの中で、
>
> $(SetHeader,X-Memo,XXXX)$-
>
> のような物を使ってメモを設定するようにしておいて、「後で送信/今すぐ送
>信」のマクロでは、X-Memoヘッダの中身を見て動作を切り替えればいいんじゃな
>いかと思います。

いっそのこと、マクロファイルのファイル名(パス)をヘッダに埋め込んでおい
て、それを実行する方が、メンテナンス上(処理の種類を増やしたいときとか)
楽な気がします。複数のマクロの組み合わせで処理のバリエーションを持つ場合
などはちょっと大変ですけど。

[ ]
RE:10423 マクロ登録の自動起動についてNo.10425
kendo さん 02/12/23 05:22
 
kendoです。

>いっそのこと、マクロファイルのファイル名(パス)をヘッダに埋め込んでおい
>て、それを実行する方が、メンテナンス上(処理の種類を増やしたいときとか)
>楽な気がします。
 マクロやテンプレートの文法に暗い私としましては、
 テンプレートの記述はこう、またマクロは鶴亀でこう設定しておくなど、
 もう少し初歩的だとありがたいのですが...... 
 (お願いしておきながらいろいろ注文を出してすみません。)
 

[ ]
RE:10425 マクロ登録の自動起動についてNo.10429
きいろいまふらあ さん 02/12/24 00:14
 
>>いっそのこと、マクロファイルのファイル名(パス)をヘッダに埋め込んでおい
>>て、それを実行する方が、メンテナンス上(処理の種類を増やしたいときとか)
>>楽な気がします。
> マクロやテンプレートの文法に暗い私としましては、
> テンプレートの記述はこう、またマクロは鶴亀でこう設定しておくなど、
> もう少し初歩的だとありがたいのですが...... 

失礼しました。

で、結果的に10422番のまるおさんの発言とかぶってしまってまして、テン
プレートやマクロの例もそちらでまるおさんが書いて下さっていますので、そち
らを参照下さい。

何の役にもたっていない私でした。(^^;

一応書いておくと、10421でまるおさんの書かれたキーワードを埋め込む方
法だと、新しい処理を追加したときに

(1)それ用のマクロを作成する
(2)それ用のキーワードを埋め込むようにテンプレートを作成する
(3)埋め込まれたキーワードから(1)のマクロを呼び出す処理を、送信時に
呼び出すマクロの中に追加する

という3つの作業が必要になりますが、10422(および10423)の方法
だと、(3)の作業が不要になります(マクロを呼び出すマクロは変更しなくて
済むということです)。「メンテナンス上…」という件は、そーいう意味です。

[ ]
RE:10421 マクロ登録の自動起動についてNo.10471
kendo さん 02/12/29 08:09
 

kendoです。お世話になります。
何とかこの操作を実行したいと思っていますがうまく行きません。

お教えください。

> 例えばTo:欄のメールアドレスに全部「様」を付けたいなら、テンプレート上
>では
>
> $(SetHeader,X-Memo,SetSama)$-
>
> のようにしておいて、「後で送信/今すぐ送信」に登録したマクロでは、
>
>   if( dllfunc("CurrentHeader","X-Memo") == "SetSama" ) {
>       call ProcessSetSama;
>   }
>
> みたいなことをするとかです。
 
 上の call ProcessSetSama の「 ProcessSetSama」は、マクロのある部分を指し
ているのでしょうか。
 

 

[ ]
RE:10471 マクロ登録の自動起動についてNo.10472
ひろ さん 02/12/29 11:44
 
 kendo さん今日は、ひろです。
>  上の call ProcessSetSama の「 ProcessSetSama」は、マクロのある部分を指し
> ているのでしょうか。
 少なくともこの解釈は間違っています。ProcessSetSama の処理は具体的に
記述する必要が有ります。まず鶴亀のマクロ・ヘルプには載っていないので、
秀丸のマクロヘルプで「サブルーチン」を御覧頂く必要があると思います。

 あと
> マクロが特定のテンプレートから呼べると、とてもと
> てもうれしいです。
についてですが、「$(ExecMacro,"Macro-File-Name")$-」を利用するわけには
いかないのでしょうか?

[ ]
RE:10472 マクロ登録の自動起動についてNo.10473
kendo さん 02/12/29 12:20
 
ひろ様、kendoです。お世話になります。

>> マクロが特定のテンプレートから呼べると、とてもと
>> てもうれしいです。
>についてですが、「$(ExecMacro,"Macro-File-Name")$-」を利用するわけには
>いかないのでしょうか?
 この命令でいいのかもしれませんが、これだけですと、マクロが実行されるタイミ
ングがコントロールできないように思います。テンプレートを読みこんだ直後に実行
されてしまうようです。
 メールを書き終えて、エディタを閉じるときに自動的に実行できるとうれしいです。
それで、こんどはマクロ登録の自動起動で「後で送信、いますぐ送信時」に呼ぶ予定
のマクロを書いておくと、すべてのテンプレートでそのマクロが実行されてしまうの
です。
(私の勘違いがあるかもしれません。よろしくお願いします。)
 

[ ]
RE:10473 マクロ登録の自動起動についてNo.10474
きいろいまふらあ さん 02/12/29 12:53
 
話が堂々巡りになっていませんか?

> メールを書き終えて、エディタを閉じるときに自動的に実行できるとうれしいです。
>それで、こんどはマクロ登録の自動起動で「後で送信、いますぐ送信時」に呼ぶ予定
>のマクロを書いておくと、すべてのテンプレートでそのマクロが実行されてしまうの
>です。

10422でまるおさんが書かれている方法がまさにお望みのものと思いますよ。
10429の小生のコメントは読んでいただけましたでしょうか?

ひろさんも10418のkendoさんのコメントを読み誤っていませんか?
(例として)整形が挙げられているのだから、

>についてですが、「$(ExecMacro,"Macro-File-Name")$-」を利用するわけには
>いかないのでしょうか?

ってことはないでしょう?
#まさかそのマクロでエディタ終了時のマクロを動的に生成する、なんて話じゃ
#ないでしょうし。

[ ]
RE:10474 マクロ登録の自動起動についてNo.10475
kendo さん 02/12/29 13:41
 
きいろいまふらあ様、kendoです。

>話が堂々巡りになっていませんか?
>
>10422でまるおさんが書かれている方法がまさにお望みのものと思いますよ。
>10429の小生のコメントは読んでいただけましたでしょうか?

10422の記事にそって初歩的な質問をお許しください。
(以下の引用はそこからのものです。)

> 今思ったんですけど、いっそのこと、独自ヘッダにマクロ名を入れて、それを
>実行させる手もあります。
>
> テンプレートでは、$(SetHeader,X-Macro,"aaa.mac")$-とか指定するとしてで
>す。
 ここの例で示されているaaa.macというのが、私の場合「整形」のマクロというこ
とでしょうか。

>--------------------------------例----------------------
>    loaddll "tkinfo.dll";
>    $s = dllfunc("CurrentHeader", "X-Macro");
>    if( $s != "" ) {
>        #n  dllfunc("DeleteHeader", "X-Macro");
>        execmacro $s;
>    }

そして上の 「------------例------」のマクロはこれは適当な名前をつけて、
マクロ登録の自動起動で「後で送信、いますぐ送信時」に登録しておけばいいのでし
ょうか。

[ ]
RE:10475 マクロ登録の自動起動についてNo.10476
秀まるお2 さん 02/12/30 14:12
 
>そして上の 「------------例------」のマクロはこれは適当な名前をつけて、
>マクロ登録の自動起動で「後で送信、いますぐ送信時」に登録しておけばいいのでし
>ょうか。

 そういう意味のつもりです。

 適当に解釈してトライしていただきまして、うまくいかない時はその様子など
レポートいただければ僕か誰かがコメントできると思います。

[ ]
RE:10476 マクロ登録の自動起動についてNo.10477
kendo さん 02/12/30 15:58
 
秀まるお2様、kendoです。
お世話になります。

>>そして上の 「------------例------」のマクロはこれは適当な名前をつけて、
>>マクロ登録の自動起動で「後で送信、いますぐ送信時」に登録しておけばいいのでし
>>ょうか。
>
> そういう意味のつもりです。

 それで実際にメールを書き終えるとマクロが実行されるはずなのですが、上の例の
部分をたとえば、rei.macとして登録しておくと、
 エディタの終了時に エラーの表示があり、
 
  rei.mac(4): 変数への代入がおかしいです。 
 
となります。これはこのrei.macの
4行目  
  #n  dllfun("DeleteHeader", "X-Macro");
のことを言っているのでしょうか。それともそれ以前に、私の場合、何か設定そのも
のがまずいのでしょうか。

[ ]
RE:10477 マクロ登録の自動起動についてNo.10478
秀まるお2 さん 02/12/30 16:10
 
 大変失礼しました。元のマクロが全然間違ってます。

-----------------------------------------------------
    loaddll "tkinfo.dll";
    $s = dllfuncstr("CurrentHeader", "X-Macro");
    if( $s != "" ) {
        #n = dllfunc("DeleteHeader", "X-Macro");
        execmacro $s;
    }
-----------------------------------------------------

 上記の内容が正しいマクロです。これでお試しください。

[ ]
RE:10478 マクロ登録の自動起動についてNo.10479
kendo さん 02/12/30 16:16
 
秀まるお2様、kendoです。

>(.....)
> 上記の内容が正しいマクロです。これでお試しください。
  試してみましたらバッチリでした。
  ありがとうございます。

 

[ ]