Microsoft Excel

Herbers Excel/VBA-Archiv

Code verkürzen, ohne select und ohne With


Betrifft: Code verkürzen, ohne select und ohne With von: Dieter(Drummer)
Geschrieben am: 27.02.2017 17:40:33

Guten Tag VBA Spezialisten,

geht dieser Code noch kürzer und ohne Select und ohne With?:

Sub XY_1()
Range("A2:A4").Select
    With Selection.Font
        .Name = "Arial"
        .Size = 18
    End With
End Sub

Diese Variante geht auch, aber ist die optimal?
Sub XY_2()
Range("A2:A4").Font.Name = "Arial"
Range("A2:A4".Font.Size = 18
    End With
End Sub

Mit der Bitte um Hilfe und
Gruß, Dieter(Drummer)

  

Betrifft: ..das soll gehen? End With ....... von: robert
Geschrieben am: 27.02.2017 17:48:25

oT


  

Betrifft: AW: Kein Kommentar! owT von: Dieter(Drummer)
Geschrieben am: 27.02.2017 17:53:38




  

Betrifft: Die With-Klammer … von: RPP63
Geschrieben am: 27.02.2017 18:10:30

… ist schon das kürzeste, Dieter.
Nicht in Bezug auf Code-Zeilen, sondern auf Laufzeit:

With Range("A2:A4").Font
   .Name = "Arial"
   .Size = 18
End With
Gruß Ralf


  

Betrifft: AW: Danke Ralf für Rückmeldung und Info ... von: Dieter(Drummer)
Geschrieben am: 27.02.2017 18:16:23

... und noch einen schönen Abend.
Gruß, Dieter(Drummer)


  

Betrifft: AW: Code verkürzen, ohne select und ohne With von: Daniel
Geschrieben am: 27.02.2017 18:29:06

Hi
Das Optimum wäre mit With, aber ohne Select

Sub XY_2()
With Range("A2:A4")
    .Font.Name = "Arial"
    .Font.Size = 18
End With
End Sub
Wobei mit/ohne With für die Programmierung relevant ist und für die Laufzeit keinen oder nur einen geringen Einfluß hat, während das Select die Laufzeit stark beeinflußt.

Gruß Daniel


  

Betrifft: AW: Danke Daniel für Rückmeldung und ... von: Dieter(Drummer)
Geschrieben am: 27.02.2017 18:39:30

... Hinweis und werde es berücksichtigen.
Gruß und einen schöen Abend, Dieter(Drummer)


  

Betrifft: AW: Code verkürzen, ohne select und ohne With von: Gerd L
Geschrieben am: 27.02.2017 19:30:13

Hallo Dieter,

soo ist es hübscher; zumindest wenn die Variable mehrfach verwendet wird. :-)

Sub XY_4()

    Dim R As Range
    
    
    Set R = Range("A2:A4")
    
    With R.Font
        .Name = "Arial"
        .Size = 18
    End With
    
    Set R = Nothing


End Sub
Gruß Gerd


  

Betrifft: Sehr richtig! Mache ich des Öfteren! ;-) owT von: Luc:-?
Geschrieben am: 27.02.2017 19:47:44

:-?


  

Betrifft: ...wobei dann natürlich das 'With'-Konstrukt ... von: Luc:-?
Geschrieben am: 27.02.2017 19:56:14

…auch verzichtbar sein könnte, Gerd (& Dieter):

Sub XYZ_5()
    Const adRB$ = "A2:A4"
    Dim rB As Range
    Set rB = Range(adRB)
    rB.Font.Name = "Arial": rB.Font.Size = 18
    '…
    Set rB = Nothing
End Sub
Gruß, Luc :-?

Besser informiert mit …


  

Betrifft: AW: ...wobei dann natürlich das 'With'-Konstrukt ... von: Daniel
Geschrieben am: 27.02.2017 21:50:15

Nunja, der Vorteil der With-Klammer ist ja, dass man in vielen Fällen auf die Variable verzichten kann und trotzdem das Teilobjekt nur einmal hinschreiben muss.
Hilft ein bisschen, die Variablenanzahl in grösseren Projekten auf einer überschaubaren Menge zu halten.
Gruß Daniel


  

Betrifft: Sicher, aber mitunter wird dafür d.Pgm selber ... von: Luc:-?
Geschrieben am: 27.02.2017 23:38:19

…unübersichtlich, Daniel; ;-]
und dann gibt's ja noch den Fall, dass man gleichzeitig (nicht ineinandergeschachtelt!) mehrere With-Konstrukte gebrauchen könnte. Dann muss man das ohnehin so machen.
Gruß, Luc :-?


  

Betrifft: Die Kunst des Programmieren besteht u.a. darin .. von: Daniel
Geschrieben am: 28.02.2017 01:17:56

... erkennen zu können, wann es sinnvoller ist eine Variable anzulegen und wann die With-Klammer ausreicht.
Als dritte Option gibt es noch natürlich die Möglichkeit,die Variable als Objekt der With-Klammer zu verwenden.

Gruß Daniel




  

Betrifft: Dann, Let's be artifici… oh, artistically! ;-] owT von: Luc:-?
Geschrieben am: 28.02.2017 01:47:24

:-?


  

Betrifft: AW: Danke Luc:-?, auch eine interessante ... von: Dieter(Drummer)
Geschrieben am: 28.02.2017 09:20:42

... Variante.
Gruß, Dieter(Drummer)


Beiträge aus den Excel-Beispielen zum Thema "Code verkürzen, ohne select und ohne With"