皆さん、こんにちは。今日は、Outlookで受信したメールの添付ファイル名をVBAを使って取得する方法についてお話しします。パソコンやスマホがちょっと苦手な方でも大丈夫です。ゆっくり丁寧に説明していきますので、一緒に学んでいきましょう。
VBAとは何か?
まず、VBAという言葉を聞いたことがありますか?VBAは「Visual Basic for Applications」の略で、Microsoftのアプリケーション、例えばExcelやOutlookなどを自動化するためのプログラミング言語です。難しそうに聞こえるかもしれませんが、基本を押さえれば便利に使いこなせますよ。
OutlookでのVBAの活用
OutlookでVBAを使うと、手作業で行っていたことを自動化できます。例えば、毎日たくさんのメールをチェックして、添付ファイルを保存する作業。これを自動でやってくれたら、とても楽になりますよね。
添付ファイル名を取得する手順
では、具体的にOutlookのメールから添付ファイル名を取得する手順を見ていきましょう。
- まず、Outlookを開きます。
- キーボードの「Alt」キーを押しながら「F11」キーを押して、VBAの編集画面を開きます。
- 左側の「Microsoft Outlook Objects」の中にある「ThisOutlookSession」をダブルクリックします。
- 表示された大きな白い画面に、以下のコードをコピーして貼り付けます。
vbaコード
Sub GetAttachmentNames()
Dim objOutlook As Outlook.Application
Dim myNamespace As Outlook.Namespace
Dim myFolder As Outlook.Folder
Dim mailItem As Outlook.MailItem
Dim attachment As Outlook.Attachment
Dim i As Long, j As Long
Set objOutlook = New Outlook.Application
Set myNamespace = objOutlook.GetNamespace("MAPI")
Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)
For i = 1 To myFolder.Items.Count
If TypeOf myFolder.Items(i) Is Outlook.MailItem Then
Set mailItem = myFolder.Items(i)
For j = 1 To mailItem.Attachments.Count
Set attachment = mailItem.Attachments(j)
Debug.Print attachment.FileName ' 添付ファイル名を出力
Next j
End If
Next i
End Sub
このコードは、受信トレイ内のすべてのメールをチェックし、それぞれのメールに含まれる添付ファイルの名前を取得して表示します。
コードのポイント解説
コードの中で特に重要な部分を簡単に説明しますね。
- `Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)`Outlookの受信トレイを指定しています。
- `For i = 1 To myFolder.Items.Count`受信トレイ内のメールを一つずつ確認しています。
- `For j = 1 To mailItem.Attachments.Count`各メールに含まれる添付ファイルを一つずつ確認しています。
- `Debug.Print attachment.FileName`添付ファイルの名前を表示しています。
実際に試してみましょう
コードを貼り付けたら、実際に動かしてみましょう。
- VBAの編集画面で、上部の「▶」ボタン(実行ボタン)をクリックします。
- Outlookの「表示」タブから「イミディエイトウィンドウ」を開きます。
- 先ほどのコードを実行すると、イミディエイトウィンドウに添付ファイル名が表示されます。
もし、うまくいかない場合は、以下の点を確認してみてください。
- Outlookが正しく起動しているか。
- 受信トレイにメールが存在するか。
- コードを正しくコピー&ペーストしたか。
よくある質問や疑問
Q1: このコードはどのバージョンのOutlookでも使えますか?
はい、基本的にはOutlookの2010以降のバージョンで動作します。ただし、環境によっては設定が必要な場合もあります。
Q2: 添付ファイルを自動で保存することもできますか?
はい、可能です。`attachment.SaveAsFile`メソッドを使用して、指定したフォルダに保存することができます。
まとめ
いかがでしたか?OutlookのVBAを使って、メールの添付ファイル名を簡単に取得する方法をご紹介しました。最初は難しく感じるかもしれませんが、慣れてくるととても便利です。ぜひ試してみてくださいね。


コメント