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:

Quellcode 4 Beispiel Absolute Aufzeichnung
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.

Quellcode 5 Beispiel Relative Aufzeichnung
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.