![見出し画像](https://assets.st-note.com/production/uploads/images/72073682/rectangle_large_type_2_82230f2735561309e4e648dfc24faeaf.png?width=1200)
Photo by
yu_1173_1173
VBA学習日記🖊 _02
Outlook VBA 第2弾です。
まずは連絡先の登録。
CreateItem(olContactItem) で連絡先登録のオブジェクトが生成されるらしい。
書いてみると意外と簡単。
Option Explicit
Sub 連絡先登録()
Dim myOutlook As Outlook.Application
Dim myContact As Outlook.ContactItem '新しい連絡先を操作するためのオブジェクト
Set myOutlook = New Outlook.Application
Set myContact = myOutlook.CreateItem(olContactItem) 'CreateItemメソッドでContactIemオブジェクトを生成する
'連絡先の生成
With myContact
.FirstName = "連絡先の名前"
.LastName = "連絡先の性"
.Email1Address = "aaaa@bbbbb.co.jp"
.Email1DisplayName = "表示名"
.Companies = "勤務先"
.Department = "部署"
.JobTitle = "役職"
.Display
'.Save '保存する場合
End With
End Sub
この表示見にくいかな?( ´∀` )
てゆうか連絡先を大量に保存する事なんてないからな~。
使う日がくるのだろうか( ´∀` )
大量の連絡先をExcelデータから読み取って登録とか。
やってみたいな。ランサーズとかでないかなW
次は受信メールをシートに書き出し。
(見出付けた方がいいなと今更ながら思う。W)
GetNamespaceでNamespaceオブジェクトを作る。
これでメールや予定表、連絡先のデータにアクセスすることができるらしい。すぐに理解できる人が羨ましいね( ´∀` )
Option Explicit
Sub 受信メール書き出し()
'受信メールフォルダ内のメールをエクセルシートに書き出す
Dim myOutlook As Outlook.Application
Dim myNamespace As Outlook.Namespace 'Outlookのメールや予定表、連絡先等のデータにアクセスする事ができるオブジェクト
Dim myInbox As Folder 'Folderオブジェクト
Set myOutlook = New Outlook.Application
Set myNamespace = myOutlook.GetNamespace("MAPI") 'GetNamespaceメソッドでNamespaceオブジェクトを取得
Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox) 'GetDefaultFolderはフォルダを操作するメソッド(Folderオブジェクトを作成)
With ThisWorkbook.Worksheets("受信ボックス")
.Cells(2, 1).Value = myInbox.Items(1).SentOn
.Cells(2, 2).Value = myInbox.Items(1).Subject
.Cells(2, 3).Value = myInbox.Items(1).Body
End With
End Sub
![](https://assets.st-note.com/img/1644668892504-DUy8sljU9y.png)
要はこの3点セットかな。
それをItemsでメール内容を取り出すと。
ちなみにItems(1)なので1件分だけ取り出してる。
複数だと↓
Option Explicit
Sub 特定のフォルダのメール()
''受信メールフォルダのサブフォルダ内のメールをエクセルシートに書き出す
Dim myOutlook As Outlook.Application
Dim myNamespace As Outlook.Namespace 'Outlookのメールや予定表、連絡先等のデータにアクセスする事ができるオブジェクト
Dim myInbox As Folder
Dim myItem As Object
Dim mySubfolder As Folder
Dim i As Long
Set myOutlook = New Outlook.Application
Set myNamespace = myOutlook.GetNamespace("MAPI") 'GetNamespaceメソッドでNamespaceオブジェクトを取得
Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox) 'GetDefaultFolderはフォルダを操作するメソッド(Folderオブジェクトを作成)
Set mySubfolder = myInbox.Folders.Item("サブフォルダ1") 'FoldersオブジェクトのItemメソッドで指定のフォルダーを操作
For i = 1 To mySubfolder.Items.Count
With ThisWorkbook.Worksheets("受信ボックス")
.Cells(i + 1, 1).Value = mySubfolder.Items(i).SentOn
.Cells(i + 1, 2).Value = mySubfolder.Items(i).Subject
.Cells(i + 1, 3).Value = mySubfolder.Items(i).Body
End With
Next
End Sub
自分で書いてみると意外と簡単。
まあその前に、
そんなにメールなんて飛んでこないけどね( ´∀` )
とりあえず自分でメール飛ばして自分でメール書き出してますW
今日はここまで。
この記事が気に入ったらサポートをしてみませんか?