【VBA】Outlookのリンクテーブル便利だよ

目次

Outlookリンクテーブル作成

最近、忙しくてブログ書けなかったjimです。どうも✋

これだけ忙しいとブログに書こうとしてたことも頭から抜けてしまうんだよね。。。

これからテストが続くから、また忙しくなるんだけれども。

てことで、今日はOutlookのリンクテーブルについてです。

Outlookのリンクテーブル使ってますか?

リンクテーブルだけではイマイチでしょうが、クエリ使ったりVBAでアプリケーションを連携させれば便利なものが作れると思いますよ。

まず、Outlookのリンクテーブルの作成から説明します。

一番最初に、Accessを適当な場所に作成します。(AccessでExcelをインポートするにチラっと書いてあります

そしたら、リンクテーブルを作成していきます。

リンクテーブルの作成が完了しました。

リンクテーブルを開いてみましょう。

こんな感じでOutlookフォルダのリンクテーブルが表示されます。

 

クエリを作成してみる

リンクテーブルで何ができるのか。っていうと発想しだいなのですが。。。

とりあえず、本日に受信した自分宛のメールを検索してみましょう。

以下のように受信時間が『>=Date()』かつ本人宛てメッセージが『=True』のクエリを用意します。(クエリの作成についてはこちらのおまけ部分

↓見辛いのでアップした画像

クエリを実行します。

自分宛のメールが2件ほどヒットしました。

「おめぇ、本当は暇なんだろ?」って?んなこたない😥

 

VBAで同じことやってみる

クエリと同じことをVBA(SQL)で書いてやると以下のようになります。

Option Explicit
Sub GetOutlook()
Dim dbName As String
Dim adoCn As Object
Dim adoRs As Object
Dim outlookStr As String
    dbName = "フルパスのAccess"
    Set adoCn = CreateObject("ADODB.Connection")
    Set adoRs = CreateObject("ADODB.Recordset")
    adoCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data source=" & dbName & ";"
    outlookStr = "SELECT 件名,目次,差出人名,受信日時,本人宛てメッセージ"
    outlookStr = outlookStr & " WHERE 受信日時 >=#" & Date & "#"
    outlookStr = outlookStr & " AND 本人宛てメッセージ =TRUE"
    outlookStr = outlookStr & " ORDER BY 受信日時 DESC ;"
    adoRs.Open outlookStr, adoCn
    Do While Not adoRs.EOF
        Debug.Print adoRs!件名
        Debug.Print adoRs!目次
        adoRs.movenext
    Loop
    adoRs.Close
    aodcn.Close
End Sub

Dateはyyyy/mm/dd 0:00:00になるので、受信日時がそれ以上。

かつ

本人宛てメッセージがTrue

んで

受信日時を昇順か降順のどちらかを指定しないと⇒

『君はそもそも何をされてる方なの?』

みたいなヤツが紛れ込むバグが発生するので、受信日時は昇順か降順を指定してやります。

こんな感じで色んな角度から検索できるので、定型文が絡む業務ならリンクテーブルとSQLで自動化に結び付けることができると思います。

ループ使えば、フォルダを見張ることもできるしね。

くどいようだけど、発想次第だよね。。。

 

 

はい、そんな感じでした。

2週間以上ブログの更新してなかったか。。。

何か最近お疲れなのだ😓

したら、またねぇ✋