以下のVBAコードを使用することで、Outlookのマクロを作成してエクセル内の指定されたセルの内容をメールの本文に指定し、「回答欄」という文字が含まれている場合には黄色で強調表示することができます。
“`VBA
Sub CreateEmailWithCellContent()
Dim olApp As Object
Dim olMail As Object
Dim olInsp As Object
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Dim rng As Object
Dim cell As Object
Dim cellContent As String
‘ Outlookアプリケーションを初期化
Set olApp = CreateObject(“Outlook.Application”)
‘ 新しいメールを作成
Set olMail = olApp.CreateItem(0)
‘ エクセルアプリケーションを初期化
Set xlApp = CreateObject(“Excel.Application”)
‘ エクセルブックを開く
Set xlBook = xlApp.Workbooks.Open(“ファイルパス”) ‘ ファイルパスは適宜変更してください
‘ シートを指定
Set xlSheet = xlBook.Sheets(“シート名”) ‘ シート名は適宜変更してください
‘ セル範囲を指定
Set rng = xlSheet.Range(“A10:A15”)
‘ メールの本文を作成
For Each cell In rng
cellContent = cell.Value
If InStr(cellContent, “回答欄”) > 0 Then
cellContent = “” & cellContent & “”
End If
olMail.HTMLBody = olMail.HTMLBody & cellContent & “
”
Next cell
‘ エクセルを閉じる
xlBook.Close SaveChanges:=False
xlApp.Quit
‘ メールの表示と送信
olMail.Display
‘olMail.Send
‘ オブジェクトを解放
Set olMail = Nothing
Set olApp = Nothing
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
“`
このコードでは、エクセルの特定のセル範囲を指定し、その内容をメールの本文に追加しています。もしセルの内容に「回答欄」という文字列が含まれている場合は、その部分を黄色で強調表示しています。ただし、このコードを使用する前に、「ファイルパス」や「シート名」などを適切な値に変更する必要があります。
また、メールを送信する場合は`olMail.Send`のコメントを外してください。現在はメールを表示するだけです。
このマクロをOutlook内で実行するには、以下の手順に従ってください。
1. Outlookを開き、「開発」タブを表示します。表示されていない場合は、オプションから「開発」タブを有効にしてください。
2. 「マクロ」をクリックし、VBAエディタが起動します。
3. VBAエディタ内でモジュールを作成し、コードを貼り付けます。
4. VBAエディタを閉じ、Outlookに戻ります。
5. メール作成画面で「開発」タブを表示し、「マクロ」をクリックします。
6. 表示されたマクロ一覧から「CreateEmailWithCellContent」を選択し、実行ボタンをクリックします。
これで、エクセルの指定されたセルの内容がメールの本文に指定され、必要に応じて「回答欄」が黄色で強調表示されるはずです。