|
弘美 さん、Asakiさん、おはようございます。
>早速ですがVBAでセルとセルの内容を比較する方法を調べています。
>内容だけならわかるのですがセルの内容全て(書式(網掛けの色とか文字色など)、コメントの有無、内容、)比較したいのです。
>どなたか教えてくださいませんか。 よろしくお願い致します。
Asakiさんがおっしゃっているように地道に比較をするということは
同感なんですが・・。
CallByNameという関数を使用してみると少しだけコードが簡単になるかもしれませんよ。
一例ですが、
'====================================================
Type att
p_type As Long 'p_nameが 0:プロパティ 1:オブジェクト
p_name As String 'プロパティ名
sp_name As String 'p_nameがオブジェクトの場合のプロパティ名
End Type
'====================================================
Sub Samp1()
Dim myRange As Range
Dim myPrName(1 To 6) As att
Dim i As Integer
Dim mes As String
myPrName(1).p_name = "NumberFormatLocal"
myPrName(1).p_type = 0
myPrName(2).p_name = "value"
myPrName(2).p_type = 0
myPrName(3).p_name = "Interior"
myPrName(3).p_type = 1
myPrName(3).sp_name = "colorindex"
myPrName(4).p_name = "Interior"
myPrName(4).p_type = 1
myPrName(4).sp_name = "PatternColorIndex"
myPrName(5).p_name = "Font"
myPrName(5).p_type = 1
myPrName(5).sp_name = "ColorIndex"
myPrName(6).p_name = "Style"
myPrName(6).p_type = 0
Set myRange = Selection
For i = 1 To 6
With myPrName(i)
If .p_type = 0 Then
mes = mes & .p_name & vbTab & _
CallByName(myRange, .p_name, VbGet) & vbCr
Else
Set obj = CallByName(myRange, .p_name, VbGet)
mes = mes & .p_name & "." & .sp_name & vbTab & _
CallByName(obj, .sp_name, VbGet) & vbCr
End If
End With
Next i
MsgBox mes
End Sub
確認して下さい
|
|