秀丸メールマクロヘルプ5
コマンド一覧
SetEmailOnly関数は、パラメータで渡された「名前+Email」の形式の文字列から、Email部分のみを取り出して返します。
例えば、 斉藤秀夫 <hideo@hideo.com> という形式から、「hideo@hideo.com」を取り出します。
変換元の文字列です。
取り出されたEmail部分の文字列です。Email部分が見つからない場合は変換元の文字列をそのまま返します。
SetNameOnly関数は、パラメータで渡された「名前+Email」の形式の文字列から、名前部分のみを取り出して返します。
例えば、 斉藤秀夫 <hideo@hideo.com> という形式から、「斉藤秀夫」を取り出します。
変換元の文字列です。
取り出された名前部分の文字列です。名前部分が見つからない場合はメールアドレスをそのまま返します。
UnDoubleQuote関数は、パラメータで渡された文字列がもしダブルクォーテーション記号で囲まれていた場合に、そのダブルクォーテーション記号(のセット)を除去します。たとえば「"ABC"」を渡すと「ABC」を返します。
一般に、SetNameOnly関数で返ってきた名前からダブルクォーテーション記号を除去するのに使います。
変換元の文字列です。
ダブルクォーテーション記号の除去された文字列を返します。ダブルクォーテーション記号で囲まれてなかった場合は元の文字列をそのまま返します。
ToUpper関数は、パラメータで渡された文字列を大文字に変換します。ToLowerは小文字に変換します。
変換元の文字列です。
変換された文字列です。
CountEmailList関数は、コンマで区切られたメールアドレス文字列の中から、メールアドレスの個数を返します。
文字列中に不正なアドレスが入っている場合や、「,,,」のように何もないメールアドレスが指定されている場合でも、それらも含めてカウントします。
メールアドレスを含む文字列です。
メールアドレスの個数です。
GetEmailList関数は、コンマで区切られたメールアドレス文字列の中から、パラメータで指定された部分のメールアドレス部分を1つ取り出します。
メールアドレスを含む文字列です。
メールアドレスを取り出したい部分の番号です。先頭が0で始まります。
取り出したメールアドレス部分です。ここは、abc <abc@abc> のように、名前 + メールアドレスとなっていることもあります。
この部分はコンマで区切られた内容をそのまま返すので、必ずしもメールアドレスとして正しい物を返すとは限りません。
CallByEmailList関数は、コンマで区切られたメールアドレス文字列の中から、1つ1つのメールアドレスを取り出して、その1つ1つについて指定された関数を呼び出し、それの結果を再びコンマ区切りの形にして返します。
この関数を使うと、CountEmailList/GetEmailList関数でループさせていた処理が一発で実行できます。
呼び出したい関数名です。
メールアドレスを含む文字列です。
パラメータ1で指定する関数に追加で渡したいパラメータがある場合は、それをパラメータ3以降で指定してください。(最高8個まで指定できます)
パラメータ1で指定された関数を呼び出した結果(複数の結果)をコンマ区切りにして返します。
CurrentDate関数は、現在の日付/時刻をパラメータで指定された形式で返します。
現在の日付/時刻を返す形式を指定します。文字列中で、以下の文字列部分は日付/時刻の該当部分に置き換えられ、それ以外の部分はそのまま返り値に返ります。
M〜s、kについては、例えば「MM」と指定すると、例えば1月の場合に「01」を返すようになります。
M〜s、kの直前に空白がある場合は、値が2桁になった時にその空白部分に数字を入れます。例えば、「YY/ M/ D」と指定すると、2000年1月1日の場合に「00/ 1/ 1」と返り、12月31日の場合には「00/12/31」と返ります。
W、i、j については、例えば「W」と1文字書くと、その部分が「月」のような文字に置き換わるので、例えば「WW」のように書く必要はありません。
Y〜sの大文字/小文字を間違えるとうまく機能しないので注意してください。
日付/時刻の文字列です。
FormatDate関数は、メール中の「Date:」ヘッダに入っている日付文字列を、CurrentDate関数と同じようなフォーマットを使った文字列形式に変換します。
変換したい日付文字列です。一般には返信メールや転送メールでの元メールの日付を指定することがほとんどだと思います。例えばテンプレートの場合なら、$(RootHeader,Date)を指定します。
日付/時刻の形式を指定する文字列を指定します。CurrentDate関数での形式と同じなので、詳しくはそちらを参照ください。
■オリジナル時刻で計算させるオプション
日付/時刻形式文字列の先頭に、"o"を挿入すると、FormatDate関数はタイムゾーン関係の処理を一切省略します。例えば外国から受け取ったメールを、その外国の時刻そのままでフォーマット処理させたい場合には、"o"を指定してください。
変換された日付/時刻文字列です。
ShiftDate関数は、Date:ヘッダ中にあるような日付文字列から相対的な日付の計算をし、結果を、同じくDate:ヘッダにあるような形式の文字列で返します。
変換したい日付文字列です。一般には返信メールや転送メールでの元メールの日付を指定することがほとんどだと思います。例えばテンプレートの場合なら、$(RootHeader,Date)を指定します。
数値型を指定する場合、シフトさせる日数を指定します。+1を指定すれば明日って意味になり、-1を指定すれば昨日って意味になります。
文字列型を指定する場合、"+1"や"1"や"-2"などの数値そのままの文字列を指定すると、その通りで計算します。ただし、"+1-2"のような計算式は指定できません。
"月"などの曜日を指定すると、パラメータ1の属する週の中でのその曜日の日を計算します。例えば今日が1月3日の火曜日だとすると、"水"が指定されれば明日の1月4日という計算結果になります。
変換された日付/時刻文字列です。
DecodeHeader関数は、受信ログ/送信ログなどのヘッダに入っているエンコードされた形式の文字列をデコードして返します。この関数は、何らかの理由でエンコードされたままの文字列を扱わなければないない人が、それをデコードするマクロなどを作成する時のために用意されています。
例えばメール本文中にエンコードされたままのヘッダが入ってくる場合などに、それを変換する目的で使います。
変換したいエンコードされた文字列です。
変換された結果文字列です。変換されなかった場合はパラメータ1で渡された文字列をそのまま返します。
備考
改行しているヘッダをデコードする場合には、改行を取り除いた形でDecodeHeader関数に渡す必要があります。
Quote関数は、パラメータで渡された文字列を引用記号付きに変換して返します。Quoteの処理は秀丸メール内部の引用の処理と同じなので、「全般的な設定・メール表示・フォント等...」の引用記号や引用行の折り返し桁数に従って処理されます。
Quote2関数は、第2パラメータで指定された文字列を引用記号として引用の処理をします。例えば「|」という記号を使って引用したい場合などに使います。
引用元の文字列です(複数行可能)。
引用記号の文字列です。"|"や">"などが指定できます。
引用された文字列です。
備考
Quote, Quote2関数の内部処理に長さの制限はありませんが、マクロの文字列変数は8キロバイト程度までしか扱うことができないので注意してください。
AddSama関数は、パラメータとして「名前+Email」の文字列を受け取って、その名前部分に「様」を付けて返します。例えば、"斉藤秀夫 <aaa@bbb.ccc>"のような文字列をパラメータで受け取ると、"斉藤秀夫様 <aaa@bbb.ccc>"のような文字列を返します。
この関数は、「名前+Email」がコンマ区切りで複数指定されている場合でも正しく処理します。
名前が「hideo saitou」のように英語だけになっている場合は「様」は付けません。
名前が指定されてない場合も、特に「様」を付けずにパラメータのままの文字列を返します。
この関数は、テンプレートで
$(SetHeader,To,$(AddSama,$(CurrentHeader,To)))$-
のような指定をして使う用に作った物ですが、マクロからも呼び出して使えます。
「様」を付けて欲しい、名前+Email形式の(To:ヘッダなどで指定する形式の)文字列です。
「様」付きになった文字列を返します。
変換関係/日付など
- 変換関係/日付など
- SetEmailOnly関数(TKInfo.dll)
- SetNameOnly関数(TKInfo.dll)
- UnDoubleQuote関数(TKInfo.dll)
- ToUpper/ToLower関数(TKInfo.dll)
- CountEmailList関数(TKInfo.dll)
- GetEmailList関数(TKInfo.dll)
- CallByEmailList関数(TKInfo.dll)
- CurrentDate関数(TKInfo.dll)
- FormatDate関数(TKInfo.dll)
- ShiftDate関数(TKInfo.dll)
- DecodeHeader関数(TKInfo.dll)
- Quote, Quote2関数(TKInfo.dll)
- AddSama関数(TKInfo.dll)
SetEmailOnly関数(TKInfo.dll)
SetEmailOnly関数は、パラメータで渡された「名前+Email」の形式の文字列から、Email部分のみを取り出して返します。
例えば、 斉藤秀夫 <hideo@hideo.com> という形式から、「hideo@hideo.com」を取り出します。
パラメータ1
変換元の文字列です。
返り値(文字列型)
取り出されたEmail部分の文字列です。Email部分が見つからない場合は変換元の文字列をそのまま返します。
例
$from = dllfuncstr( "CurrentHeader", "From" ); $fromemail = dllfuncstr( "SetEmailOnly", $from );
SetNameOnly関数(TKInfo.dll)
SetNameOnly関数は、パラメータで渡された「名前+Email」の形式の文字列から、名前部分のみを取り出して返します。
例えば、 斉藤秀夫 <hideo@hideo.com> という形式から、「斉藤秀夫」を取り出します。
パラメータ1
変換元の文字列です。
返り値(文字列型)
取り出された名前部分の文字列です。名前部分が見つからない場合はメールアドレスをそのまま返します。
例
$from = dllfuncstr( "CurrentHeader", "From" ); $fromname = dllfuncstr( "SetNameOnly", $from );
UnDoubleQuote関数(TKInfo.dll)
UnDoubleQuote関数は、パラメータで渡された文字列がもしダブルクォーテーション記号で囲まれていた場合に、そのダブルクォーテーション記号(のセット)を除去します。たとえば「"ABC"」を渡すと「ABC」を返します。
一般に、SetNameOnly関数で返ってきた名前からダブルクォーテーション記号を除去するのに使います。
パラメータ1
変換元の文字列です。
返り値(文字列型)
ダブルクォーテーション記号の除去された文字列を返します。ダブルクォーテーション記号で囲まれてなかった場合は元の文字列をそのまま返します。
例
$fromname = dllfuncstr("UnDoubleQuote", dllfuncstr( "SetNameOnly", $from ) );
ToUpper/ToLower関数(TKInfo.dll)
ToUpper関数は、パラメータで渡された文字列を大文字に変換します。ToLowerは小文字に変換します。
パラメータ1
変換元の文字列です。
返り値(文字列型)
変換された文字列です。
例
$upper = dllfuncstr( "ToUpper", $info ); $lower = dllfuncstr("ToLower", $info );
CountEmailList関数(TKInfo.dll)
CountEmailList関数は、コンマで区切られたメールアドレス文字列の中から、メールアドレスの個数を返します。
文字列中に不正なアドレスが入っている場合や、「,,,」のように何もないメールアドレスが指定されている場合でも、それらも含めてカウントします。
パラメータ1
メールアドレスを含む文字列です。
返り値(数値型)
メールアドレスの個数です。
例
#n = dllfunc("CountEmailList", "abc <abc@abc>, xyz <xyz@xyz>");
GetEmailList関数(TKInfo.dll)
GetEmailList関数は、コンマで区切られたメールアドレス文字列の中から、パラメータで指定された部分のメールアドレス部分を1つ取り出します。
パラメータ1
メールアドレスを含む文字列です。
パラメータ2
メールアドレスを取り出したい部分の番号です。先頭が0で始まります。
返り値(文字列型)
取り出したメールアドレス部分です。ここは、abc <abc@abc> のように、名前 + メールアドレスとなっていることもあります。
この部分はコンマで区切られた内容をそのまま返すので、必ずしもメールアドレスとして正しい物を返すとは限りません。
例
$s = dllfuncstr("GetEmailList", "abc <abc@abc>, xyz <xyz@xyz>", 1);
CallByEmailList関数(TKInfo.dll)
CallByEmailList関数は、コンマで区切られたメールアドレス文字列の中から、1つ1つのメールアドレスを取り出して、その1つ1つについて指定された関数を呼び出し、それの結果を再びコンマ区切りの形にして返します。
この関数を使うと、CountEmailList/GetEmailList関数でループさせていた処理が一発で実行できます。
パラメータ1
呼び出したい関数名です。
パラメータ2
メールアドレスを含む文字列です。
パラメータ3以降
パラメータ1で指定する関数に追加で渡したいパラメータがある場合は、それをパラメータ3以降で指定してください。(最高8個まで指定できます)
返り値(文字列型)
パラメータ1で指定された関数を呼び出した結果(複数の結果)をコンマ区切りにして返します。
例
$s = dllfuncstr("CallByEmailList", "FindBook2", "abc <abc@abc>, xyz <xyz@xyz>");
CurrentDate関数(TKInfo.dll)
CurrentDate関数は、現在の日付/時刻をパラメータで指定された形式で返します。
パラメータ1
現在の日付/時刻を返す形式を指定します。文字列中で、以下の文字列部分は日付/時刻の該当部分に置き換えられ、それ以外の部分はそのまま返り値に返ります。
YYYY | 年(西暦)を4桁で返す |
YY | 年(西暦)を2桁で返す(例:2001年なら01) |
M | 月 |
D | 日 |
W | 何曜日か(月、火、…) |
EM | 月を英語3文字で(Jan、Feb、Mar、…) |
EW | 何曜日かを英語3文字で(Sun、Mon、Tue、…) |
h | 時 |
m | 分 |
s | 秒 |
i | 午前か午後かを、「AM」または「PM」のような形式で |
j | 午前か午後かを、「午前」または「午後」のような形式で |
k | 時を12時間単位で(例えば午後2時なら14ではなく、2を返す) |
M〜s、kについては、例えば「MM」と指定すると、例えば1月の場合に「01」を返すようになります。
M〜s、kの直前に空白がある場合は、値が2桁になった時にその空白部分に数字を入れます。例えば、「YY/ M/ D」と指定すると、2000年1月1日の場合に「00/ 1/ 1」と返り、12月31日の場合には「00/12/31」と返ります。
W、i、j については、例えば「W」と1文字書くと、その部分が「月」のような文字に置き換わるので、例えば「WW」のように書く必要はありません。
例:
YY/MM/DD(W) hh:mm:ss YYYY/M D hh:mm
Y〜sの大文字/小文字を間違えるとうまく機能しないので注意してください。
パラメータ1を省略した場合:
パラメータ1を省略したり、""を指定した場合は、現在の日付/時刻をDate:ヘッダにあるような形式で返します。返り値(文字列型)
日付/時刻の文字列です。
例
$s = dllfuncstr("CurrentDate", "YYYY/MM/DD");
FormatDate関数(TKInfo.dll)
FormatDate関数は、メール中の「Date:」ヘッダに入っている日付文字列を、CurrentDate関数と同じようなフォーマットを使った文字列形式に変換します。
パラメータ1(文字列型)
変換したい日付文字列です。一般には返信メールや転送メールでの元メールの日付を指定することがほとんどだと思います。例えばテンプレートの場合なら、$(RootHeader,Date)を指定します。
パラメータ2(文字列型)
日付/時刻の形式を指定する文字列を指定します。CurrentDate関数での形式と同じなので、詳しくはそちらを参照ください。
■オリジナル時刻で計算させるオプション
日付/時刻形式文字列の先頭に、"o"を挿入すると、FormatDate関数はタイムゾーン関係の処理を一切省略します。例えば外国から受け取ったメールを、その外国の時刻そのままでフォーマット処理させたい場合には、"o"を指定してください。
返り値(文字列型)
変換された日付/時刻文字列です。
例
$s = dllfuncstr("FormatDate", dllfuncstr("RootHeader", "Date"), "YYYY/MM/DD"); $s = dllfuncstr("FormatDate", dllfuncstr("RootHeader", "Date"), "oYYYY/MM/DD hh:mm");
ShiftDate関数(TKInfo.dll)
ShiftDate関数は、Date:ヘッダ中にあるような日付文字列から相対的な日付の計算をし、結果を、同じくDate:ヘッダにあるような形式の文字列で返します。
パラメータ1(文字列型)
変換したい日付文字列です。一般には返信メールや転送メールでの元メールの日付を指定することがほとんどだと思います。例えばテンプレートの場合なら、$(RootHeader,Date)を指定します。
パラメータ2(文字列型または数値型)
数値型を指定する場合、シフトさせる日数を指定します。+1を指定すれば明日って意味になり、-1を指定すれば昨日って意味になります。
文字列型を指定する場合、"+1"や"1"や"-2"などの数値そのままの文字列を指定すると、その通りで計算します。ただし、"+1-2"のような計算式は指定できません。
"月"などの曜日を指定すると、パラメータ1の属する週の中でのその曜日の日を計算します。例えば今日が1月3日の火曜日だとすると、"水"が指定されれば明日の1月4日という計算結果になります。
返り値(文字列型)
変換された日付/時刻文字列です。
例
$date = dllfuncstr("CurrentDate"); $date = dllfuncstr("ShiftDate", $date, "-7"); // 一週間前。 $date = dllfuncstr("ShiftDate", $date, "月"); // 先週の月曜日。
DecodeHeader関数(TKInfo.dll)
DecodeHeader関数は、受信ログ/送信ログなどのヘッダに入っているエンコードされた形式の文字列をデコードして返します。この関数は、何らかの理由でエンコードされたままの文字列を扱わなければないない人が、それをデコードするマクロなどを作成する時のために用意されています。
例えばメール本文中にエンコードされたままのヘッダが入ってくる場合などに、それを変換する目的で使います。
パラメータ1(文字列型)
変換したいエンコードされた文字列です。
返り値(文字列型)
変換された結果文字列です。変換されなかった場合はパラメータ1で渡された文字列をそのまま返します。
備考
改行しているヘッダをデコードする場合には、改行を取り除いた形でDecodeHeader関数に渡す必要があります。
例 (範囲選択した部分を変換するマクロ)
loaddll "tkinfo.dll"; gofiletop; while(1) { searchdown "=?"; if( !result) endmacro; $s = ""; #convx = x; #convy = y; while(1) { #x = x; #y = y; golineend2; $s = $s + gettext( #x, #y, x, y ); down; if( !result ) break; golinetop; if( code != ' ' && code != '\t' ) { up; golineend2; break; } } $d = dllfuncstr( "DecodeHeader", $s ); if( $d != $s ) { beginsel; moveto #convx, #convy; delete; insert $d; golineend2; } }
Quote, Quote2関数(TKInfo.dll)
Quote関数は、パラメータで渡された文字列を引用記号付きに変換して返します。Quoteの処理は秀丸メール内部の引用の処理と同じなので、「全般的な設定・メール表示・フォント等...」の引用記号や引用行の折り返し桁数に従って処理されます。
Quote2関数は、第2パラメータで指定された文字列を引用記号として引用の処理をします。例えば「|」という記号を使って引用したい場合などに使います。
パラメータ1(文字列型)
引用元の文字列です(複数行可能)。
パラメータ2(文字列型、Quote2関数のみ)
引用記号の文字列です。"|"や">"などが指定できます。
返り値(文字列型)
引用された文字列です。
備考
Quote, Quote2関数の内部処理に長さの制限はありませんが、マクロの文字列変数は8キロバイト程度までしか扱うことができないので注意してください。
例
$s = dllfuncstr("Quote", $s); $s = dllfuncstr("Quote2, $s, ">");
AddSama関数(TKInfo.dll)
AddSama関数は、パラメータとして「名前+Email」の文字列を受け取って、その名前部分に「様」を付けて返します。例えば、"斉藤秀夫 <aaa@bbb.ccc>"のような文字列をパラメータで受け取ると、"斉藤秀夫様 <aaa@bbb.ccc>"のような文字列を返します。
この関数は、「名前+Email」がコンマ区切りで複数指定されている場合でも正しく処理します。
名前が「hideo saitou」のように英語だけになっている場合は「様」は付けません。
名前が指定されてない場合も、特に「様」を付けずにパラメータのままの文字列を返します。
この関数は、テンプレートで
$(SetHeader,To,$(AddSama,$(CurrentHeader,To)))$-
のような指定をして使う用に作った物ですが、マクロからも呼び出して使えます。
パラメータ1(文字列型)
「様」を付けて欲しい、名前+Email形式の(To:ヘッダなどで指定する形式の)文字列です。
返り値(文字列型)
「様」付きになった文字列を返します。
例
$s = dllfuncstr("AddSama", "斉藤秀夫 <aaa@bbb.ccc>");
2006年05月08日(月) 02:16:55 Modified by aqualung