こんなマクロ可能ですか?No.03667
cuma さん 01/08/14 22:24
 
いつもマクロご指導&作成ありがとうございます。
以下のようなマクロ可能でしょうか?

メール本文

○○○:1
△△△:2
□□□:
◎◎◎:
■■■:1

こんな場合に、引用返信すると

>○○○:1
>△△△:2
>■■■:1

このようになるのが理想です。

つまり、数字の0から99が含まれない行は削除して引用したいのです。

今現在は自分の目で見て手作業で数字無しの行を削除しています。
毎日多数の作業なので面倒ですし、うっかり数字ある業を削除する
事もあって自動化が必要だと感じています。

どなたかご指導(出来れば当方マクロ作成が出来るレベルでは無い
ので、回答例?を頂ければ)頂ければ幸いです。

[ ]
RE:03667 こんなマクロ可能ですか?No.03669
ひろ さん 01/08/15 00:06
 
 cuma さん今日は、ひろです。
> いつもマクロご指導&作成ありがとうございます。
> 以下のようなマクロ可能でしょうか?
<中略>
> つまり、数字の0から99が含まれない行は削除して引用したいのです。
 可能です。
 ただ、返信用のエディタウィンドを開いた時には既に、テンプレートによっ
て元の文が引用記号付きで挿入されているのではありませんか? それならば
逆転の発想で、返信用のエディタウィンドを立ち上げたあと、引用行の内0
〜99が含まれない行を削除すればよいと思います。
 その方法で良ければ、下記のマクロで出来ます。
//-------------------------------------------------------------------
//検索状態を保持
#reg_search = searchmode;
$search = searchbuffer;
#search = searchoption;
if( !#reg_search ){
  openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
  writeregnum "SelectFound",1;
  envchanged;
  closereg;
}
//実際に削除を行う部分
moveto 0,-1;
while(1){
  searchdown "^[^0-9]+$",regular;
  if( !result )break;
  if( colorcode|0x1FE0^0x1FE0 == 3 ){
    delete;
    up;
  }
}
//検索を初期状態に戻す
if( !#reg_search ){
  openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
  writeregnum "SelectFound",#reg_search;
  envchanged;
  closereg;
}
setsearch $search, #search;

[ ]
RE:03669 こんなマクロ可能ですか?No.03671
cuma さん 01/08/15 06:57
 
ひろさん さっそくのマクロ回答ありがとうございます。
見た感じ理解出来ておりませんので、また教えていただくことが
出そうです。今後とも宜しくお願い致します。

[ ]
RE:03669 条件変更したいのですNo.03765
cuma さん 01/09/01 13:45
 
ひろさん、皆様 いつも回答ありがとうございます。
最近、仕事用のメール環境として色々と実験しながら皆様にご教授頂いて
おりました。そんな中で折角頂いたマクロ例なのですが、実は私の要望したマクロ仕
様に大きなミスがある事が判明しました。

問題とは「引用メール」には「数字が無い行で削除対象としない行」がある
と判明しました。
そこでマクロの仕様を変えたいのです。

1、返信ボタンでメール引用(ここまで普通)
2、引用した部分を、目で見てマウスで範囲指定(反転表示
  )する。
3、この反転表示部分を対象として、行内に数字が含まれない行を
  削除する。
  このとき、数字は人によって、半角だったり全角だったりするので
  「3」「3」どちらでも数字として扱う。
4、マウスで選択した場所以外は、数字が無くても行削除などしない。

このようなイメージが実用上長く使えそうだと判明しました。

二度手間大変申し訳ございません。

[ ]
RE:03765 条件変更したいのですNo.03776
ひろ さん 01/09/01 23:09
 
 cuma さん今日は、ひろです。
> 1、返信ボタンでメール引用(ここまで普通)
> 2、引用した部分を、目で見てマウスで範囲指定(反転表示
>   )する。
> 3、この反転表示部分を対象として、行内に数字が含まれない行を
>   削除する。
>   このとき、数字は人によって、半角だったり全角だったりするので
>   「3」「3」どちらでも数字として扱う。
> 4、マウスで選択した場所以外は、数字が無くても行削除などしない。
(1)前回の削除対象は、「引用行の内全角数字を含まない行」だったが、
「引用行の内全角・半角は関係なく、数字を含まない行」としたい。
(2) (1) 以外の削除対象が存在するため、削除対象を含む行は cuma さんが
選択した範囲に留める。

 (1) は解ったのですが、(2) についてがハッキリ解りません。

[ ]
RE:03776 条件変更したいのですNo.03778
cuma さん 01/09/01 23:20
 
ひろさん
本当に毎度アドバイス等ありがとうございます。

> (1) は解ったのですが、(2) についてがハッキリ解りません。

マウスで、「範囲選択した場所だけ」にマクロを適応したいのです。

手順1:返信ボタンを押して、元メール全体を引用してメール編集画面に
    なります。


手順2:返信メールの中で、このマクロを適用したい範囲をマウスで
    範囲指定する。
    反転表示されたエリアがマクロ適用したい行となります。
    通常は20行程度が選択される予定です。

    実は私にはHPのフォームからメールが来ますが、このHPが複数
    存在するので、来たメールによって元メール全体にマクロを適用
    したい場合と、そうでない場合があります。
    そこでマウスで範囲だけ指定して、範囲指定(反転表示)した
    行にだけマクロが働くと良いと考えました。

手順3:マクロ実行
手順4:範囲において、数字が無い行が削除されたことを目視チェック。

こんな感じにできる物でしょうか?

[ ]
RE:03778 条件変更したいのですNo.03785
ひろ さん 01/09/02 17:08
 
 cuma さん今日は、ひろです。
 今試してみて解ったのですが、そもそも前回のマクロは引用行の判定がお
かしかったようですm(__)m。

> マウスで、「範囲選択した場所だけ」にマクロを適応したいのです。
 マウス選択した部分は、引用行でなくても削除しても良いのでしょうか?
おそらくダメでしょうから、
1.範囲選択選択されている
2.引用行である
3.数字を含まない
の全ての条件を満たした行だけ削除するマクロにしました。
//検索状態を保持
if(!selecting)endmacro;
#reg_search = searchmode;
$search = searchbuffer;
#search = searchoption;
if( !#reg_search ){
  openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
  writeregnum "SelectFound",1;
  envchanged;
  closereg;
}
//実際に削除を行う部分
#ex = selendx;
#ey = selendy;
moveto seltopx,seltopy;
golinetop2;//念の為論理行頭に移動
#y = y;
moveto #ex,#ey;
golineend2;//念の為論理行末に移動
escape;
while(1){
  searchup "^[^0-90-9]+$",regular;
  if( result == 0 || #y > y  )break;
  if( colorcode|0x1FE0^0x1FE0 == 15 ){
  //                             ^^別途秀まるおさんに確認を取っています。
    delete;
    up;
  }
}
//検索を初期状態に戻す
if( !#reg_search ){
  openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
  writeregnum "SelectFound",#reg_search;
  envchanged;
  closereg;
}
setsearch $search, #search;
escape;

[ ]
RE:03785 条件変更したいのですNo.03786
cuma さん 01/09/02 17:32
 
ひろさん ありがとうございます。
結果をまたご報告いたします!

[ ]
RE:03785 成功?です。No.03789
cuma さん 01/09/02 18:05
 
ひろさん感謝です!
まずは成功したので感謝と御礼です!

それからちょとだけ不思議な動きがあります。

選択範囲の「数字無し行の削除」が一回のマクロ実行では完了しない
のです。

30行程度を選択して、マクロ実行すると途中の多くの行に作用して
数字無し行が減るのですが、まだ途中には数字無し行が残ります。

しかしまた範囲指定してマクロを実行するとさらに数字無し行が減り
3回程度マクロをかけると完全に作業完了します。

とりあえず手で削除よりかなり効率よいので現状でも助かりますが、もし
歯抜けにならず一回で完了できたら最高だと思います。

[ ]
RE:03789 成功?です。No.03792
ひろ さん 01/09/02 22:50
 
 cuma さん今日は、ひろです。
> 選択範囲の「数字無し行の削除」が一回のマクロ実行では完了しない
> のです。
 失礼、以下のマクロで良いはずです。
//検索状態を保持
if(!selecting)endmacro;
#reg_search = searchmode;
$search = searchbuffer;
#search = searchoption;
if( !#reg_search ){
  openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
  writeregnum "SelectFound",1;
  envchanged;
  closereg;
}
//実際に削除を行う部分
#ex = selendx;
#ey = selendy;
moveto seltopx,seltopy;
golinetop2;//念の為論理行頭に移動
#y = y;
moveto #ex,#ey;
golineend2;//念の為論理行末に移動
escape;
while(1){
  searchup "^[^0-90-9]+$",regular;
  if( result == 0 || #y > y  )break;
  if( colorcode|0x1FE0^0x1FE0 == 15 )delete;
  //                             ^^別途秀まるおさんに確認を取っています。
}
//検索を初期状態に戻す
if( !#reg_search ){
  openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
  writeregnum "SelectFound",#reg_search;
  envchanged;
  closereg;
}
setsearch $search, #search;
escape;

[ ]
RE:03792 今度こそ大成功!No.03793
cuma さん 01/09/03 08:01
 
ひろさん感謝です。
早速バージョンアップありがとうございます。
両方の違いが良く分かってないのですが、upと言う命令が無くなったの
でしょうか?
今、全体が全く理解出来てません。将来的に勉強で全体を質問したくなる
時が来ると思います。またご教授お願い致します。

とっても助かります。
以前は、手作業でしたから「数字あり」の行もを見違えて削除とか
したんです。

[ ]
RE:03793 今度こそ大成功!No.03808
ひろ さん 01/09/03 18:13
 
 cuma さん今日は、ひろです。
> 両方の違いが良く分かってないのですが、upと言う命令が無くなったの
> でしょうか?
 その通りです。
 以前の (範囲選択とは関係ない) マクロは seachdown (下検索) を使って
いましたが、今回は searchup (上検索) に変更したことすっかり忘れてい
ました。

[ ]