当サイトの記事にはプロモーションが含まれています。

OutlookとExcelを連携!VBAでメール内容を自動転記する方法

パソコンパソコン・スマホ教室
スポンサーリンク

皆さん、こんにちは。今日は、Outlookで受信したメールの内容を自動的にExcelに転記する方法をご紹介します。普段、手作業でメールの内容をExcelにコピーしている方には、ぜひ試していただきたい内容です。

スポンサーリンク

OutlookとExcelを連携するメリット

Outlookのイメージ

Outlookのイメージ

まず、なぜOutlookとExcelを連携するのか、そのメリットをお伝えします。手動でメールの内容をExcelに転記する作業は、時間がかかるだけでなく、ミスが発生しやすいですよね。VBA(Visual Basic for Applications)を使って自動化することで、以下のようなメリットがあります。

ここがポイント!

  • 作業時間の短縮
  • 転記ミスの防止
  • データ管理の効率化

これらのメリットにより、業務の効率化が期待できます。

このサイトをチップで応援

VBAを使ってOutlookのメールをExcelに自動転記する方法

それでは、具体的な方法をご紹介します。以下の手順で進めていきましょう。

1. 開発タブを表示する

まず、ExcelとOutlookの両方で「開発」タブを表示する必要があります。これは、VBAを操作するためのタブです。

ここがポイント!

  • Excelの場合ファイル > オプション > リボンのユーザー設定 > 開発にチェックを入れる。
  • Outlookの場合ファイル > オプション > リボンのユーザー設定 > 開発にチェックを入れる。

2. VBAエディタを起動する

次に、OutlookでVBAエディタを起動します。

ここがポイント!

  • Outlookを開き、「開発」タブをクリックします。
  • 「Visual Basic」をクリックして、VBAエディタを起動します。

3. 参照設定を行う

OutlookのVBAでExcelの機能を使うために、参照設定を行います。

ここがポイント!

  • VBAエディタで、「ツール」メニューから「参照設定」を選択します。
  • 「Microsoft Excel xx.x Object Library」にチェックを入れ、「OK」をクリックします。

4. コードを入力する

それでは、実際にコードを入力していきます。以下のコードを「ThisOutlookSession」に貼り付けてください。

vba
#If Win64 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim myNameSpace As NameSpace
Dim objId As Object
Set myNameSpace = GetNamespace("MAPI")
Set objId = myNameSpace.GetItemFromID(EntryIDCollection)

Dim strFile As String
Dim objExcel As Excel.Application

strFile = "Excelファイルのパス"

Set objExcel = New Excel.Application
Set wb = objExcel.Workbooks.Open(strFile)
Set ws = wb.Worksheets("シート名")

With objId
i = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
ws.Cells(i, 1).Value = .SentOn
If InStr(.SenderEmailAddress, "@aaa.jp") > 0 Then
ws.Cells(i, 2).Value = "A社"
ElseIf InStr(.SenderEmailAddress, "@bbb.jp") > 0 Then
ws.Cells(i, 2).Value = "B社"
Else
ws.Cells(i, 2).Value = ""
End If
ws.Cells(i, 3).Value = .SenderName
ws.Cells(i, 4).Value = .Subject
ws.Cells(i, 5).Value = .Body
End With

wb.Save
Sleep 700
wb.Close
objExcel.Quit
End Sub

このコードは、メールを受信すると自動的に指定したExcelファイルを開き、以下の情報を転記します。

ここがポイント!

  • 送信日時
  • 送信者の会社名(メールアドレスに基づく)
  • 送信者名
  • 件名
  • 本文

※コード内の「Excelファイルのパス」や「シート名」は、ご自身の環境に合わせて変更してください。

よくある質問や疑問

Q1: VBAのコードがうまく動作しません。どうすれば良いですか?

まず、コード内のファイルパスやシート名が正しいか確認してください。また、Excelファイルが既に開かれているとエラーが発生することがあります。その場合は、Excelファイルを閉じてから再試行してください。

Q2: セキュリティの警告が表示されます。これは安全ですか?

VBAマクロは強力なツールですが、不正なコードが含まれていると危険です。信頼できるソースからのコードであることを確認し、自己責任で実行してください。

まとめ

以上、OutlookのメールをExcelに自動転記する方法をご紹介しました。最初は少し難しく感じるかもしれませんが、一度設定してしまえば日々の作業が格段に楽になります。ぜひ挑戦してみてください。他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました