Exécutez Python avec VBA

Être capable de lire cet article

  1. Vous pourrez démarrer ** Invite de commandes ** avec ** Excel VBA **
  2. Vous pourrez exécuter ** Python ** à partir de ** Excel VBA **

Lancer une invite de commande dans Excel VBA

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

Commentaire

    ''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.

En fait bouger

Si vous entrez une valeur dans les nombres 1 et 2, elle sera calculée et envoyée à la réponse. スクリーンショット (3).png

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. スクリーンショット (5).png

finalement

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

Exécutez Python avec VBA
Exécutez prepDE.py avec python3
Exécutez Blender avec python
Exécutez iperf avec python
Exécutez python avec PyCharm (Windows)
Exécutez Python avec CloudFlash (arm926ej-s)
Exécuter Label avec tkinter [Python]
Exécutez Rotrics DexArm avec l'API Python
Exécutez mruby avec Python ou Blender
Exécutez XGBoost avec Cloud Dataflow (Python)
Exécutez Aprili depuis Python sur Orange
Exécutez python3 Django1.9 avec mod_wsgi (déployer)
Jusqu'à ce que Python fonctionne sur Apache
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Exécutez le servo avec Python sur ESP32 (Windows)
Uncle SES modernise l'application VBA avec Python
Exécutez une application Web Python avec Docker
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2
Grattage en Python (préparation)
Essayez de gratter avec Python.
Apprendre Python avec ChemTHEATER 03
Recherche séquentielle avec Python
"Orienté objet" appris avec python
Manipuler yaml avec python
Résolvez AtCoder 167 avec python
Communication série avec python
[Python] Utiliser JSON avec Python
Apprendre Python avec ChemTHEATER 05-1
Apprenez Python avec ChemTHEATER
1.1 Premiers pas avec Python
Collecter des tweets avec Python
Binarisation avec OpenCV / Python
3. 3. Programmation IA avec Python
Méthode Kernel avec Python
Non bloquant avec Python + uWSGI
Grattage avec Python + PhantomJS
Publier des tweets avec python
Conduisez WebDriver avec python