標記の通りなのですが、
ボタンによって、取得するパス名を変更するようなマクロを作りたいです。
取得した特定のパス名のフォルダに格納されたファイルがある場合、
先生とクラス名を取得して、クラス代表者別にメールを一括作成するマクロを作りました。
同様のフォルダ構成の添付ファイルがあるため、
ボタンを作成して、
ボタン名の変数をFileStorePathに渡して、
取得するパス名が異なるようにしたいです。
main()内の、FileStorePathの、fNameが今回ボタンの押下によって変更したい部分です。
ボタンを作成するときに、ボタンごとにfNameに、入れたいフォルダ名を宣言しましたが、
ボタンが動きません。
修正に、お力を貸していただけないでしょうか。
VBA
1Enum Col '1以降の数値を省略した場合は+1される 2 宛先 = 1 3 複写 4 クラス名 5 クラス代表者氏名 6 添付キーワード 7 先生氏名 8End Enum 9 10Sub main() 11 'Dim Col As Cols 12 Dim r As Long 13 'Outlookオブジェクトの作成 14 Dim OutlookObj As Outlook.Application 15 Set OutlookObj = New Outlook.Application 16 17 For r = 2 To Cells(1, 1).End(xlDown).Row 18 19 'メールアイテムオブジェクト作成 20 Dim mailItemObj As Outlook.MailItem 21 Set mailItemObj = OutlookObj.CreateItem(olMailItem) 22 23 '添付ファイルオブジェクトの生成 24 Dim attachObj As Outlook.Attachments 25 Set attachObj = mailItemObj.Attachments 26 27 Dim cName As String, sName As String, tName As String 28 cName = Cells(r, Col.クラス名).Value 29 tName = Cells(r, Col.先生氏名).Value 30 31 Dim FileStorePath As String 32 FileStorePath = "C:\Outlookテスト\" & tName & "先生\" & cName & fName 33 34 '★添付ファイルが存在する場合のみ、メールアイテムを作成する 35 If FileAttach(attachObj, FileStorePath) = True Then 36 37 'メール本文作成 38 Dim mailBody As String 39 mailBody = CreateMailBody(r) 40 41 'メールアイテム作成 42 With mailItemObj 43 .To = Cells(r, Col.宛先).Value 44 .CC = Cells(r, Col.複写).Value 45 .Subject = Cells(1, "I").Value '件名 46 .Body = mailBody '本文 47 End With 48 49 mailItemObj.Display '下書きを表示 50 51 '次のメールアイテムを作成するためいったん破棄 52 Set mailItemObj = Nothing 53 54 End If 55 56 Next r 57 58End Sub 59
↓このようなマクロを、ボタンごとに作り、main()を呼び出すようにしています。
VBA
1Sub 1日時点_Click() 2 Dim fName As String 3 fName = "1日時点" 4 Module1.main 5End Sub 6
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。