Option Explicit Sub sendmail() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("mail") Dim OutApp As Outlook.Application Set OutApp = New Outlook.Application Dim R As Long, lastrow As Long lastrow = ws.Cells(2, 1).End(xlDown).Row For R = 3 To lastrow Dim OutMail As Outlook.MailItem Set OutMail = OutApp.CreateItem(olMailItem) Dim BodyOfMail As String BodyOfMail = CreateBodyOfMail(ws, R) 'PDFファイル名生成 Dim R As Cells, ws As Object, dt As Variant Set R = Cells(3, 7) Set ws = CreateObject("WScript.shell") dt = ws.SpecialFolders("Desktop") & "\" & "返信.pdf" With OutMail .SendUsingAccount = Session.Accounts(aaaaa@aaa.com) .To = ws.Cells(R, 5).Value .CC = ws.Cells(R, 6).Value & bbb@bbb.com & ccc@ccc.com & ddd@ddd.com .subject = Replace(ws.Cells(2, 10).Value, "コード", ws.Cells(R, 3).Value, "都道府県", ws.Cells(R, 2).Value) .body = BodyOfMail .Attachments.Add dt & " .pdf" End With OutMail.Save Set OutMail = Nothing Next R End Sub Function CreateBodyOfMail(ws As Worksheet, R As Long) As String Dim shimei As String, link As String shimei = ws.Cells(R, 4).Value shisetsu = ws.Cells(R, 2).Value Dim subject As String subject = ws.Cells(2, 2).Value subject = Replace(subject, "都道府県", todou) subject = Replace(subject, "コード", code) Dim body As String body = ws.Cells(3, 10).Value body = Replace(body, "名前", shimei) body = Replace(body, "都道府県", todou) body = body & vbCrLf CreateBodyOfMail = body End Function ```### 前提・実現したいこと メール一斉作成PDF添付付きのコードを作成しています。 件名はエクセルの(2,10)にあり、件名中の(コード:都道府県)の箇所にエクセルのコード→(R,3)、都道府県→(R,2)を挿入したいと考えています。 本文にも名前と都道府県を挿入したく、名前はsimei 都道府県はtodou と命名しています。 それぞれエクセルの箇所は、名前→(r,4) 都道府県→(R,2)にあります。 また、PDFはデスクトップに置き、返信.pdfの名前を付けて保存しております。 エラーメッセージが発生してしまい、困っております。
コンパイルエラー ユーザー定義型は定義されていません。
### 該当のソースコード R As Cells ```ここに言語名を入力 ソースコード
試したこと
いろいろ調べてみたのですが改善されず困っております。
具体的には調べたのですが、エラー箇所から進めず困っています。
補足情報(FW/ツールのバージョンなど)
あと、可能でありましたら本文中の氏名と都道府県を太字にしたいのですがこちらもうまくいきません。
回答3件
あなたの回答
tips
プレビュー