非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

OutlookからExcelファイルにデータ保存する方法

   

このブログ経由でOutlookで受信したメールをExcelで管理したいという相談がありました。本文にはある規則に従った定型文があり、それを解析してデータを抽出しExcelに保存していくような機能です。

それを実現しようとするためには、まず最初のステップとしてOutlookからExcelファイルへの書き込みする方法を押さえる必要があります。今回はその機能のみをフォーカスして取り上げたいと思います。

Outlookマクロの開発環境

Outlookマクロ開発するにあたってまずやらなきゃいけないことは、マクロを書く「Visual Basic Editor」を起動する必要があります。これについては以下の記事に書かれているので参照ください。

Excelマクロの経験者であればわかると思いますが、マクロ初心者の方はこの記事をまずよく読んでエディターを起動してください。また標準モジュールの挿入まで進めてください。いずれも上記記事に手順が書かれています。

 

ソースコード

Visual Basic Editorは起動して標準モジュールを挿入した状態になっているでしょうか。

以下のソースコードをコピペしましょう。fnameに書かれているアドレスは書き込み先のExcelファイルのアドレスです。適宜修正してください。

尚、ソースコードをよりシンプルにするために本来やるべきであろうエラー処理などは省略しています。

Sub Excelへデータ保存()
    '書き込み先のExcelファイルのアドレス。適宜修正のこと。
    fname = "C:\Users\s...\Book1.xlsx"
    Set ExcelApp = New Excel.Application
    '指定のExcelファイルを開く(バックグラウンド)
    Set wb = ExcelApp.Workbooks.Open(fname)
    'シート指定(シート名も適宜修正)
    Set sh = wb.Sheets("Sheet1")
    'セルに書き込む
    sh.Cells(1, 1) = "Hello"    'A1セル
    sh.Cells(1, 2) = "Outlook"  'B1セル
    sh.Cells(1, 3) = "VBA!"     'C1セル
    '保存
    wb.Save
    'ファイルを閉じる(重要!)
    wb.Close
End Sub
 

 

このソースコードを実行すれば指定したExcelファイルのセルに書かれる…と思うのは気が早いです。次の参照設定が必要になります。

参照設定

メニューから「ツール」-「参照設定」を選びます。

以下のダイアログが現れるのでリストの中から「Microsoft Excel 16.0 Object Library」を探してチェックを入れてください。チェックを入れたら「OK」ボタンを押して閉じましょう。

 

実行結果

これで実行可能です。以下の赤丸で示した実行ボタンを押すか、この記事に書かれている方法でExcel側からも実行できます。あるいはExcelのリボンにアイコンを設置することもできますので参考にしてください。

 

実行するとご覧の通りセルに値が入力されました。

 

今回はまず第一ステップとしてOutlookからExcelファイルにデータ保存する方法について紹介しました。次はOutlookの受信メールからデータを取得することが必要になります。こちらについては後々…。

 

スポンサーリンク

 - Excel, Outlook, VBA