最終更新日:2006.03.26
cdbiff for Outlook
cdbiff for Outlook とは
Microsoft Outlook で動作するVBA (いわゆるマクロ) です。
メールが到着すると、CD−ROMドライブがイジェクトされます。それだけです・・・
高林 哲さんが作成された cdbiff にインスパイアされて作成しました。
職場では、Outlook(Exchange Server)が標準なのですが、メール用PCと開発用PCを切換えながら使っていると、
新着メールを見逃してしまうことがありました。
cdbiffの存在を知った瞬間に、これだと思い、一気呵成に作成しました。
動作環境
Outlook 2000 / 2002 /2003 で動作確認を行いました。
残念ながら、Outlook Express では、VBAが動作しないため使えません。
セットアップ方法
マクロのセキュリティレベルを『中』にする
Office 2000 SP2 以降、マクロ セキュリティが自動的に『高』に設定されます。
この "cdbiff for Outlook" のような、署名のないマクロを実行するためには、セキュリティレベルを「中」にする必要があります。
- [ツール] メニューの [マクロ] より [セキュリティ] をクリックして、セキュリティレベルを「中」に設定する

- セキュリティレベルを変更することにより、不用意にマクロを実行する(=ウイルス感染)リスクが高まります。
参考 : [Microsoft] マクロのセキュリティ レベルが「高」に変更される
コードを入力する
- [ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックする。

- [プロジェクト - Project1] ウィンドウで [Project1] をダブルクリックし、[Microsoft Outlook Objects] をダブルクリックする。
- [ThisOutlookSession] をダブルクリックしてコード ウィンドウを開く。
- コード ウィンドウに次のコードを入力する。
Public WithEvents myOlApp As Outlook.Application
Public Sub Application_Startup()
Set myOlApp = CreateObject("Outlook.application")
End Sub
Private Sub myOlApp_NewMail()
Call EjectCd
End Sub
Private Sub EjectCd()
Dim fso
Dim shell
Dim folder
Dim folderItem
Dim drive
Dim verbName
Set fso = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("Shell.Application")
Set folder = shell.NameSpace(17)
If folder.Title = "My Computer" Then
verbName = "E&ject"
Else
verbName = "取り出し(&J)"
End If
For Each folderItem In folder.Items
If folderItem.IsFileSystem Then
If Right(folderItem.Path, 2) = ":\" Then
Set drive = fso.GetDrive(folderItem.Path)
If drive.DriveType = 4 Then ' CD-ROM
Call folderItem.InvokeVerb(CStr(verbName))
Exit For
End If
End If
End If
Next
End Sub
2006/02/20 追記 : Outlook 2000 の場合は、1行目を以下のように修正する。
Dim WithEvents myOlApp As Outlook.Application
- [ファイル] メニューの [Project1 の上書き保存] または [VbaProject.OTM の上書き保存] をクリックする。

- Outlook を再起動してコードを実行する。
- Outlook 起動時にマクロを有効にする。

参考
更新履歴
- 2006.02.18 : 初回公開
- 2006.02.20 : Outlook 2000 の場合のコード追記
- 2006.03.26 : 動作確認環境に Outlook 2003 を追加
注意事項
このマクロを使用したことにより発生したいかなるトラブルも保障しません。
また、Outlookのマクロのセキュリティレベルを変更することにより、ウイルスに感染するリスクが高まります。
このマクロは利用者の責任においてお使いください。
そんな、大真面目にこのマクロを使う人はいないと思いますが・・・
|