Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
612to616
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Konsolenparameter abfragen

Konsolenparameter abfragen
20.05.2005 09:49:02
Weisser
Hallo alle miteinander,
ich habe ein kleines Problem. Ich möchte per VBA die Komandozeilenparameter abfragen, welche beim starten von Excel mit übergeben wurden.
Mein Aufruf sieht so aus:
"C:\Program Files\Microsoft Office\Office11\Excel.exe /e" "C:\Daten neu\Datenbearbeiten.xla parameter1"
Frage: Wie kann ich den String parameter1 mit vba abfragen und verwenden, sobald Excel gestartet ist?
Vielen Dank schon einmal im vorraus für eure Bemühungen.
Mit freundlichem Gruß
A. Weisser

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Konsolenparameter abfragen
20.05.2005 10:23:08
Weisser
Hallo Bernd.
Vielen Dank für den Link.
Leider gibt diese Funktion mir alles nach dem /e zurück, aber ohne parameter1.
Der fehlt leider im String dann......
Gruß Alex
AW: Konsolenparameter abfragen
20.05.2005 10:41:25
bst
Hallo Alex,
der Parameter muß vor den Dateinamen. Wie's mit Leerzeichen darin aussieht habe ich noch nicht probiert.
Zum Aufrufparameter, wenn Du sowas nimmst:
excel /e/4711 d:\daten\kommandozeile04.xls
ergibt's mit unterem Code "4711".
Übrigens, warum machst Du denn eigentlich nicht einfach sowas:
set myParam=schnickschnack
excel Meinedatei.xls
und liest in Excel die Umgebungsvariable myParam via Environ() aus ?
Ist sich IMHO viel einfacher ...
HTH, Bernd
--
Option Explicit

Private Sub Workbook_Open()
Call GetCmdLineParam
End Sub

--
Option Explicit
Private Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)

Private Function GetCommLine() As String
Dim RetStr As Long, SLen As Long
Dim Buffer As String
'Get a pointer to a string, which contains the command line
RetStr = GetCommandLine
'Get the length of that string
SLen = lstrlen(RetStr)
If SLen > 0 Then
'Create a buffer
GetCommLine = Space$(SLen)
'Copy to the buffer
CopyMemory ByVal GetCommLine, ByVal RetStr, SLen
End If
End Function

Sub GetCmdLineParam()
Dim myParam As String
Dim i As Integer, j As Integer

myParam = GetCommLine
'Prüfen, ob "/e/" in der Befehlszeile enthalten ist
i = InStr(LCase(myParam), "/e/")
If i > 0 Then
myParam = Mid$(myParam, i + 3)
j = InStr(myParam, "/")
If j If j > 0 Then myParam = Left(myParam, j - 1)
MsgBox "Aufrufparameter: " & myParam
Else
MsgBox "Die Kommandozeile ist: " & myParam
End If
End Sub
Anzeige
AW: Konsolenparameter abfragen
20.05.2005 11:40:30
Weisser
Hallo Bernd
danke für diesen Lösungsvorschlag.
Werde ihn ausprobieren.
Viele Grüße Alex

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige