【注意】の内容は、余りにも不親切だと思って・・・
数字と文字列とを比較するそれぞれの関数は以下のようです。まあ、Excel用の関数なんて生まれて始めてのど素人のやっつけ仕事。十分にテストされてご利用、ご改変ください。
Public Function StrComparison(ByVal R1 As Range, ByVal R2 As Range, ByVal returnText As String, ByVal isMusic As String) As String
Dim returnValue As String
If Len(R1 & "") * Len(R2 & "") = 0 Then
returnValue = CutStr(returnText, ",", 4)
Else
Select Case StrComp(R1, R2, vbTextCompare)
Case -1
returnValue = CutStr(returnText, ",", 1)
Case 0
returnValue = CutStr(returnText, ",", 2)
Case 1
returnValue = CutStr(returnText, ",", 3)
Case Else
returnValue = ""
End Select
End If
If returnValue = isMusic Then
' 音楽
End If
StrComparison = returnValue
End Function
Public Function NumComparison(ByVal R1 As Range, ByVal R2 As Range, ByVal returnText As String, ByVal isMusic As String) As String
Dim returnValue As String
If Len(R1 & "") * Len(R2 & "") = 0 Then
returnValue = CutStr(returnText, ",", 4)
Else
Select Case NumComp(R1, R2)
Case -1
returnValue = CutStr(returnText, ",", 1)
Case 0
returnValue = CutStr(returnText, ",", 2)
Case 1
returnValue = CutStr(returnText, ",", 3)
Case Else
returnValue = ""
End Select
End If
If returnValue = isMusic Then
' 音楽
End If
NumComparison = returnValue
End Function
Public Function NumComp(ByVal V1 As Double, ByVal V2 As Double) As Integer
Dim R As Integer
If V1 < V2 Then
R = -1
ElseIf V1 = V2 Then
R = 0
ElseIf V1 > V2 Then
R = 1
End If
NumComp = R
End Function
Public Function CutStr(ByVal Text As String, _
ByVal Separator As String, _
ByVal N As Integer) As String
Dim strDatas() As String
strDatas = Split("" & Separator & Text, Separator, , 0)
CutStr = strDatas(N * Abs(N <= UBound(strDatas)))
End Function
補足
詳細なプログラムを記述していただきありがとうございました。 私には分からない事だらけですが =IF(H34<G34,"",IF(H34=G34,"同","★")) この関数がセルC1にあるとすると、教えていただいたプログラムのどこにそのセルC1を記述すればよいのでしょうか。 あと、R1とR2にはどこか該当するセルを指定する必要がありますか。 また、音楽を鳴らすための Shell "C:\Program Files\Windows Media Player\wmplayer.exe C:\音楽ファイル.wav", 0 という記述は If returnValue = isMusic Then この下に書けばいいのでしょうか。例えば、最初のご回答のように MsgBox "XXX" を出す場合の位置も If returnValue = isMusic Then の下あたりでしょうか。