VBAでメール作成(選択した複数の宛先へのメール作成)
ExcelのVBAを使用してOutlookのメールを作成したいのですが、初心者のため上手く動きません。
想定している動作は別シート("メールアドレス")に入力し
てあるアドレスをインボックスで複数選択しそのアドレスを宛先に追加したいです。
以前このサイト上に教えてもらいトライしたのですが、
連番セルしかカウントできないため
飛びセルを選択してしまうと異なったアドレスをコピーしてしまいます。
詳しい方いらっしゃいましたらご教示ください。
Sub Cbm_Value_Select()
Dim rng As Range
Dim MM As String, M As String, N As String
Dim outlookObj As Outlook.Application
Set outlookObj = New Outlook.Application
Dim mailObj As Outlook.MailItem
Set mailObj = outlookObj.CreateItem(olMailItem)
Set rng = Application.InputBox(Prompt:="アドレス選択して下さい", Type:=8) 'アドレス選択
If Not rng.Cells.Count > 0 Then Exit Sub
MM = ProcessingFuc(rng, rng.Cells.Count)
MM = Right(MM, Len(MM) - 1) 'アドレスが加工され変数に代入
M = Worksheets("メール内容").Cells(5, 2) '件名 選択
N = Worksheets("メール内容").Cells(9, 2) '本文 選択
'メール送信内容の作成
With mailObj
.To = MM 'メール宛先
.Subject = M 'メール件名
.Body = N 'メール本文
.BodyFormat = olFormatPlain 'メール形式に設定
.Display
End With
End Sub
No.3ベストアンサー
- 回答日時:
ろくに検証もせずに回答し余計な手数をおかけして申し訳ありません。
検証しましたが、下記でどうでしょうか?
Functionは要りません。
Sub Cbm_Value_Select()
Dim outlookObj As Outlook.Application
Dim mailObj As Outlook.MailItem
Dim rng As Range, arrAd As Object
Dim MM As String, M As String, n As String
Set outlookObj = New Outlook.Application
Set mailObj = outlookObj.CreateItem(olMailItem)
Set rng = Application.InputBox(Prompt:="アドレス選択して下さい", Type:=8)
If Not rng.Cells.Count > 0 Then Exit Sub
For Each arrAd In rng 'Range内(配列)に対して
MM = MM & "; " & arrAd.Value
Next
MM = Right(MM, Len(MM) - 1) 'アドレスが加工され変数に代入されます。
M = Worksheets("メール内容").Cells(5, 2) '件名 選択
n = Worksheets("メール内容").Cells(9, 2) '本文 選択
'メール送信内容の作成
With mailObj
.To = MM 'メール宛先
.Subject = M 'メール件名
.Body = n 'メール本文
.BodyFormat = olFormatPlain 'メール形式に設定
.Display
End With
End Sub
No.2
- 回答日時:
こんばんは、下記も書き換えましたか?
Function ProcessingFuc(arrAd As Variant, n As Long) As String
Dim i As Long
arrAd = Split(arrAd, ",")
For i = 0 To n - 1
ProcessingFuc = ProcessingFuc & "; " & Range(arrAd(i)).Value
Next
End Function
こんばんは。
はい。書き換えたのですが
逆に宛先に何も表示されない状態でした。
メール画面が出るのですが。。
あと、セルを連続指定すると逆にエラーになりました。
No.1
- 回答日時:
前回回答しましたコードは飛び行には、対応していませんでしたね。
すみません。
前回のものを改造しましたので、こちらでどうでしょうか
Sub Cbm_Value_Select()
Dim rng As Range, MM As String
Dim arrAd
Set rng = Application.InputBox(Prompt:="アドレス選択して下さい", Type:=8)
If Not rng.Cells.Count > 0 Then Exit Sub
MM = ProcessingFuc(rng.Address, rng.Cells.Count)
MM = Right(MM, Len(MM) - 1) 'アドレスが加工され変数に代入されます。
End Sub
Function ProcessingFuc(arrAd As Variant, n As Long) As String
Dim i As Long
arrAd = Split(arrAd, ",")
For i = 0 To n - 1
ProcessingFuc = ProcessingFuc & "; " & Range(arrAd(i)).Value
Next
End Function
回答ありがとうございます。
上記コードでトライしましたが
宛先にアドレスが表示されなくなりました。
因みにコードは下記の通りです。
Sub Cbm_Value_Select()
Dim rng As Range
Dim MM As String, M As String, n As String
Dim arrAd
Dim outlookObj As Outlook.Application
Set outlookObj = New Outlook.Application
Dim mailObj As Outlook.MailItem
Set mailObj = outlookObj.CreateItem(olMailItem)
Set rng = Application.InputBox(Prompt:="アドレス選択して下さい", Type:=8)
If Not rng.Cells.Count > 0 Then Exit Sub
MM = ProcessingFuc(rng.Address, rng.Cells.Count)
MM = Right(MM, Len(MM) - 1) 'アドレスが加工され変数に代入されます。
M = Worksheets("メール内容").Cells(5, 2) '件名 選択
n = Worksheets("メール内容").Cells(9, 2) '本文 選択
'メール送信内容の作成
With mailObj
.To = MM 'メール宛先
.Subject = M 'メール件名
.Body = n 'メール本文
.BodyFormat = olFormatPlain 'メール形式に設定
.Display
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) VBA初心者です。 2 2022/10/10 11:52
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
受信メールの添付ファイル忘れ...
-
失礼な文とは分からず、先生に...
-
お祝い金を徴収するメールの書き方
-
送信エラーの際、CCには届い...
-
一度聞いたかも知れないのをっ...
-
URLをコピーしてメールにリ...
-
株式会社NSCと言う所から、現金...
-
送信しても『Mail System Error...
-
Winmail.dat ファイルが開けない
-
土日に大学教授にメールを送る...
-
windowsメールとOutlookメール...
-
"***@***.ocn.ne.jp"の"@***"は...
-
通帳口座番号 メールで送っても...
-
詐欺メールでしょうか?
-
内容の書かれていない迷惑メー...
-
スマホ Gメール URLの文字が青...
-
訳せる方お願いします!!
-
文末にAll the best! 返信しな...
-
一つのメールアドレスで色んな...
-
Outlookで受信メールの件名に[S...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
受信メールの添付ファイル忘れ...
-
失礼な文とは分からず、先生に...
-
お祝い金を徴収するメールの書き方
-
windowsメールとOutlookメール...
-
送信しても『Mail System Error...
-
送信エラーの際、CCには届い...
-
Winmail.dat ファイルが開けない
-
株式会社NSCと言う所から、現金...
-
URLをコピーしてメールにリ...
-
一度聞いたかも知れないのをっ...
-
内容の書かれていない迷惑メー...
-
通帳口座番号 メールで送っても...
-
"***@***.ocn.ne.jp"の"@***"は...
-
訳せる方お願いします!!
-
相手にメールを送信したら、 Ea...
-
iphoneからメールで写真を送付...
-
メール送信すると以下のような...
-
メールの書き方 保護者から先生へ
-
一つのメールアドレスで色んな...
-
メールの一斉送信で非対象者に...
おすすめ情報