読者です 読者をやめる 読者になる 読者になる

LotusScriptのメソッドが実行できない……

実行時エラー438に悩まされる

オブジェクトは、このプロパティまたはメソッドをサポートしていません

80箇所ぐらいの宛先に、それぞれ添付ファイルの異なるメールを送信する、というしちめんどくさい仕事をすることになった。まあ、Excelで表さえ作ったらメールを送ること自体は楽勝(参考)なんですが、前任の方が非常に丁寧なお仕事をなさる方で、何と、

全てのメールについてメール文書をプリントアウトしてファイル

してあったのです。

マジか……。

で、調べてみた

LotusScript使ったら自動印刷ぐらいできるんじゃね?

と思ったときにはココですよ。

まずは、コチラ

Call notesUIDocument.Print( [ numCopies% [, fromPage% [, toPage% [, draft [, printerName]]]]] )

んで、

パラメータ
numCopies%
Integer 型。省略可能。印刷する部数です。このパラメータを省略すると、[印刷] ダイアログボックスが表示されます。0 を指定すると 1 部印刷されます。

だなんて書いてあるもんだから、当然

notesUIDocument.Print(0)

と書けば印刷してくれるはず……。

あ、ちなみに変数notesUIDocumentというのは、

Dim notesSession As Object         'NotesSession'
Dim notesDatabase As Object        'NotesDatabase'
Dim notesDocument As Object        'NotesDocument'
Dim notesUIWorkSpace As Object     'NotesUIWorkspace'
Dim notesUIDocument As Object      'NotesUIDocument'
Set notesSession = CreateObject("Notes.NotesSession")
Set notesUIWorkSpace = CreateObject("Notes.NotesUIWorkspace")
Set notesDatabase = notesSession.GetDatabase("", "")
notesDatabase.OpenMail
Set notesDocument = notesDatabase.CreateDocument()
notesDocument.Save False, False
Set notesUIDocument = notesUIWorkSpace.EditDocument(True, notesDocument, False)

こういう順序で中身をセットしています(本文や添付ファイルなんかをセットした部分は省略)。

ところが、実際には

notesUIDocument.Print (0)

のところで実行時エラー438が出る。

お願い

たぶん、LotusNotesという外部アプリのメソッド名がVBAのメソッド名とかぶっているのがイカンのだと思うのだけれど、打開策をご存じの方がいらっしゃったら教えてください

あ、仕事そのものは、結局手作業でやりました。

@akashi_keirin on Twitter