三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

Outlook VBA 連絡先グループをメールのCC宛先にセットしたい Recipientを使用

図1:CCにグループ化した宛先をセット

メールの宛先にグループ化された宛先を使用したかったので、
Dim oRecipient As Recipient
Set oRecipient = objMAIL.Recipients.Add("宛先のグループ名")
を使用したデバッグ・テストです。後半の自分語りで恥をかく・・・温かく視聴してください。

youtu.be
https://youtu.be/lv_u8xcA0eY
目次
00:00 0.やりたいこと
00:50 結果を先に 1.受信者Recipientで解決Resolveする?
01:49 2.CCにセットだとできない?詳細解説
05:44 グループの展開?Membersデバッグでハマる・・
10:07 自分語りで失敗 4.F1でヘルプを見てみる

下記、知恵袋の質問をキッカケにして、自分語りを行って恥をかいた動画でした。

0.やりたいこと

detail.chiebukuro.yahoo.co.jp

>ccにグループを入力する構文を
>教えていただけないでしょうか。

1.受信者Recipientで解決Resolveする?単に名前解決?
先に結果から書く(※動画の視聴時間、ブログの滞在時間を引っ張るには、最後にした方がいいんだけど)

'Outlook VBA メールの宛先がグループの時 受信者Recipientで解決Resolveする?単に名前解決?
Sub test_20230115()
    Dim objMAIL As Outlook.MailItem
    Set objMAIL = CreateItem(olMailItem)
    objMAIL.Display
    
    objMAIL.Subject = "テスト " & Now()
    objMAIL.To = "a@a ; b@b"
    
    'イメージは宛先・送信者なんだけど受信者のオブジェクトをいじる
    Dim oRecipient As Recipient
    Set oRecipient = objMAIL.Recipients.Add("開発チーム")
    oRecipient.Type = olCC  'CCの欄にしたいので
    oRecipient.Resolve      '解決?んっ?単に名前解決と一緒?
    
    Stop
    '↑とめて確認してみる

End Sub

2.いつもの.CCにセットだとできない?

Sub test_20230115_002いつものccだとNGをテスト()
    Dim objMAIL As Outlook.MailItem
    Set objMAIL = CreateItem(olMailItem)
    objMAIL.Display
    
    objMAIL.Subject = "テスト " & Now()
    objMAIL.To = "test2 ; test3"  '←メアドの方はうまくいく不思議?
    objMAIL.CC = "開発チーム"     'グループはダメ?
    'いつもの.ccに文字列セットだと、うまくいかない↑
    
    Stop
    '↑とめて確認してみる

End Sub

3.もしかして、やりたいのは?グループの展開?
別の質問
detail.chiebukuro.yahoo.co.jp
をみると、

>宛先に連絡先グループのメンバーを展開して
>メールアドレスを入力する構文を教えていただけないでしょうか。

図2:Recipient.AddressEntry.Membersをウォッチ式で

ウォッチ式で探っただけ、ぉぃぉぃ、コードを書いてよ・・・

- : Members : : AddressEntries/AddressEntries : Module1.test_20230115

グループのメンバー数
? oRecipient.AddressEntry.Members.Count
4

↑その下
? oRecipient.AddressEntry.Members(1).address

↑ループなどで取得してください

4.F1でヘルプを見てみる And 翻訳してみる

ネットでコードを見かけて、私がやること。

隙あれば自分語りで、時間を稼ぐ
おいおい、やめとけって・・・

4.1 F1をとにかく押す
As の型宣言や プロパティ、メソッドでF1を押し、ヘルプを見る

4.2 英単語がわからないのでサイトで翻訳してみる
↑わたしだけかな・・・

解決のヒントとなれば幸いです。

'グループの名前が無い時、チェックする?
Sub test_20230115_TEST3()
    Dim objMAIL As Outlook.MailItem
    Set objMAIL = CreateItem(olMailItem)
    objMAIL.Display
    
    objMAIL.Subject = "テスト " & Now()
    objMAIL.To = "a@a ; b@b"
    
    'イメージは宛先・送信者なんだけど受信者のオブジェクトをいじる
    Dim oRecipient As Recipient
    Set oRecipient = objMAIL.Recipients.Add("開発")
    oRecipient.Type = olCC  'CCの欄にしたいので
    
    Dim bRET As Boolean
    bRET = oRecipient.Resolve
    If bRET = False Then
        MsgBox "グループが見つかりません"
    End If
    
    Stop
    '↑とめて確認してみる

End Sub

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)