Démarrez l'invite de commande avec le code ci-dessous Vous pouvez exécuter Python.
Dim suji1 As String
Dim suji2 As String
Dim WSH
Dim wExec
Dim cmd_str As String
suji1 = Range("D4").Value ''Obtenir des nombres à partir de cellules
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) ''Recevoir les résultats de Python
Set wExec = Nothing
Set WSH = Nothing
''Création d'objets
Set WSH = CreateObject("WScript.Shell")
''Chemin du fichier Python à exécuter
py_file = ThisWorkbook.Path & "\Python.py"
''Création de commandes
cmd_str = "python " & py_file & " " & suji1 & " " & suji2
cmd_str = Replace(cmd_str, "\", "/")
''Exécution de la commande
Set wExec = WSH.Exec("%ComSpec% /c " & cmd_str)
Avec cela, vous pouvez facilement démarrer l'invite de commande et Vous pouvez démarrer Python.
''Création de commandes
cmd_str = "python " & py_file & " " & suji1 & " " & suji2
suji1 et suji2 sont des arguments. Ainsi, vous pouvez obtenir la valeur de la cellule, etc. et la transmettre.
Si vous entrez une valeur dans les nombres 1 et 2, elle sera calculée et envoyée à la réponse.
Au fait, Python est un tel 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)
Une fois exécuté, cela ressemble à ceci.
Cette fois, j'ai commencé Python avec VBA, mais puisque je l'exécute en fait à l'aide de l'invite de commande Je sens que je peux faire plus si je l'applique. Aussi, je le mettrai à jour si j'apprends.
Recommended Posts