[Hinweis] Führen Sie Python-Code aus Excel aus (xlwings)

Ich erstelle mit openpyxl + PyInstaller ein Automatisierungstool, um die Arbeit (Excel-Datenverarbeitung) auf dem PC einer anderen Person zu automatisieren, aber der Start ist langsam und frustrierend. Das Erlernen von Excel VBA ist jedoch ein Schmerz. Ich fand den folgenden Artikel, als ich mich fragte, ob es einen einfacheren Weg gibt.

Ist Python in Excel installiert? Verwenden Sie dann xlwings

Sie können Python-Code aus Excel aufrufen und verwenden. Aber es funktioniert nicht. Zu dieser Zeit fand ich den folgenden Artikel.

[[VBA] Versuchen Sie, Python-Code von VBA (1) [Python]] auszuführen (https://celaeno42.hatenablog.com/entry/2018/12/03/191854)

Das hat funktioniert. Wenn Sie Anaconda auf einem Windows-PC mit Excel installieren und ein wenig einrichten, können Sie einfach die Excel-Datei und die Python-Datei übergeben. Also habe ich es in einem Memorandum zusammengefasst.

Umgebung

Führen Sie Python-Code aus Excel aus (Anleitung)

Es wird davon ausgegangen, dass die oben genannte Umgebung vorhanden ist. xlwings und pywin32 werden als Set mit Anaconda installiert.

① Erstellen Sie eine gültige Arbeitsmappe für ein Excel-Makro (* .xlsm).

Python-Code und makrofähige Excel-Arbeitsmappen, die Sie später erstellen werden

  1. Muss sich im selben Verzeichnis befinden
  2. Die Dateinamen (vor der Erweiterung) sind identisch Ist eine Voraussetzung für den Betrieb. Der Dateiname sollte dies berücksichtigen. Diesmal lautet der Dateiname "excel_test.xlsm".

② Importieren Sie xlwings.bas in Excel VBE

  1. Starten Sie Excel und klicken Sie auf der Registerkarte "Entwicklung" auf "Visual Basic", um VBE zu starten. image.png

  2. Klicken Sie auf VBE-Datei> Datei importieren, wählen Sie die Datei (xlwings.bas) mit dem folgenden Pfad aus und importieren Sie sie. Pfad: C: \ Benutzer \ {Benutzername} \ Anaconda3 \ pkgs \ xlwings- {xlwings-Version} -py {Python-Version} \ Lib \ site-packages \ xlwings \ xlwings.bas image.png

Wenn der Import erfolgreich ist, wird "xlwings" im Standardmodulordner erstellt (siehe Abbildung unten). image.png

③ Erstellen Sie eine Python-Datei

Wie oben erwähnt, erstellen Sie es im selben Verzeichnis mit demselben Dateinamen (vor der Erweiterung) wie die mit Makros aktivierte Excel-Arbeitsmappe. Diesmal war der Dateiname "excel_test.py" und der Code war wie folgt.

excel_test.py


# coding: utf-8

import xlwings as xw


def copy_add_text():
    txt = xw.Range('A1').value
    txt += ', I am the Doctor.'
    xw.Range('B3').value = txt

④ Fügen Sie ein Standardmodul mit VBE hinzu und schreiben Sie den Code, um die Methode der Python-Datei aufzurufen.

Der Inhalt des Codes ist wie folgt.

1  Option Explicit
2  
3  Public Sub copyText()
4      Call RunPython("import excel_test; excel_test.copy_add_text()")
5  End Sub

[Ergänzung] Das Argument in der 4. Zeile lautet "Modulname importieren; Modulname. Methodenname".

⑤ Registerkarte Excel-Entwicklung> Aufruf, da die Methode dem Makro hinzugefügt wurde

Diesmal müssen Sie die Zeichenfolge von Zelle A1 in Zelle B3 von "●●, ich bin der Doktor" einfügen. Das Ausführungsergebnis ist in der folgenden Abbildung dargestellt. image.png

Andere

Bei pywin32 == 227 ist ein Win32api-Importfehler aufgetreten. Gelöst durch Setzen von pywin32 == 224. Details sind unbekannt.

Recommended Posts

[Hinweis] Führen Sie Python-Code aus Excel aus (xlwings)
Führen Sie Python-Code über die C # -GUI aus
Führen Sie Python aus Excel aus
Führen Sie Befehle aus Python aus
Führen Sie den Befehl von Python aus
Führen Sie Python-Skripte in Excel aus (mit xlwings).
Führen Sie Python aus Excel VBA mit xlwings & Tutorial Supplement aus
Einführung in Python für VBA-Benutzer - Aufrufen von Python aus Excel mit xlwings-
Führen Sie das Python-Skript aus der Batchdatei aus
Excel-Diagrammerstellung mit Python xlwings
Hinweis: Python
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Führen Sie Python-Code unter C ++ aus (mit Boost.Python).
Hinweis für Pyjulia, die Julia aus Python anruft
Versuchen Sie, Excel mit Python (Xlwings) zu betreiben.
Python lernen note_002
Hinweis: Python-Dekorator
Bearbeiten Sie Excel in Python, um eine Pivot-Tabelle zu erstellen
[Python] Lernnotiz 1
Erstellen Sie ein C-Array aus einer Python> Excel-Tabelle
Python lernen note_004
SQL zu SQL
Python-Zeichencode
Laden Sie den Befehl von yml mit Python und führen Sie ihn aus
MeCab von Python
Python lernen note_003
[Node-RED] Führen Sie Python in einer virtuellen Anaconda-Umgebung von Node-RED aus [Anaconda] [Python]
[Python] Code, der Algorithmen kennt
[Hinweis] openCV + Python
Ich möchte C ++ - Code aus Python-Code erstellen!
Python-Anfängernotiz
Ich habe versucht, Python-Code aus .Net mit Pythonnet auszuführen (Hallo World Edition)
Excel mit Python
[Python] Lesen des Django-Quellcodes Ansicht ab Null ①
Lesen von CSV-Daten aus dem Python-Code des DSX-Objektspeichers
Bearbeiten Sie Excel-Dateien aus Python mit xlrd (persönliches Memo)
Holen Sie sich den Rückkehrcode eines Python-Skripts von bat
Lesen Sie den QR-Code aus der Bilddatei mit Python (Mac).
Beginnen wir Python aus Excel. Ich benutze kein VBA.
Mercurial funktioniert nach der Migration von Python 2 auf Python 3 nicht mehr (Hinweis)
Führen Sie die Python-Funktion von Powershell aus (wie Sie Argumente übergeben).
Berühren Sie MySQL in Python 3
[Anmerkung] zukünftige Aussage ~ Python ~
Bedienen Sie Filemaker von Python aus
[Hinweis] Datei lesen ~ Python ~
Greifen Sie über Python auf Bitcoind zu
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
Python aus oder importieren
Schreiben Sie Python2-Code in Python3 um (2to3)
Infomap Python-Zeichencode
Führen Sie die Python-Datei automatisch aus
Verwenden Sie MySQL aus Python
Vor dem Schreiben von Python-Code
Behandle Excel mit Python
Verwenden Sie MySQL aus Python