dotnet new console
出来上がったProgram.csに以下を書く
Excel.Application excelApp = new Excel.Application();
string excelFile = @"C:\pass\to\dir\mail.xlsm";
string mdlNM = "Module1";
string sbrNM = "sample";
Excel.Workbook workbook = excelApp.Workbooks.Open(excelFile);
excelApp.Run(mdlNM + "." + sbrNM);
excelApp.Quit();
Excelのマクロは以下の通り
Module1にsample()というサブプロシージャを定義する
ちなみに以下はメールを送信するコード
Sub sample()
Dim objCDO As New CDO.Message
With objCDO
With .Configuration.Fields '設定項目
.Item(cdoSMTPServer) = "example.com" 'SMTPサーバ名
.Item(cdoSendUsingMethod) = cdoSendUsingPort '外部SMTP指定
.Item(cdoSMTPServerPort) = 465 'ポート№
.Item(cdoSMTPConnectionTimeout) = 60 'タイムアウト
.Item(cdoSMTPAuthenticate) = cdoBasic 'SMTP認証
.Item(cdoSMTPUseSSL) = True 'SSL
.Item(cdoSendUserName) = "user@example.com" '送信ユーザー
.Item(cdoSendPassword) = "passwd" '送信パスワード
.Item(cdoLanguageCode) = CdoCharset.cdoShift_JIS '文字セット指定
.Update '設定を更新
End With
With .Fields
.Item("urn:schemas:mailheader:X-Priority") = 1
.Item("urn:schemas:mailheader:X-MsMail-Priority") = "High"
.Update '設定を更新
End With
.MDNRequested = True '開封確認
.MimeFormatted = True 'MIMEを使って書式設定
.From = "user@example.com"
.To = "to-user@to.example.com"
.Subject = "テスト"
.TextBody = "本文"
.Send '送信
End With
Set objCDO = Nothing
End Sub