[[20220113221419]] 『マクロでoutlookの立ち上げ、メール作成』(謎) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロでoutlookの立ち上げ、メール作成』(謎)

表題の件、教えてください。
マクロで自動メール作成をしたいのですが、
謎の現象が起きたので、お心当たりの方がいらっしゃれば教えて下さい。

下記のコードの、To , CC , Subjectの指定部分ですが、当初Valueを省略していた所、
とある人は正しくメールが作成され、別の人は.To〜の所でエラーで止まりました。
更に、エラーで止まった人も、outlookを一度閉じてマクロを稼働するとエラーなく動きます。
そこで、Valueを追加してみた所、全ての人がoutlookを立ち上げた状態でマクロを稼働しても
エラーなく動くようになりました。
何が起こっているのか調べても分からなかったのですが、分かる方がいらっしゃいましたら教えて下さい。

Dim oApp As Object
Dim mailItemObj As Object

Set oApp = CreateObject("Outlook.Application")
Set mailItemObj = oApp.CreateItem(0)

With mailItemObj
    .To = BN.WS.Cells(2,3).Value
    .CC = BN.WS.Cells(3,3).Value
    .Subject = BN.WS.Cells(4,3).Value
 .Display

< 使用 Excel:Office365、使用 OS:Windows10 >


[[20101203205934]]
 とても参考になると思いましたので。。。
難しいですね。Value ^^;
<< _ _ >>
(隠居Z) 2022/01/14(金) 07:51

WS、BNの宣言部分、変数作成部分も省略せずに書いてください。
WSは Worksheet型の変数かと思いますが、BNは何ですか?Workbookですか?

WSにシートを割り当てるときに、ブックの指定は必要の場合がありますが、
使うときには、WSだけでよいはずです。
(γ) 2022/01/14(金) 08:01


隠居z様
ありがとうございます。
参考になります。とても奥が深いですね。。
全て読み切れていませんが、勉強してみます。

r様
ありがとうございます。
すみません、昨日はsheetの記載を端折ってしまいましたが、
実際は下記のようにしています。
(bookのみworkbook型へ格納、sheetは直接記載)

Dim BN As Workbook
Set BN = ThisWorkbook

Dim oApp As Object
Dim mailItemObj As Object
Set oApp = CreateObject("Outlook.Application")
Set mailItemObj = oApp.CreateItem(0)
With mailItemObj
    .To = BN.Worksheets("sheet1").Cells(2,3).Value
    .CC = BN.Worksheets("sheet1").Cells(3,3).Value
    .Subject = BN.Worksheets("sheet1").Cells(4,3).Value
 .Display
(謎) 2022/01/14(金) 08:44


 どのようなエラーが発生していたかで、
 ある程度分かると思いますが、どのようなエラーでしたか?

 私のレベルで考えられることは、
 Toプロパティは文字列型ですので、それ以外の型が入力されたか、
 MailItemオブジェクトが空(nothing)であれば、.Toのところで
 止まると思います。

 結果、.Value追加で問題が起きていないのでしたら、型の問題かな、と
 思いますが、論理的な解説までは出来ません。

 Range()と記述すると、忖度して.Value(セルの値)としてくれますが、
 本来はオブジェクトなので、記述する場合、.Valueや.textなどプロパティを
 明示的に記述したほうがいいかと思います。
 あくまで忖度なので、1から100まで自身の思った通りとはなりませんから。

(tkit) 2022/01/14(金) 09:30


tkit様
ありがとうございます。
私のPCではエラーが出なかった為、エラーの詳細は把握できていませんが、
皆様の回答を参考に考えると、型の問題かな…と思います。
今後は、こういう事が起こり得るという事を頭に入れて、記述していくようにしたいと思います。
皆様、ありがとうございました。
(謎) 2022/01/14(金) 12:22

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.