回答編集履歴

1

全コード

2020/04/13 04:56

投稿

ttyp03
ttyp03

スコア16998

test CHANGED
@@ -71,3 +71,143 @@
71
71
  余談ですが折角With使っているのにその中でObjMailを書いていたので修正してます。
72
72
 
73
73
  あと動作確認はしていませんのであしからず。
74
+
75
+
76
+
77
+ 修正版全コード
78
+
79
+ ```VBA
80
+
81
+ Sub ovba()
82
+
83
+
84
+
85
+ 'ファイルの選択ダイアログを表示して
86
+
87
+ 'ファイルのパスを取得します
88
+
89
+
90
+
91
+ Dim fType, prompt As String
92
+
93
+ Dim fPath As Variant
94
+
95
+ Dim ws As Worksheet
96
+
97
+ Dim ObjMail As Object
98
+
99
+
100
+
101
+
102
+
103
+ Dim objOutlook As Outlook.Application
104
+
105
+ Dim i As Long
106
+
107
+ Dim rowMax As Long
108
+
109
+ Dim wsList As Worksheet
110
+
111
+
112
+
113
+ ' Set ObjMail = CreateObject("Outlook.Application") ★この行削除
114
+
115
+
116
+
117
+ Set objOutlook = New Outlook.Application
118
+
119
+ Set wsList = ThisWorkbook.Sheets("送信先")
120
+
121
+ Set wsMail = ThisWorkbook.Sheets("メール内容")
122
+
123
+
124
+
125
+ '選択できるファイルの種類はすべてのファイル
126
+
127
+ fType = ""
128
+
129
+
130
+
131
+
132
+
133
+ 'ダイアログのタイトルを指定
134
+
135
+ prompt = "Excelファイルを選択して下さい"
136
+
137
+ 'ファイル参照ダイアログの表示
138
+
139
+ fPath = Application.GetOpenFilename(fType, , prompt)
140
+
141
+
142
+
143
+ If fPath = False Then
144
+
145
+ 'ダイアログでキャンセルボタンが押された場合は処理を終了します
146
+
147
+ End
148
+
149
+ End If
150
+
151
+
152
+
153
+ 'B2セルにファイル名をセット
154
+
155
+ wsMail.Cells(10, 3).Value = fPath
156
+
157
+
158
+
159
+ '--- 添付ファイルのパス ---'
160
+
161
+ Dim attachmentPath As String
162
+
163
+ attachmentPath = fPath
164
+
165
+
166
+
167
+ '--- 添付ファイルを設定 ---'
168
+
169
+ ' Call ObjMail.Attachments.Add(attachmentPath) ★この行削除
170
+
171
+
172
+
173
+ With wsList
174
+
175
+
176
+
177
+ '送信先の件数
178
+
179
+ rowMax = .Cells(Rows.Count, 1).End(xlUp).Row
180
+
181
+
182
+
183
+ '送信先の件数分繰り返す
184
+
185
+ For i = 2 To rowMax
186
+
187
+ Set ObjMail = objOutlook.CreateItem(olMailItem)
188
+
189
+ With ObjMail
190
+
191
+ .To = wsList.Cells(i, 4).Value 'メール宛先
192
+
193
+ .Subject = wsMail.Range("B1").Value 'メール件名
194
+
195
+ .BodyFormat = olFormatPlain 'メールの形式
196
+
197
+ .Body = wsMail.Range("B2").Value 'メール本文
198
+
199
+ .Attachments.Add attachmentPath ' ★この行追加
200
+
201
+ .Display 'Outlookの下書きをDisplayする
202
+
203
+ End With
204
+
205
+ Next i
206
+
207
+
208
+
209
+ End With
210
+
211
+ End Sub
212
+
213
+ ```