Wie der Name schon sagt (und auch ...
09.04.2016 02:40:31
Luc:-?
…Nepumuk!), Michael,
bezieht sich .BordersAround auf alle AußenRahmen eines ZellBereichs, nicht auf Diagonalen und auch nicht auf ZellZwischenLinien, denn die wdn ohnehin nur bei Auswahl einer ZellMatrix wirksam. Wie die 8…12 RahmenTeile und ihre 16 AnsprechMöglichkeiten zusammenwirken, kannst du mit den folgenden BspPgmm nachvollziehen. Dazu musst du nur eine Zelle, die fürs 2.Pgm eine (erfüllte) Regel enthalten sollte, bzw eine ZellBereichsMatrix (mind 4 Zellen in mind 2 Zeilen u. 2 Spalten) auswählen und das jeweilige Pgm starten:
Rem Reihenfolge: 1.Runde: LROU.DfDs=rybm.g>cc - 2.Runde: LOUR.IvIh=rybm.gc
Sub ZellRahmen()
Static bix As XlBordersIndex
Dim ix As Integer, bCol
bCol = Array(vbBlack, vbRed, vbYellow, vbBlue, vbMagenta, vbGreen, vbCyan, vbWhite)
With ActiveWindow.RangeSelection
For bix = bix + 1 + CInt(bix > 0) To bix + 6 + CInt(bix > 0)
With .Borders(bix)
.LineStyle = Array(xlContinuous, xlDash)((bix - 1) \ 6)
.Weight = Array(xlThin, xlMedium)((bix - 1) \ 6)
.Color = bCol((bix - 1) Mod 6 + 1)
End With
Next bix
bix = bix * Abs(bix = 7)
End With
End Sub
Rem Reihenfolge: ORLU=rybm
Sub BedFormRahmen()
Dim ix As Integer, erg$(3), bCol, bIdx, bSym, cf As FormatCondition
bCol = Array(vbBlack, vbRed, vbYellow, vbBlue, vbMagenta, vbGreen, vbCyan, vbWhite)
bIdx = Array(xlLeft, xlRight, xlTop, xlBottom)
bSym = Array("L", "R", "O", "U")
With ActiveWindow.RangeSelection.FormatConditions
If CBool(.Count) Then Set cf = .Item(1) Else Exit Sub
End With
For ix = 1 To 4
With WorksheetFunction
If IsNull(cf.Borders(.Small(bIdx, ix)).LineStyle) Then _
cf.Borders(.Small(bIdx, ix)).Color = bCol(ix)
erg(ix - 1) = bSym(.Match(.Small(bIdx, ix), bIdx, 0) - 1) & ": " & _
.Small(bIdx, ix) & "=" & .Match(cf.Borders(.Small(bIdx, ix)).Color, _
bCol, 0) - 1 & ": &h" & Hex(cf.Borders(.Small(bIdx, ix)).Color)
End With
Next ix
MsgBox Join(erg, vbLf): Set cf = Nothing
End Sub
Wenn man die RahmenIndizes aufsteigend ordnet, erhält man so 3 verschiedene Reihenfolgen, was die beiden Pgmm demonstrieren.
Übrigens, die BedingtFormatRegel sollte vom (klassischen) Typ 1 bzw 2 sein, sonst passt das Objekt cf nicht!
Morrn, Luc :-?