Starten Sie die Eingabeaufforderung mit dem folgenden Code Sie können Python ausführen.
    Dim suji1    As String
    Dim suji2    As String
    
    Dim WSH
    Dim wExec
    Dim cmd_str    As String
    
    suji1 = Range("D4").Value ''Holen Sie sich Zahlen aus Zellen
    suji2 = Range("D5").Value
    
    Set WSH = CreateObject("WScript.Shell")
    py_file = ThisWorkbook.Path & "\Python.py"
    cmd_str = "python " & py_file & " " & suji1 & " " & suji2
    cmd_str = Replace(cmd_str, "\", "/")
    Set wExec = WSH.Exec("%ComSpec% /c " & cmd_str)
    
    Do While wExec.Status = 0
        DoEvents
    Loop
    
    Range("D6").Value = Val(wExec.StdOut.ReadAll) ''Erhalten Sie Ergebnisse von Python
    Set wExec = Nothing
    Set WSH = Nothing
    ''Objekterstellung
    Set WSH = CreateObject("WScript.Shell")
    ''Auszuführender Python-Dateipfad
    py_file = ThisWorkbook.Path & "\Python.py"
    ''Befehlserstellung
    cmd_str = "python " & py_file & " " & suji1 & " " & suji2
    cmd_str = Replace(cmd_str, "\", "/")
    ''Befehlsausführung
    Set wExec = WSH.Exec("%ComSpec% /c " & cmd_str)
    
Mit diesem können Sie einfach die Eingabeaufforderung und starten Sie können Python starten.
    ''Befehlserstellung
    cmd_str = "python " & py_file & " " & suji1 & " " & suji2
suji1 und suji2 sind Argumente. So können Sie den Wert aus der Zelle usw. abrufen und übergeben.
Wenn Sie einen Wert in Nummer 1 und Nummer 2 eingeben, wird dieser berechnet und an die Antwort ausgegeben.

Python ist übrigens so ein Code.
import sys
def sum(suji1, suji2):
    return suji1 + suji2
if __name__ == "__main__":
    argv = sys.argv
    suji1 = str(argv[1])
    suji2 = str(argv[2])
    total = sum(suji1, suji2)
    print(total)
Wenn es ausgeführt wird, sieht es so aus.

Dieses Mal habe ich Python mit VBA gestartet, aber da ich es tatsächlich über die Eingabeaufforderung ausführe Ich habe das Gefühl, dass ich mehr tun kann, wenn ich es anwende. Außerdem werde ich es aktualisieren, wenn ich lerne.
Recommended Posts