宛先名挿入マクロで質問No.00484
siniti さん 10/09/17 21:48
 
プックンさん

sinitiです。

あて先名挿入マクロを便利で使わして頂いております。
ところで、最近気がついたのですが、下記のように名前に役職が
ついている人には、「殿」をつけないのが普通だと言うことを
ある人からお聞きしました。

そこで、質問です。
アドレス帳には以下のように登録している時に以下のような
宛先名を挿入することができますか?

<アドレス帳>
名前      備考2
○○ ●●   様
□□ ■■
△△ ▲▲課長
☆☆ ★★部長

[check_dom_email.mac]
keisyou_mode=2

挿入してほしい宛先名
○○ ●●様   ->備考2から挿入
□□ ■■殿   ->Defaultから挿入
△△ ▲▲課長  ->敬称を挿入しない
☆☆ ★★部長  ->敬称を挿入しない

上記のように名前に指定した語句(上記では課長、部長)がある場合
には、敬称をつけない方法はありますか?

なければ、このような機能を追加できますか?
指定する語句は、puku.ini 等で指定する等。

[ ]
RE:00484 宛先名挿入マクロで質問No.00485
プックン さん 10/09/21 01:25
 
sinitiさん、こんばんは。
プックンです。

マクロご利用ありがとうございます。
お役に立てているようで、うれしく思います。

>そこで、質問です。
>アドレス帳には以下のように登録している時に以下のような
>宛先名を挿入することができますか?

マクロでは対応できません。

>上記のように名前に指定した語句(上記では課長、部長)がある場合
>には、敬称をつけない方法はありますか?

ありません。

>なければ、このような機能を追加できますか?
>指定する語句は、puku.ini 等で指定する等。

名前に登録済みの敬称がふくまれているときに、敬称を追加しない処理があるのでそ
の部分を流用すれば対応できると思います。
仕事が忙しくて、ちゃんとしたマクロとしてuploadできるまで対応できませんが下記
のようにすることで期待の動作になると思います。

修正1.
iniファイルを下記のように修正してください。
[hmml_ins_name.mac]
reg_exclusive_keisyou=(部長|課長)$

修正2.
HMML_INS_NAME.MAC Ver 1.17の下記部分(1426-1431行付近)を修正してみてください。

  元マクロ "HMML_INS_NAME.MAC"
  //1426-1431行付近
  //敬称情報の正規表現文字列を取得
  $$reg_keisyou = getinistr($$ini,$$Section,"reg_keisyou");
  // 敬称情報が$$wordで定義した文字列"not_apply"のとき)
  if($list_keisyou[##i] == $$word){
   $$wk = "" ;
  }


  ↓修正マクロ
  //敬称情報の正規表現文字列を取得
  $$reg_keisyou = getinistr($$ini,$$Section,"reg_keisyou");
  //名前に敬称がついているとき、敬称を付加しないoption
  $$reg_exc_keisyou = getinistr($$ini,$$Section,"reg_exclusive_keisyou");
  // 敬称情報が$$wordで定義した文字列"not_apply"のとき)
  if($list_keisyou[##i] == $$word){
   $$wk = "" ;
  }
  //敬称付加すべきでない指示情報を取得した時、
  //2010/09/21 modify
  else if($$reg_exc_keisyou != ""){
   freedll;
   //hmjre.dllの機能を利用
   call HmJre ;
   //名前情報に定義された敬称を含むか含まないかを確認する。
   //第1パラメータ(文字列型):検索したい正規表現文字列を指定します。
   //第2パラメータ(文字列型):検索対象の文字列を指定します。
   //第3パラメータ(数値型):検索を開始する桁位置を指定します。
   // 先頭から検索したい場合は0を指定します。
   //返り値(数値型): ヒットした場合は桁位置(0以上の値)を返します。
   //ヒットしなかった場合は-1を返します。
   //正規表現の解釈その他でエラーが起きた場合は-2を返します。
   ##n = dllfunc( "FindRegular",
    $$reg_exc_keisyou,
    $$s, 0 );
   //敬称文字列が一致。敬称を追加すべきでない文字列が含まれる。
   if (##n >= 0) {
    $$wk = "" ;
   }
   //名前情報に敬称を追加すべきでない文字列が含まれない。
   else{
    $$wk = $list_keisyou[##i] ;
   }
   freedll;
   call HidemaruMail ;
  }

[ ]
RE:00485 宛先名挿入マクロで質問No.00486
siniti さん 10/09/21 19:55
 
プックンさん

sinitiです。

大変お忙しい中、早々のご回答ありがとうございます。

>修正2.
>HMML_INS_NAME.MAC Ver 1.17の下記部分(1426-1431行付近)を修正してみてください。

Ver 1.17のソースでの実際は、1409-1414行目でした。
この該当行を下記のソースをそのまま貼り付けて実行したところ変化がありません。

puku.iniもそのまま貼り付けました。
何か足りないのでしょうか?
よろしくお願いします。


>
>  元マクロ "HMML_INS_NAME.MAC"
>  //1426-1431行付近
>  //敬称情報の正規表現文字列を取得
>  $$reg_keisyou = getinistr($$ini,$$Section,"reg_keisyou");
>  // 敬称情報が$$wordで定義した文字列"not_apply"のとき)
>  if($list_keisyou[##i] == $$word){
>   $$wk = "" ;
>  }
>
>
>  ↓修正マクロ
>  //敬称情報の正規表現文字列を取得
>  $$reg_keisyou = getinistr($$ini,$$Section,"reg_keisyou");
>  //名前に敬称がついているとき、敬称を付加しないoption
>  $$reg_exc_keisyou = getinistr($$ini,$$Section,"reg_exclusive_keisyou");
>  // 敬称情報が$$wordで定義した文字列"not_apply"のとき)
>  if($list_keisyou[##i] == $$word){
>   $$wk = "" ;
>  }
>  //敬称付加すべきでない指示情報を取得した時、
>  //2010/09/21 modify
>  else if($$reg_exc_keisyou != ""){
>   freedll;
>   //hmjre.dllの機能を利用
>   call HmJre ;
>   //名前情報に定義された敬称を含むか含まないかを確認する。
>   //第1パラメータ(文字列型):検索したい正規表現文字列を指定します。
>   //第2パラメータ(文字列型):検索対象の文字列を指定します。
>   //第3パラメータ(数値型):検索を開始する桁位置を指定します。
>   // 先頭から検索したい場合は0を指定します。
>   //返り値(数値型): ヒットした場合は桁位置(0以上の値)を返します。
>   //ヒットしなかった場合は-1を返します。
>   //正規表現の解釈その他でエラーが起きた場合は-2を返します。
>   ##n = dllfunc( "FindRegular",
>    $$reg_exc_keisyou,
>    $$s, 0 );
>   //敬称文字列が一致。敬称を追加すべきでない文字列が含まれる。
>   if (##n >= 0) {
>    $$wk = "" ;
>   }
>   //名前情報に敬称を追加すべきでない文字列が含まれない。
>   else{
>    $$wk = $list_keisyou[##i] ;
>   }
>   freedll;
>   call HidemaruMail ;
>  }

[ ]
RE:00486 宛先名挿入マクロで質問No.00487
プックン さん 10/09/22 02:40
 
sinitiさん、こんばんは。

>puku.iniもそのまま貼り付けました。

参考までに、私が試した設定を貼り付けておきます。
[hmml_ins_name.mac]
keisyou_def=さん
divider=)
Get_info_ini=1
keisyou_mode=2
pos=1
div_name=1
part_mode=4
group_mode=1
cnv_filter=1
#0_kei=殿
#1_kei=様
#2_kei=御中
#3_kei=ちゃん
#4_kei=君
#5_kei=くん
#6_kei=さん
reg_exclusive_keisyou=(部長|課長)$

上記情報を貼り付けるpuku.iniファイルのpathを確認させてください。
下記内容のマクロを適当なファイル名で作成して、マクロを実行してみてください。
メッセージダイアログに表示されているファイルを編集しているか確認してください。

 //puku.iniファイル確認用マクロ
 loaddll "TKInfo.dll";

 //アカウント名を取得
 $$account = dllfuncstr("ExecAtMain", "CurrentAccount") ;
 if ($$account == "") {message "アカウントの取得に失敗しました。\n" ;}
 //INIファイル
 //定義ファイル(INIファイル)
 $$ini = dllfuncstr("HomeDir") +
   $$account +
   "\\puku.ini" ;

 message
  "puku.ini=\n" +
  $$ini + "\n\n" ;

 freedll;
 endmacro;
 //puku.iniファイル確認用マクロ

少し気になるのが、最初の書き込みで
[check_dom_email.mac]
keisyou_mode=2
と記載されていましたが、編集されているマクロファイルは、"hmml_ins_name.mac"
であっていますでしょうか?。
私が作成したマクロ名を変更して利用されているということはありませんか?。ini
ファイル情報を参照するときのセクション定義は、マクロファイル名が記載された部
分を参照するように作成しています。
私が作成したマクロ名のままであれば、
[hmml_ins_name.mac]
で指定してください。

私が試したアドレス帳を参考までに記載しておきます。
G0 アドレス帳
G1 Top
○○ ●●,xxx@add.jp,2010/09/22,,様
□□ ■■,xxx@add.jp,2010/09/22
△△ ▲▲課長,abc@xxx,2006/09/29
☆☆ ★★部長,:@:,2006/09/29


---以下の内容はコミュニテックス会議室システムにより付加されました。
本文中のメールアドレスは伏せ字に変換されました。伏せ字にしたくない場合
はメールアドレスを""で囲んで書き込んでください。

[ ]
RE:00487 宛先名挿入マクロで質問No.00488
siniti さん 10/09/22 20:38
 
プックンさん

sinitiです。

大変お忙しいのに即座の返信ありがとうございました。

>上記情報を貼り付けるpuku.iniファイルのpathを確認させてください。
>下記内容のマクロを適当なファイル名で作成して、マクロを実行してみてください。
>メッセージダイアログに表示されているファイルを編集しているか確認してください。

提示いただいたマクロでPathが誤っていたこと(別の場所にpuku.iniあったこと)が
わかりました。
ありがとうございました。


>少し気になるのが、最初の書き込みで
>[check_dom_email.mac]
>keisyou_mode=2
>と記載されていましたが、編集されているマクロファイルは、"hmml_ins_name.mac"
>であっていますでしょうか?。
>私が作成したマクロ名を変更して利用されているということはありませんか?。ini
>ファイル情報を参照するときのセクション定義は、マクロファイル名が記載された
>部分を参照するように作成しています。
>私が作成したマクロ名のままであれば、
>[hmml_ins_name.mac]
>で指定してください。

私の環境では、ファイル名が大文字英字としていました。
小文字英字としたところ思うどおりになりました。
大変ありがとうございました。
これでまたメールの作成が一つ楽になりました。


[ ]
RE:00488 宛先名挿入マクロで質問No.00489
プックン さん 10/09/23 03:38
 
sinitiさん、こんばんは。

>提示いただいたマクロでPathが誤っていたこと(別の場所にpuku.iniあったこと)
>がわかりました。
>ありがとうございました。

>私の環境では、ファイル名が大文字英字としていました。
>小文字英字としたところ思うどおりになりました。
>大変ありがとうございました。
>これでまたメールの作成が一つ楽になりました。

多分、大文字小文字がことなっていても影響ないとおもいます。
pathが異なっていたのが期待通りにならなかった原因かと推測します。
無事に動いたようでよかったです。

[ ]