| 2018/06/29(Fri) 20:20:01 編集(投稿者) 2018/06/29(Fri) 20:19:16 編集(投稿者)
> 桐V9S、WIN10、so-net.ne.jp です。 > 送信.tblに[宛先],[CC],[添付ファイル],[件名],[本文]の > 項目があり、それぞれに必要な項目値を記述した20行前後の表です。 > この表を使い、繰り返しコマンドで1行目から順次送信するのですが、 > [添付ファイル]がブランクの行でエラーが発生します。 > エラーメッセージは「ファイル名が異常です」。 > メール送信コマンド行には・・・・・・,添付ファイル=[添付ファイル],・・・・ > としてありますが、添付ファイル= のパラメータを省略すればファイル添付が > 無い場合でも正常送信します。 > 止むを得ず現在は添付ファイルの有無を事前に選択し、前記パラメータを記述した > 行と、省略したコマンド行を使い分けて実行していますがこの挙動はこれで > 正常なのでしょうか。或いは他に対応策はあるのでしょうか?
ヘルプには、次のように書いてある
メール送信 <宛先>,\ 差出人 = <文字列>,\ CC = <文字列>,\ : 添付ファイル = <ファイル名>|添付ファイル = { <ファイル名1>,<ファイル名2>,… },\ :
この場合、[添付ファイル = ]というパラメータを記述したならば、
<ファイル名> または { <ファイル名1>,<ファイル名2>,… } のように、ファイル名かファイル名リストを指定しなければならないでしょう。
> 行と、省略したコマンド行を使い分けて実行していますがこの挙動はこれで > 正常なのでしょうか。或いは他に対応策はあるのでしょうか?
↑ゆえに動作は正常ですね。
[メール送信]コマンドを[コマンド]コマンドで実行するようにすればいいのですが…。
[コマンド]コマンド以外にも if ( #trim( [添付ファイル], 4 ) <> #u ) とか必要。
ということで、難易度が一気にアップしてしまいますが…。
◇ ◇ ◇ ◇
送信.tbl{ [宛先],[CC],[添付ファイル],[件名],[本文] }
以下のようにバッチリ書いてしまうと、[添付ファイル]の項目値が空(カラ)だとエラーになるということなんでしょうね。
メール送信 [宛先],\ CC = [CC],\ 件名 = [件名],\ 本文 = [本文],\ 添付ファイル = [添付ファイル],\ :
[コマンド]コマンドという文字列を一括処理コマンドとして実行するコマンドがあります。
ただし、リテラルな文字列では扱い難いので、文字列型の変数を使用するものとします。
例では、 &command という文字列型変数を使います。
<例>
変数宣言 文字列{ &command } &command = "メール送信 [宛先], CC = [CC], 件名 = [件名], 本文 = [本文]" + #条件選択( #trim( [添付ファイル] <> #u ), ", 添付ファイル = [添付ファイル]" ) コマンド &command
こんな風に、[コマンド]コマンドを使うことで、[添付ファイル]の項目値が空(カラ)の場合に対処できると思いますよ。
なお、当方はメール関係のコマンドを実際には使っていないので、すべて机上の論になります。
|