|
おはようございます。
>>罫線は同じですね、それを扱うオブジェクトが違うだけですね
>扱うオブジェクトが違うとは、どういう意味になるのでしょうか?
>もうすこし、詳しく説明が出来るのであれば、教えてください。
前回投稿の
> MsgBox "ただ、この罫線を扱うオブジェクトが違います" & vbCrLf & _
> "セルA1の下段罫線オブジェクト Is セルA2の上段罫線オブジェクト =" > & (bdr1 Is bdr2
このコードの結果を言っているのですが、Falseと表示されませんでしたか?
私も最初混同していたんですが、
Rangeオブジェクト = セル ではない
Borderオブジェクト = 罫線 ではない
同じ罫線を扱っていても、窓口(Borderオブジェクト)が違うという
ことが有り得る ということなんです。
今回のばあい、セルA1の Borders(xlEdgeBottom)
セルA2のBorders(xlEdgeTop)、
見たとおり、オブジェクトが違いますが、同じ罫線を扱っている
ということです。
↑は、オブジェクトの記述が違うので何となく、違うオブジェクトだと
認識できると思いますが、もっとわかりにくい事例もあります。
新規ブックの標準モジュールに
Sub test2()
Dim bdr1 As Border
Dim bdr2 As Border
Range("a:a").Delete
With Range("a1")
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 3
End With
Set bdr1 = .Borders(xlEdgeBottom)
Set bdr2 = .Borders(xlEdgeBottom)
End With
MsgBox "セルA1の下段罫線のオブジェクトbdr1 と 同じくセルA1の下段罫線のオブジェクトbdr2" & vbCrLf & _
"を比較します"
MsgBox "LineStyleプロパティ" & vbCrLf & _
"bdr1=" & bdr1.LineStyle & vbCrLf & _
"bdr2=" & bdr2.LineStyle & vbCrLf & vbCrLf & _
"Weightプロパティ" & vbCrLf & _
"bdr1=" & bdr1.Weight & vbCrLf & _
"bdr2=" & bdr2.Weight & vbCrLf & vbCrLf & _
"ColorIndexプロパティ" & vbCrLf & _
"bdr1=" & bdr1.ColorIndex & vbCrLf & _
"vdr2=" & bdr2.ColorIndex & vbCrLf & vbCrLf & _
"と同じですが、"
MsgBox "bdr1 is bdr2 = " & (bdr1 Is bdr2) & vbCrLf & _
"違うという結果が表示されます"
End Sub
test2の結果とコードを照らし合わせてみてください
以前、目安箱でこんな投稿をしました。
www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=164;id=FAQ
これでも疑問が解決しなかったら、ピンポイントで追加質問をしてください
|
|