プロが教えるわが家の防犯対策術!

IBM Notes9のメールをExcelVBAにて送信するコードについての質問です。

以下のコードを実行すると、「実行時エラー13 型が一致しません。」とのエラーが出ます。

以下、コード
Sub ※※()
Dim wknses As Object
Dim wkndb As Object
Dim wkndoc As Object
Dim wknrtitem As Object
Dim style As Object

Set wknses = CreateObject("notes.notesession")
Set wkndb = wknses.getdatabase(" "," ")
wkndb.openmail

Set wkndoc = wkndb.CreateDocument()
wkndoc.subject = "※※"
wkndoc.sendto = Array(※※)

Set wknrtitem = wkndoc.createrichtextitem("body")
Set style = wknses.CreateRichTextStyle("body")
style.NotesFont = wknrtitem.GetNotesFont("Times",True) ←ここでエラー

With wknrtitem
.AppendStyle style
.AppendText "※※"
End With

wkndoc.Save False,False

End Sub

以上は抜粋ですが、エラー文はinteger型で一致してると思い、原因と修正案が分からない状況です。

よろしくお願いします。

A 回答 (3件)

>OSはWindowsです "Times"はMacなのでダメですね



参考フォントリスト

Windows 11 font list
https://learn.microsoft.com/en-us/typography/fon …

Windows 10 font list
https://learn.microsoft.com/en-us/typography/fon …

https://mimi.moe.in/nmp/fonts/allfonts

リストに在っても

エージェントが実行されている
プラットフォーム上で有効な名前でなければ ダメとあります

他のアプリケーション連携や環境に影響を受ける場合
OSの詳細、アプリケーションの詳細、などなど示さないとたどり着くのが難しくなります

最後に気になった点
リファレンスでは
NotesRichTextItem  に対して CreateRichTextItem
事前バインディング  に対して 実行時バインディング
    • good
    • 0
この回答へのお礼

ご指摘をいただき、ありがとうございます。

質問内容のフォントにTimesを記載したことで誤解が生じてしまったようです。
実際には、Notes上のメールで使用できる「HGSゴシックM」などを指定し、エラーが出ています。

以下のサイトにあるように、フォントの影響ではないように考えております。
http://domino.webserve.ne.jp/webserve/notesqa.ns …

いろいろとありがとうございます。

お礼日時:2023/06/24 09:23

OSはMacでよろしかったでしょうか・・


確かに出来上がりのサンプルや情報が少ないようですね

ご存知の部分を列挙するような事になると思いますが

問題のエラー13ですが 左辺の型に右辺の型が合っていないと言う解釈ですが その中に 右辺にエラーが返っている場合も含まれます

ですので右辺 wknrtitem.GetNotesFont("Times",True) で取得している値 
Integer型 指定フォントに関連付けられている 5 から 254の IDまたは 0
が取得できているかを確認してみてください

取得できていない場合
wknrtitem as NotesRichTextItem なのか
"Times"が使用可のなのか などを調べる必要が出て来ますね

情報が少ないのでエディター機能をフル活用する
(オブジェクトが正しいか、メソッド、プロパティ候補などを確認する)為にも 

事前バインディングして作成されるのが良いと思います

興味本位に調べ回答しましたが、
経験が無く、環境のない私にはこの辺りが限界ですね  ご健闘を祈ります
    • good
    • 0
この回答へのお礼

度々ご回答いただき、ありがとうございました。

OSはWindowsであり、フォントは他のものを指定してもエラーが出る状況です。

http://domino.webserve.ne.jp/webserve/notesqa.ns …
上のサイトでも同じ疑問が提示されていますが、解決に至っていないようでした。

今後いろいろと試してみたいと思います。

ご教授いただき、ありがとうございました。

お礼日時:2023/06/23 06:32

Timesと言う事はMacかな



MacもIBM Notes9も全く分からないけれど 少し調べたので参考程度で

https://www.bcom.co.jp/help/help8_designer.nsf/b …
の内容から

Set wknrtitem = wkndoc.createrichtextitem("body")
Set style = wknses.CreateRichTextStyle
style.NotesFont = wknrtitem.GetNotesFont("Times",True)
Call wknrtitem.AppendStyle(style)

とかになるのではないでしょうか
また、
https://www.bcom.co.jp/help/help8_designer.nsf/f …
の情報から
>>エージェントが実行されているプラットフォーム上で有効な名前でなければなりません。
との事ですね
    • good
    • 0
この回答へのお礼

調べていただき、ありがとうございます。
こちらでもいろいろ検索はしているのですが、Notes用のVBAの参考例が少なく解法が見つからない状況です。
書いていただいた「style.NotesFont = wknrtitem.GetNotesFont("Times",True) 」の部分がやはり型が一致しないというエラーになってしまうようです。

お礼日時:2023/06/22 07:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!