Sub CheckForGarbledCharacters()
Dim rng As Range
Dim i As Integer
Dim garbledFound As Boolean
Dim unicodeVal As Long
garbledFound = False
' すべてのワークシートをチェックします。
For Each ws In ThisWorkbook.Worksheets
For Each cell In rng
If Not ((32 <= unicodeVal And unicodeVal <= 126) Or (12353 <= unicodeVal And unicodeVal <= 12447) Or (12448 <= unicodeVal And unicodeVal <= 12543) Or (65382 <= unicodeVal And unicodeVal <= 65439) Or (19968 <= unicodeVal And unicodeVal <= 40959)) Then
MsgBox "文字化けが見つかりました: " & vbCrLf & _
"ワークシート: " & ws.Name & vbCrLf & _
"セル: " & cell.Address & vbCrLf & _
"セルの値: " & cell.Value & vbCrLf & _
"文字化けしている文字: " & char, vbExclamation
garbledFound = True
Exit For
End If
Next i
' 文字化けが見つかった場合、次のワークシートへ移動します。
If garbledFound Then Exit For
If garbledFound Then Exit For
If Not garbledFound Then
MsgBox "文字化けが見つかりませんでした。", vbInformation
End If
End Sub