このマクロを Windows 7 上の Excel 2010 で作成してテストし、別の Windows 7 コンピューターでも Excel 2007 でテストしました。両方で動作しましたが、仕事用コンピューター (Windows 7、Excel 2007) で使用しようとすると、最初の「次へ」ステートメントで「タイプ不一致エラー」。調べたところ、「next」の代わりに「Exit For」を使用できることがわかりましたが、「End If」を含む次の行について不平を言うだけです。今度は、「ブロック If なしの End If」と主張します。これが 1 つの Win7\Excel 2007 コンピューターでどのように機能するのか理解できないと思いますが、他のコンピューターではそうではありません。
マクロは、メールの件名で選択されたセルの値を検索するだけで (セルがまだ色付けされていない場合)、一致する場合はセルの色を変更します。
Sub MultipleCellSubjectSearch()
'This macro searches for the selected cell values (if there is no cell color), when it finds a match it turns the cell color yellow
Dim olApp As Outlook.Application
Dim olNamespace As Outlook.Namespace
Dim olItem As MailItem
Dim olInbox As Outlook.MAPIFolder
Dim olFolder As Outlook.MAPIFolder
Dim oCell As Range
'The following sets the Outlook folder to search
Set olApp = New Outlook.Application
Set olNamespace = olApp.GetNamespace("MAPI")
Set olInbox = olNamespace.GetDefaultFolder(olFolderInbox)
'The following searches for cell value string in subject
For Each oCell In Selection
If oCell.Interior.Pattern = xlNone Then
For Each olItem In olInbox.Items
If InStr(olItem.Subject, (oCell.Value)) <> 0 Then
oCell.Interior.ColorIndex = 6
End If
Next
End If
Next
Set olInbox = Nothing
Set olNamespace = Nothing
Set olApp = Nothing
End Sub
誰かにアイデアがあれば、大歓迎です。