Office: Aus der Kommandozeile lesen

Helfe beim Thema Aus der Kommandozeile lesen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich möchte aus Excel die Kommandozeile auslesen. Betrifft Excel 2003 und WinXP. C:\Programme\MicrosoftOffice\Office11\excel.exe d:\test.xls /e... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von SvenW, 17. Juli 2005.

  1. Aus der Kommandozeile lesen


    Hallo,

    ich möchte aus Excel die Kommandozeile auslesen.
    Betrifft Excel 2003 und WinXP.

    C:\Programme\MicrosoftOffice\Office11\excel.exe d:\test.xls /e D:\tt.csv

    Mit diesen Aufruf sollte sich Excel mit der Mappe test.xls und die tt.csv öffnen, so wie es unter Office 97 ist.

    Ich möchte dann nämlich folgendes aus der Kommandozeile lesen, den Mappennamen und den CSV-Namen.

    Hat jemand eine Idee?

    Sven

    :)
     
    SvenW, 17. Juli 2005
    #1
  2. Moin, Sven,

    als Nachfrage: Wenn Excel bereits als Anwendung aktiv ist, arbeitest Du mit Kommandozeilen? Vielleicht kannst Du mit dem Link etwas mehr anfangen als mit meiner Nachfrage... *wink.gif*
     
  3. Ich arbeite mit Kommandozeile, weil ich eine Java-Anwendung habe, die diese Kommandozeile genieriert und so mein Excel mit Anhang startet. Da das ganze dynamisch ist, also man vorher nicht weiß, wo sich die Bestandteile befinden, muß ich aus der Kommandozeile lesen. In Excel startet ein Makro, das dann versch. Aktionen mit dem csv macht usw.

    Danke für den Link, so was ähnliches hatte ich schon, denn wie gesagt unter 97 läuft's ja schon, nur unter 2003 nicht. Ich werd's mal ausprobieren und mich dann wieder melden, wenn's funktioniert.

    Sven
     
    SvenW, 19. Juli 2005
    #3
  4. Aus der Kommandozeile lesen

    Funktioniert leider auch nicht.
    Er ermittelt auf der Kommandozeile folgende Daten:
    C:\Programme\MicrosoftOffice\Office11\excel.exe d:\test.xls
    der Rest /e D:\tt.csv fehlt.

    Sven
     
    SvenW, 19. Juli 2005
    #4
  5. So geht's.

    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)

    Public Sub test()
    Dim CmdLine$, CmdArgs$(), i&, ArgNb&
    CmdLine = GetCommLine
    If Len(CmdLine) = 0 Then
    Exit Sub
    End If

    i = InStr(1, CmdLine, ThisWorkbook.FullName, 1)
    If i Then
    CmdLine = Mid$(CmdLine, 1, i - 1)
    Else
    Exit Sub
    End If
    If Right$(CmdLine, 1) = """" Then
    i = 2
    Else: i = 1
    End If

    CmdLine = Mid$(CmdLine, 1, Len(CmdLine) - i)
    CmdLine = Mid$(CmdLine, InStr(1, CmdLine, " /e", 1) + 3, Len(CmdLine)) & "/"

    Do Until Len(CmdLine) < 2
    i = InStr(CmdLine, "/")
    ArgNb = ArgNb + 1
    ReDim Preserve CmdArgs(1 To ArgNb)
    CmdArgs(ArgNb) = Mid$(CmdLine, 1, i - 1)
    CmdLine = Mid$(CmdLine, i + 1, Len(CmdLine))
    Loop

    For i = 1 To ArgNb
    CmdLine = CmdLine & "Parameter " & i & ": " & CmdArgs(i) & vbLf
    Next i

    MsgBox CmdLine
    End Sub

    Private Function GetCommLine() As String
    Dim Ret&, sLen&, Buffer$
    Ret = GetCommandLine
    sLen = lstrlen(Ret)
    If sLen Then
    GetCommLine = Space$(sLen)
    CopyMemory ByVal GetCommLine, ByVal Ret, sLen
    End If
    End Function

    Aufruf ist jetzt ein bißchen anders:
    C:\Programme\MicrosoftOffice\Office11\excel.exe /e/D:\tt.csv d:\test.xls

    Sven
     
    SvenW, 19. Juli 2005
    #5
Thema:

Aus der Kommandozeile lesen

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden