Absolut vs Relativ¶
Gemeint ist hier die Art und weise, wie man bei der Aufzeichnung von Makros die Positionierungen bzw. Bewegungen im Zellbereich per VBA-Code interpretiert.
Hier mal zwei Codes, die einen Vergleich ermöglichen:
Sub AbsoluteAufzeichnung()
'
' AbsoluteAufzeichnung Makro
' In dieser Aufzeichnung werden nur absolute Zellbezüge verwendet.
'
' Tastenkombination: Strg+Umschalt+A
'
Range("A1:A4").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("A1").Select
ActiveCell.FormulaR1C1 = "Name:"
Range("A2").Select
ActiveCell.FormulaR1C1 = "Vorname:"
Range("A3").Select
ActiveCell.FormulaR1C1 = "Wohnort:"
Range("A4").Select
ActiveCell.FormulaR1C1 = "Telefon:"
Range("A1:A4").Select
Selection.Font.Bold = True
End Sub
Bitte im Vergleich der folgenden Relativen Aufzeichnung genau auf die VBA-Befehle achten.
Sub RelativeAufzeichnung()
'
' RelativeAufzeichnung Makro
' In dieser Aufzeichnung werden nur relative Bezüge verwendet.
'
' Tastenkombination: Strg+Umschalt+B
'
ActiveCell.Range("A1:A4").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
ActiveCell.Select
ActiveCell.FormulaR1C1 = "Name:"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "Vorname:"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "Wohnort:"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "Telefon:"
ActiveCell.Offset(-3, 0).Range("A1:A4").Select
Selection.Font.Bold = True
End Sub
Der Schalter für diese Option also bitte genaustens vor einer Makroaufzeichnung bedenken und für die eigenen Umsetzung hinterfragen und testen.