NotesメールをExcel VBAで自動作成したときの宛先文字数制限(失敗談)
今から4年ほど前のこと。勤め先の、とある定例業務は ↓ こんな感じだった。
- Excel の書類に仕様値を入力。
- 書類を管理する番号で、1.を名前を付けて保存。
- 別部門の担当者へ、2.を添付してメール送信。
1~3は、毎回ほぼ決まり切った内容であるため、Excel VBAで自動化することにした。
VBAでNotesメールを作成・送信する方法は、調べた結果こちらに行きついた。
belie.c.ooco.jp
そこで早速こちらを参照というか、業務用ファイルに丸々移植して、目的を達成することが出来た(大変助かりました、ありがとうございます)。
そして時は流れ、つい先日のこと。上記ツールを使用中の部門から、こんな相談を受けた。
「CCに宛てたアドレスが、途中で尻切れになってしまうんですが、解決できませんか?」
調べてみると、確かに途中で途切れてしまう。どうしてだろう。
Dim CC_Address As String ' 中略 wkNDoc.CopyTo = CC_Address
CC_Addressには、「アドレス1, アドレス2・・・」のように、実際にCC欄にセットされるアドレスが文字列として入っている。
散々調べてみたが分からず、改めて参照したコードを拝見してみると、次のように書かれていた。
wkNDoc.CopyTo = Array("xxx@xxx")
最初に参照した時は、気にも留めていなかったのだが、なぜか文字列ではなく配列で書かれている。これはひょっとして?と思い、以下のようにコードを修正した。
Dim CC_Arr As Variant ' 中略 ' CC_Arr=Array("アドレス1", "アドレス2", ・・・) wkNDoc.CopyTo = CC_Arr
すると、配列内のアドレスの総文字数が何文字であろうと、きちんとセットされるようになった。正確に引用せず、勝手な解釈で内容を変えたことが、今回の真因だったようだ。
ということで、引用は正しく行うべしと、猛省した次第です。
参考まで。