|
早速のご対応ありがとうございます
>>1)Al-Mailのアドレスデータにおける End group 指定が反映されない。
>1)についてですが、現在のマクロの処理では簡単に修正できません。
>時間をみつけて、できるかどうか検討してみます。
よろしくお願いします。
事実上この部分の処理が自力では出来ずに困っているところだったんです。
手作業で
End group後にエントリしているアドレスを,
一旦,グループ名定義の直後に異動しておいて,
マクロに流し込めばいいのでしょうが,
間違いをおかさないで手作業を行う自身がありません。
気付かないうちに,違うエントリを抱えたグループ宛にメールを出して
しまわないとも限りません。ですので,ちょっと慎重に。
ロジックは上述の通り,
「
あるグループ内でのエントリの入れ替え操作について;
グループにもしサブグループがあった場合,
サブグループのEnd group後にエントリしている
当該グループ階層のアドレス(行)を,
当該グループ名定義の直後に異動する
」
でいいのかな,ともおもいましたが,よく考えると,
これはちょっと良くないですね。
Al-Mail側にデータを戻すとき上手くいきません。
そこで,思いついたのが,新たなサブグループを作成するという手法。
「
当該グループ名をhoge1とした場合,
新たなサブグループとして,hoge1_sub1,hoge1_sub2・・・
というように,マクロ規定値(_sub[番号]のような)の文字列を
グループ名に追加したサブグループ名を生成して,
そこに,入れる
」
という方法です。
これなら,順番を入れ替えずに済みそうです。
かつこれなら,セパレタにも対応する余地があります。
セパレタ以後に現れたエントリを,
hoge1_sep1などの新たなサブグループに入れちゃうという方法です。
この規定値部分に変更を加えない限り,
#かつ,規定値部分と重なる文字列を規定値部分以外で使って居なければ
秀丸からAl-Mailへのデータの変換も可能となると思います。
如何でしょう。
グループの階層レベル値(?)については,
マクロ内で処理されているのですよね。
つまり,End Groupを拾って値に変更は加えている。
となれば,サブグループが終わって階層が一段上(下?)に異動した際,
即ち,End Groupを拾った直後の動作として,
グループの階層レベル値を-1した後,
次の行が,アドレス情報ならば,新たなサブグループを作成する,
次にグループ名もしくはEnd Groupが出現するまで
そのサブグループは閉じない(それまでのエントリを
そのサブグループに納める)
次の行が,グループ名ならば,従来通りの動作をする,
次の行が,End Groupならば,従来通りの動作をする,
という分岐操作を設けるだけでいけそうです。
例:
name0: xxx@add.jp
Group hoge1
name1: xxx@add.jp
name2: xxx@add.jp
name3: xxx@add.jp
End group
name4: xxx@add.jp
Group hoge2
name5: xxx@add.jp
Group hogehoge21
name6: xxx@add.jp
End group
name7: xxx@add.jp
End group
name8: xxx@add.jp
↓
(従来の動作〜はこうですよね?)
g1 Address
name0,xxx@add.jp
g2 hoge1
name1,xxx@add.jp
name2,xxx@add.jp
name3,xxx@add.jp
name4,xxx@add.jp
g2 hoge2
name5,xxx@add.jp
g3 hogehoge21
name6,xxx@add.jp
name7,xxx@add.jp
name8,xxx@add.jp
↓
(期待される動作)
g1 Address
name0,xxx@add.jp
g2 hoge1
name1,xxx@add.jp
name2,xxx@add.jp
name3,xxx@add.jp
g2 Address_sub1
name4,xxx@add.jp
g2 hoge2
name5,xxx@add.jp
g3 hogehoge21
name6,xxx@add.jp
g3 hoge2_sub1
name7,xxx@add.jp
g2 Address_sub2
name8,xxx@add.jp
動作の基本理念。
1)当該グループに入っていないアドレスエントリは
当該グループには入れない
2)当該グループに入っているアドレスエントリは
当該グループに入れる
3)新規のグループを作成しても上記1)2)に矛盾しない
すなわち,新規サブグループに編入されても,
当該グループ下に入っていることには違いがないので
補足:3)の原理を使うと,セパレタの処理も可能。
ちょっと面倒そうですが。。
>>2)半角スペースが除去されていない?(実用上支障ないが)
>>3)グループ名に宛先として使えない文字が含まれています=()/
>2),3)については、マクロを修正しました。
ありがとうございました。後で試してみます。
|
|