JOANNEUMHomeForschungsbereicheNeuSite MapRESEARCH      englishsuchenHilfe

vorheriges Kapitel &Umlbersicht Inhalt Hilfe Beispiele laden

Namen verwenden

Das Arbeiten mit "Namen" ist eine der wesentlichen Stärken von EXCEL. Namen werden zwar meist dazu verwendet, um Zellbereiche in Tabellen zu beschreiben, aber Namen sind mehr: Sie sind Variable, denen Werte zugewiesen werden können. Dieser Wert kann eine Zelladresse sein, aber genausogut eine Zahl, ein Text, eine Rechenformel usw.

Namen werden in Arbeitsmappen gespeichert. Sie "gehören" zur Arbeitsmappe, in der sie definiert sind. Namen sind Objekte; ihr Container-Objekt ist Names".

Laden Den kompletten Code dieses Abschnittes finden Sie in der Datei "Namen.xls".

Mit Angabe der Zellen  Angenommen, Sie wollen die Zellen A1:A3 in "Tabelle1" der aktiven Arbeitsmappe mit dem Namen "Namensbereich" versehen. Dies geschieht im VBA-Code entweder so:

Sub NameFestlegen1()

  Sheets("Tabelle1").Select
  Range("A3:B5").Name = "Testbereich"
  MsgBox Range("Testbereich").Address(External:=True)

End Sub


oder so:

Sub NameFestlegen1a()
  
  ActiveWorkbook.Names.Add Name:="Namensbereich", _
    RefersToR1C1:="=Tabelle1!R1C1:Z3S1"

End Sub


Ausgewählte Zellen benennen  Wenn Sie beim Programmieren noch gar nicht wissen können, welche Zellen mit einem Namen benannt werden sollen, müssen Sie so vorgehen:

Sub NameFestlegen2()

  ActiveWorkbook.Activate
  Sheets("Tabelle1").Select
  [A1].CurrentRegion.Activate
  ActiveWorkbook.Names.Add Name:="Arbeitsbereich", _
    RefersTo:="=" + Selection.Address
  MsgBox Range("Arbeitsbereich").Address(External:=True)

End Sub


In diesem Codebeispiel wechselt EXCEL tatsächlich in jenes Blatt, in dem der zu benennende Bereich liegt. Das können Sie vermeiden, indem Sie schreiben:

Sub NameFestlegen3()

  ActiveWorkbook.Names.Add Name:="Arbeitsbereich", _
    RefersTo:="=" + ActiveWorkbook.Sheets("Tabelle1"). _
    [A1].CurrentRegion.Address(External:=True)
  MsgBox Range("Arbeitsbereich").Address(External:=True)
End Sub


Zellen eines Zellbereichs-Objektes mit Namen benennen

Sub NameFürBereichsObjektZellenBilden()

  Set BereichsObjekt = ActiveWorkbook.Sheets("Tabelle1"). _
    [A1].CurrentRegion
  ActiveWorkbook.Names.Add Name:="Namensbereich", _
    RefersTo:="=" + BereichsObjekt.Address(External:=True)
  MsgBox Range("Namensbereich").Address(External:=True)
    
End Sub


Aus benannten Zellen ein Bereichs-Objekt bilden

Sub ObjektAusNamensbereichBilden()

  Set BereichsObjekt = Evaluate(ActiveWorkbook. _
    Names("Namensbereich").Value)
  MsgBox BereichsObjekt.Address(External:=True)
  
End Sub


Zellen eines Bereichs-Objektes benennen

Sub NameFürBereichsObjektZellenBilden()

  Set BereichsObjekt = ActiveWorkbook.Sheets("Tabelle1"). _
    [A1].CurrentRegion
  ActiveWorkbook.Names.Add Name:="Namensbereich", _
    RefersTo:="=" + BereichsObjekt.Address(External:=True)
  MsgBox Range("Namensbereich").Address(External:=True)
    
End Sub


Namensbereich in den Vordergrund bringen  Wenn Sie wollen, daß EXCEL die Tabelle und Zellen, auf die ein Name verweist, in den Vordergrund bringt (aktiviert), dann verwenden Sie dazu den folgenden Code:

Sub NamensbereichAnspringen1()

  Application.Goto Reference:= _
    ActiveWorkbook.Names("Namensbereich").Name
  
End Sub


Wenn Sie wollen, daß die linke obere Ecke des benannten Bereiches in die linke obere Ecke des Fensters gestellt wird, müssen Sie anordnen:

Sub NamensbereichAnspringen2()

  Application.Goto Reference:= _
    ActiveWorkbook.Names("Namensbereich").Name, _
    Scroll:=True
  
End Sub


Benannte Zellen mit Wert versehen Im ersten Beispiel wird der Bereich in den Vordergrund gebracht:

Sub NamensbereichAusfüllen1()

  Application.Goto Reference:=ActiveWorkbook. _
    Names("Namensbereich").Name
  Selection.Value = "Ausgefüllt"
 
End Sub


Beispiel 2 stellt den Text "Ausgefüllt" in die Zellen des benannten Bereiches, ohne zum Bereich zu wechseln:

Sub NamensbereichAusfüllen2()

  Evaluate(ActiveWorkbook.Names("Namensbereich").Value).Value = "Test"
 
End Sub


Um dieses Kunststück zusammenzubringen, müssen wir die "Evaluate"-Methode verwenden. Sie bildet aus dem Text, den

ActiveWorkbook.Names("Namensbereich").Value 


zurückgibt ("[Namen.XLS]Tabelle1!Z1S1:Z3S1") ein Bereichs-Objekt. Und dem weisen wir, Zelle für Zelle, nochmals mit "Value" die Zeichenfolge "Test" zu.

vorheriges Kapitel &Umlbersicht Inhalt Hilfe Beispiele laden

------------

Copyright © by JOANNEUM RESEARCH Forschungsgesellschaft mbH