>OUTLOOKをエクセルに読み込みたくコードを真似して作ったのですが
>動作しません。ご指南頂けると助かります。
Cells(y, "A") = objMAIL.CreationTime
Cells(y, "B") = objMAIL.SenderName
Cells(y, "C") = objMAIL.Subject
Cells(y, "D") = objMAIL.Body
objMAIL.
あっ、
私のサンプルページがまとまっていなくて
objMAIL と変数使っていたり、
最近は
mITEM
など、変数名がサンプルによってバラバラ
って感じが、コピー貼りつけしにくくなっていると思います。
(不親切ですみません)
Option Explicit Dim y As Integer 'Y行目 '受信メールをexcelで読み込むサンプル 'Excel2007 と Outlook2007 で テスト '参照設定を してください。 Sub main0415() 'メイン処理 Dim oNamespace As Namespace Dim oFolder As Outlook.Folder 'フォルダー Dim oApp As Outlook.Application Set oApp = CreateObject("Outlook.Application") 'データの表示エリアをクリアする Rows("10:9999").Delete Shift:=xlUp '10行目から削除する Range("a1").Select ' NameSpace オブジェクトへの参照を取得します。 Set oNamespace = oApp.GetNamespace("MAPI") ' 既定のフォルダへの参照を取得し、フォルダを表示します。 Set oFolder = oNamespace.GetDefaultFolder(olFolderInbox) '受信トレイを指定 oFolder.Display '選択したフォルダーの表示 '表示関数を呼ぶ y = 10 '10行目からセット Call testFolder(oFolder) '↑上で取得した受信トレイ '使用したオブジェクトの解放 = Nothing oApp.ActiveExplorer.Close '新しく開いてしまったフォルダーを閉じる Set oFolder = Nothing Set oNamespace = Nothing End Sub 'folderオブジェクトを受け取ったら、 '受け取ったオブジェクトの名前 'と 'フォルダー内のアイテム (ここではメールの件名) 'を表示してみたいと思います。 Sub testFolder(oFolder As Outlook.Folder) Dim mITEM As Outlook.MailItem 'メールアイテム Dim n As Integer 'ループのカウンター Dim c As Integer 'フォルダのループカウンタ 'テストで名前の表示 Debug.Print oFolder.Name Cells(y, "A") = oFolder.Name & " には " & oFolder.Items.Count & "個のメール" y = y + 1 'フォルダーの下には ITEMここではメール と サブフォルダーが存在します 'メールアイテムの処理 For n = 1 To oFolder.Items.Count 'アイテム数分ループ Set mITEM = oFolder.Items(n) '↑代入が終わったので、各プロパティに mITEM.XXXX で アクセスする Debug.Print "件名:" & mITEM.Subject '件名表示 '件名表示 データのセット Cells(y, "A") = mITEM.CreationTime Cells(y, "B") = mITEM.SenderName Cells(y, "C") = mITEM.Subject Cells(y, "D") = mITEM.Body y = y + 1 Next Debug.Print "---" y = y + 1 '1行開ける、いらないかも。 'サブフォルダーの処理 For c = 1 To oFolder.Folders.Count 'サブフォルダーの数だけループする Call testFolder(oFolder.Folders.Item(c)) 'c番目のサブフォルダーを関数に渡す※自分 Next '使用したオブジェクトの解放 = Nothing Set mITEM = Nothing End Sub
で、動作すると思うので、使ってみてください。