Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel beim start Parameter mitgeben

Forumthread: Excel beim start Parameter mitgeben

Excel beim start Parameter mitgeben
Steff
Hallo!
Ich habe die Hinweise im Thread https://www.herber.de/forum/archiv/652to656/t654769.htm#654769 verwendet, um Excel beim Start einen Parameter mitzugeben. Funktioniert unter Excel 2003 perfekt!
Aber die Datei soll auch mit Excel 2010 laufen, nur das stürzt mit diesem Makro ab!
Weiss jemand was man da machen kann?
Danke
Steff
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Excel beim start Parameter mitgeben
29.11.2011 19:50:39
Nepumuk
Hallo,
ersetze in der Prozedur diese Zeilen:
CmdLine = GetCommandLine() 'get the cmd-line string
CmdLine = Left$(CmdLine, InStr(CmdLine & vbNullChar, vbNullChar) - 1)

durch diese:
CmdLine = Get_CommandLine

Dazu gibt es diese Funktion mit den entsprechenden API's
Private Declare Function GetCommandLine Lib "kernel32.dll" Alias "GetCommandLineA" () As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
    ByRef pDst As Any, _
    ByRef pSrc As Any, _
    ByVal ByteLen As Long)
Private Declare Function lstrlen Lib "kernel32.dll" Alias "lstrlenA" ( _
    ByVal lpString As Any) As Long

Public Function Get_CommandLine() As String
    Dim lngReturn As Long, lngLength As Long
    lngReturn = GetCommandLine
    lngLength = lstrlen(lngReturn)
    If lngLength Then
        Get_CommandLine = Space$(lngLength)
        Call CopyMemory(ByVal Get_CommandLine, ByVal lngReturn, lngLength)
    End If
End Function

Gruß
Nepumuk
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Excel Startparameter effektiv nutzen


Schritt-für-Schritt-Anleitung

Um Excel mit einem Startparameter zu öffnen, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor in Excel, indem du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deinDokumentName)" → Einfügen → Modul.

  3. Kopiere folgenden Code in das Modul:

    Private Declare Function GetCommandLine Lib "kernel32.dll" Alias "GetCommandLineA" () As Long
    Private Declare Function lstrlen Lib "kernel32.dll" Alias "lstrlenA" (ByVal lpString As Any) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef pDst As Any, ByRef pSrc As Any, ByVal ByteLen As Long)
    
    Public Function Get_CommandLine() As String
       Dim lngReturn As Long, lngLength As Long
       lngReturn = GetCommandLine
       lngLength = lstrlen(lngReturn)
       If lngLength Then
           Get_CommandLine = Space$(lngLength)
           Call CopyMemory(ByVal Get_CommandLine, ByVal lngReturn, lngLength)
       End If
    End Function
  4. Ersetze die Zeilen in deinem bestehenden Code, die auf GetCommandLine verweisen, durch Get_CommandLine.

  5. Teste dein Makro, um sicherzustellen, dass es mit den Excel-Versionen 2003 und 2010 funktioniert.


Häufige Fehler und Lösungen

  • Excel stürzt ab: Wenn Excel bei der Ausführung eines Makros abstürzt, überprüfe, ob du die richtigen API-Deklarationen verwendet hast. In der Regel sind die GetCommandLine und CopyMemory Funktionen kritisch.

  • Parameter werden nicht übergeben: Stelle sicher, dass der Aufruf der Get_CommandLine-Funktion korrekt in deinem Code implementiert ist.


Alternative Methoden

Falls das Übergeben von Excel-Startparametern über VBA nicht funktioniert, kannst du auch die Windows-Eingabeaufforderung verwenden:

  1. Drücke Win + R, um das Ausführen-Fenster zu öffnen.
  2. Gib den folgenden Befehl ein:

    "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" /parameter

    Ersetze /parameter durch den spezifischen Parameter, den du übergeben möchtest.


Praktische Beispiele

Hier sind einige typische Startparameter, die du verwenden könntest:

  • /e: Öffnet Excel ohne eine leere Arbeitsmappe.
  • /s: Startet Excel im abgesicherten Modus.
  • /m: Startet Excel ohne Makros.

Du kannst diese Parameter kombinieren, um spezifische Funktionen zu aktivieren oder zu deaktivieren, während Excel gestartet wird.


Tipps für Profis

  • Verwende Fehlerbehandlungsroutinen in deinem VBA-Code, um mögliche Abbrüche während der Ausführung zu vermeiden.
  • Halte deinen Code auf dem neuesten Stand und teste ihn regelmäßig, um sicherzustellen, dass er mit neuen Excel-Versionen kompatibel ist.

Indem du diese Praktiken anwendest, kannst du die Nutzung von Excel-Startoptionen optimieren und die Funktionalität deiner Excel-Anwendungen verbessern.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein Makro auch in neueren Excel-Versionen funktioniert?
Stelle sicher, dass du die neuesten API-Funktionen verwendest und teste dein Makro in verschiedenen Excel-Versionen.

2. Was tun, wenn Excel beim Starten mit Parametern nicht reagiert?
Überprüfe die Syntax der übergebenen Excel-Parameter und stelle sicher, dass keine zusätzlichen Leerzeichen oder falschen Zeichen verwendet werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige