Python pywin32 (win32com) Excel-Memorandum

Einführung

Ein Nicht-Programmierer-Amateur Python die langweiligen Dinge machen lassen Dies ist ein Memorandum, wenn es um pywin32 geht.

Da es sich um eine Bestätigung mit einem engen Nutzungsbereich und einer geringen Nutzungshäufigkeit handelt, Die Beschreibung kann Fehler oder Missverständnisse enthalten. Bitte beachten Sie die folgenden Inhalte auf eigenes Risiko.

Benannte und optionale Argumente

Das Methodenargument lautet Ähnlich wie bei C ++ - Standardargumenten Es scheint nicht möglich zu sein, das Argument in der Mitte wegzulassen.

Die Seite, die ich als Referenz für pywin32 (win32com) verwendet habe

So bedienen Sie Excel von pywin32 mit COM https://sites.google.com/site/pythoncasestudy/home/pywin32kara-comwo-tsuka-tsu-te-excelwo-sousa-suru-houhou Betreiben Sie Excel von Python aus mit win32com https://qiita.com/kumarstack55/items/9ae3432446afca06497f Excel betreiben (pywin32: win32com) https://excel-ubara.com/python/python025.html

Die Site, die ich als Referenz für Excel VBA verwendet habe

Die Essenz von Excel https://excel-ubara.com/ Bilderbuch des Lehrers https://www.relief.jp/ Office TANAKA - Excel VBA http://officetanaka.net/excel/vba/ Yones Word- und Excel-Raum http://www.eurus.dti.ne.jp/~yoneyama/

Excel-Betriebsmemorandum mit pywin32 (win32com) von Python

# coding:utf-8
import os
import win32com.client
import win32con
import win32gui

def main():

    # ------------------------------------------------------------------
    #Legen Sie Excel-Konstanten fest
    # ------------------------------------------------------------------
    # https://excel-ubara.com/EXCEL/EXCEL905.html
    # https://docs.microsoft.com/en-us/office/vba/api/excel(enumerations)
    # https://docs.microsoft.com/ja-jp/office/vba/api/excel(enumerations)
    # ------------------------------------------------------------------
    #Es scheint eine Möglichkeit zu geben, Excel-Konstanten zu erhalten.
    # https://wacky.hatenadiary.com/entry/20091011/1255240572
    # ------------------------------------------------------------------
    # Excel Enum Constants
    # ------------------------------------------------------------------
    xlAbove       =  0
    xlBelow       =  1
    xlSolid       =  1
    xlFirst       =  0
    xlLast        =  1
    xlLastCell    = 11
    xlTopToBottom =  1
    xlLeftToRight =  2
    xlGeneral     =  1
    xlAutomatic   = -4105
    xlFormats     = -4122
    xlNone        = -4142
    xlCenter      = -4108
    xlDistributed = -4117
    xlJustify     = -4130
    xlBottom      = -4107
    xlLeft        = -4131
    xlRight       = -4152
    xlTop         = -4160
    xlRTL         = -5004
    xlLTR         = -5003
    xlContext     = -5002
    # ------------------------------------------------------------------
    # Excel Enum XlAutoFillType
    # ------------------------------------------------------------------
    xlFillDefault  =  0
    xlFillCopy     =  1
    xlFillSeries   =  2
    xlFillFormats  =  3
    xlFillValues   =  4
    xlFillDays     =  5
    xlFillWeekdays =  6
    xlFillMonths   =  7
    xlFillYears    =  8
    xlLinearTrend  =  9
    xlGrowthTrend  = 10
    xlFlashFill    = 11
    # ------------------------------------------------------------------
    # Excel Enum XlAutoFilterOperator
    # ------------------------------------------------------------------
    xlAnd             =  1
    xlOr              =  2
    xlTop10Items      =  3
    xlBottom10Items   =  4
    xlTop10Percent    =  5
    xlBottom10Percent =  6
    xlFilterValues    =  7
    xlFilterCellColor =  8
    xlFilterFontColor =  9
    xlFilterIcon      = 10
    xlFilterDynamic   = 11
    # ------------------------------------------------------------------
    # Excel Enum XLBordersIndex
    # ------------------------------------------------------------------
    xlDiagonalDown     =  5
    xlDiagonalUp       =  6
    xlEdgeLeft         =  7
    xlEdgeTop          =  8
    xlEdgeBottom       =  9
    xlEdgeRight        = 10
    xlInsideHorizontal = 12
    xlInsideVertical   = 11
    # ------------------------------------------------------------------
    # Excel Enum XLBorderWeight
    # ------------------------------------------------------------------
    xlHairline = 1
    xlThin     = 2
    xlThick    = 4
    xlMedium   = -4138
    # ------------------------------------------------------------------
    # Excel Enum XlCellType
    # ------------------------------------------------------------------
    xlCellTypeConstants            =  2
    xlCellTypeBlanks               =  4
    xlCellTypeLastCell             = 11
    xlCellTypeVisible              = 12
    xlCellTypeFormulas             = -4123
    xlCellTypeComments             = -4144
    xlCellTypeAllFormatConditions  = -4172
    xlCellTypeSameFormatConditions = -4173
    xlCellTypeAllValidation        = -4174
    xlCellTypeSameValidation       = -4175
    # ------------------------------------------------------------------
    # Excel Enum XlColorIndex
    # ------------------------------------------------------------------
    xlColorIndexAutomatic = -4105
    xlColorIndexNone      = -4142
    # ------------------------------------------------------------------
    # Excel Enum XlCutCopyMode
    # ------------------------------------------------------------------
    xlCopy = 1
    xlCut  = 2
    # ------------------------------------------------------------------
    # Excel Enum XlDeleteShiftDirection
    # Excel Enum XlInsertShiftDirection
    # ------------------------------------------------------------------
    xlShiftUp      = -4162
    xlShiftDown    = -4121
    xlShiftToLeft  = -4159
    xlShiftToRight = -4161
    # ------------------------------------------------------------------
    # Excel Enum XlDirection
    # ------------------------------------------------------------------
    xlUp      = -4162
    xlDown    = -4121
    xlToLeft  = -4159
    xlToRight = -4161
    # ------------------------------------------------------------------
    # Excel Enum XlFileFormat
    # ------------------------------------------------------------------
    xlCSV                         =  6
    xlHtml                        = 44
    xlWorkbookDefault             = 51
    xlOpenXMLWorkbook             = 51
    xlOpenXMLWorkbookMacroEnabled = 52
    xlWorkbookNormal              = -4143
    xlCurrentPlatformText         = -4158
    # ------------------------------------------------------------------
    # Excel Enum XlFixedFormatType
    # ------------------------------------------------------------------
    xlTypePDF = 0
    xlTypeXPS = 1
    # ------------------------------------------------------------------
    # Excel Enum XlFixedFormatQuality
    # ------------------------------------------------------------------
    xlQualityStandard = 0
    xlQualityMinimum  = 1
    # ------------------------------------------------------------------
    # Excel Enum XlFindLookIn
    # ------------------------------------------------------------------
    xlFormulas = -4123
    xlComments = -4144
    xlValues   = -4163
    # ------------------------------------------------------------------
    # Excel Enum XlLineStyle
    # ------------------------------------------------------------------
    xlContinuous    =  1
    xlDashDot       =  4
    xlDashDotDot    =  5
    xlSlantDashDot  = 13
    xlDash          = -4115
    xldot           = -4118
    xlDouble        = -4119
    xlLineStyleNone = -4142
    # ------------------------------------------------------------------
    # Excel Enum XlOrientation
    # ------------------------------------------------------------------
    xlHorizontal = -4128
    xlVertical   = -4166
    xlDownward   = -4170
    xlUpward     = -4171
    # ------------------------------------------------------------------
    # Excel Enum XlPasteType
    # ------------------------------------------------------------------
    xlPasteValues                       = -4163
    xlPasteComments                     = -4144
    xlPasteFormulas                     = -4123
    xlPasteFormats                      = -4122
    xlPasteAll                          = -4104
    xlPasteValidation                   =  6
    xlPasteAllExceptBorders             =  7
    xlPasteColumnWidths                 =  8
    xlPasteFormulasAndNumberFormats     = 11
    xlPasteValuesAndNumberFormats       = 12
    xlPasteAllUsingSourceTheme          = 13
    xlPasteAllMergingConditionalFormats = 14
    # ------------------------------------------------------------------
    # Excel Enum XlSheetVisibility
    # ------------------------------------------------------------------
    xlSheetVisible    = -1
    xlSheetHidden     =  0
    xlSheetVeryHidden =  2
    # ------------------------------------------------------------------
    # Excel Enum XlSpecialCellsValue
    # ------------------------------------------------------------------
    xlNumbers    =  1
    xlTextValues =  2
    xlLogical    =  4
    xlErrors     = 16
    # ------------------------------------------------------------------
    # Excel Enum XlSortDataOption
    # ------------------------------------------------------------------
    xlSortNormal        = 0
    xlSortTextAsNumbers = 1
    # ------------------------------------------------------------------
    # Excel Enum XlSortMethod
    # ------------------------------------------------------------------
    xlPinYin = 1
    xlStroke = 2
    # ------------------------------------------------------------------
    # Excel Enum XlSortOrder
    # ------------------------------------------------------------------
    xlAscending  = 1
    xlDescending = 2
    xlManual     = -4135
    # ------------------------------------------------------------------
    # Excel Enum XlSortOrientation
    # ------------------------------------------------------------------
    xlSortColumns = 1
    xlSortRows    = 2
    # ------------------------------------------------------------------
    # Excel Enum XlSortOn
    # ------------------------------------------------------------------
    xlSortOnValues    = 0
    xlSortOnCellColor = 1
    xlSortOnFontColor = 2
    xlSortOnIcon      = 3
    # ------------------------------------------------------------------
    # Excel Enum XlSortType
    # ------------------------------------------------------------------
    xlSortValues  = 1
    xlSortLabels  = 2
    # ------------------------------------------------------------------
    # Excel Enum XlUnderlineStyle
    # ------------------------------------------------------------------
    xlUnderlineStyleNone             = -4142
    xlUnderlineStyleDouble           = -4119
    xlUnderlineStyleSingle           = 2 
    xlUnderlineStyleSingleAccounting = 4
    xlUnderlineStyleDoubleAccounting = 5
    # ------------------------------------------------------------------
    # Excel Enum XlYesNoGuess
    # ------------------------------------------------------------------
    xlGuess = 0
    xlYes   = 1
    xlNo    = 2
    # ------------------------------------------------------------------

    #Starten Sie Excel
    xlApp = win32com.client.Dispatch("Excel.Application")

    # https://stackoverflow.com/questions/2790825/
    #Maximierung des Excel-Fensters
    win32gui.ShowWindow(xlApp.hwnd, win32con.SW_MAXIMIZE)

    #Excel-Anzeige
    xlApp.Visible = 1

    #Excel-Datei geöffnet
    wb = xlApp.Workbooks.Open(f"{os.getcwd()}\\sample.csv")

    #Excel-Tabellenobjekt
    ws = wb.Worksheets(1)

    # ------------------------------------------------------------------

    #Wählen Sie das angegebene Blatt aus
    # Select()Aktivieren Sie das Blatt vor der Verwendung()Ist notwendig
    ws.Activate()

    # ------------------------------------------------------------------

    #Wählen Sie Zelle A1 aus
    ws.Range("A1").Select()

    #Wählen Sie A1 bis B2
    ws.Range("A1:B2").Select()

    #Wählen Sie A1, B2, C3 und D4
    ws.Range("A1,B2,C3,D4").Select()

    #Wählen Sie A1 bis B2 und C3 bis D4
    ws.Range("A1:B2,C3:D4").Select()

    # ------------------------------------------------------------------

    #Wählen Sie Zelle A1 aus
    ws.Cells(1, 1).Select()

    #Wählen Sie A1 bis B2
    ws.Range(
        ws.Cells(1, 1),
        ws.Cells(2, 2)
    ).Select()

    # ------------------------------------------------------------------

    #Wählen Sie alle Zellen aus
    ws.Cells.Select()

    # ------------------------------------------------------------------

    #Wählen Sie 1-2 Zeilen
    ws.Range("1:2").Select()

    #Wählen Sie die Spalten A bis B.
    ws.Range("A:B").Select()

    # https://www.relief.jp/docs/excel-vba-difference-range-rows-columns.html
    #Wählen Sie 1-2 Zeilen
    ws.Rows("1:2").Select()

    # https://www.relief.jp/docs/excel-vba-difference-range-columns.html
    #Wählen Sie die Spalten A bis B.
    ws.Columns("A:B").Select()

    # ------------------------------------------------------------------

    #Wählen Sie die erste Zeile des angegebenen Bereichs aus
    ws.Range("A1:D4").Rows(1).Select()

    #Wählen Sie die erste Spalte des angegebenen Bereichs aus
    ws.Range("A1:D4").Columns(1).Select()

    # ------------------------------------------------------------------

    # (Basierend auf A1 Zelle)Wählen Sie die gesamte Zeile aus
    ws.Range("A1").EntireRow.Select()

    # (Basierend auf A1 Zelle)Wählen Sie die gesamte Spalte aus
    ws.Range("A1").EntireColumn.Select()

    # ------------------------------------------------------------------

    # (Basierend auf A1 Zelle)Wählen Sie die Zeile bis zur letzten Spalte aus
    ws.Range(
        ws.Range("A1"),
        ws.Cells(1, ws.Columns.Count).End(xlToLeft)
    ).Select()

    # (Basierend auf A1 Zelle)Wählen Sie Spalten bis zur letzten Zeile aus
    ws.Range(
        ws.Range("A1"),
        ws.Cells(ws.Rows.Count, 1).End(xlUp)
    ).Select()

    # ------------------------------------------------------------------

    # (Basierend auf A1 Zelle)Wählen Sie den aktuellen Bereich aus
    ws.Range("A1").CurrentRegion.Select()

    # (Vom aktuellen Blatt)Wählen Sie den verwendeten Bereich aus
    ws.UsedRange.Select()

    # (Basierend auf A1 Zelle)Endgültige Auswahl der unteren rechten Zelle
    ws.Range("A1").SpecialCells(xlLastCell).Select()

    # (Basierend auf A1 Zelle)Sichtbare Zellenauswahl
    ws.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Select()

    # ------------------------------------------------------------------

    # https://thecodingforums.com/threads/328174/
    # Range.Offset()Offset für Eigentum erhalten()Method
    #Versetzen Sie den angegebenen Bereich
    ws.Range("A1:D4").GetOffset(2, 2).Select()

    # Range.Offset()Offset für Eigentum erhalten()Method
    #Versetzen Sie den angegebenen Bereich
    ws.Range("A1:D4").GetOffset(RowOffset = 3, ColumnOffset = 3).Select()

    # Range.Offset()Offset für Eigentum erhalten()Method
    #Versetzen Sie den angegebenen Bereich vertikal
    ws.Range("A1:D4").GetOffset(RowOffset = 3).Select()

    # Range.Offset()Offset für Eigentum erhalten()Method
    #Versetzen Sie den angegebenen Bereich horizontal
    ws.Range("A1:D4").GetOffset(RowOffset = 0, ColumnOffset = 3).Select()

    # ------------------------------------------------------------------

    # https://stackoverflow.com/questions/63112880/
    # Range.Resize()GetResize für Eigenschaft()Method
    #Ändern Sie die Größe des angegebenen Bereichs
    ws.Range("A1:H8").GetResize(2, 2).Select()

    # Range.Resize()GetResize für Eigenschaft()Method
    #Ändern Sie die Größe des angegebenen Bereichs
    ws.Range("A1:H8").GetResize(RowSize = 3, ColumnSize = 3).Select()

    # Range.Resize()GetResize für Eigenschaft()Method
    #Ändern Sie die vertikale Richtung des angegebenen Bereichs
    ws.Range("A1:H8").GetResize(RowSize = 3).Select()

    # Range.Resize()GetResize für Eigenschaft()Method
    #Ändern Sie die horizontale Richtung des angegebenen Bereichs
    ws.Range("A1:H8").GetResize(RowSize = ws.Range("A1:H8").Rows.Count, ColumnSize = 3).Select()

    # ------------------------------------------------------------------

    #Ermitteln Sie die Anzahl der Zeilen in der angegebenen Zelle
    n = ws.Range("A1").Row
    print( n )

    #Ermitteln Sie die Anzahl der Spalten in der angegebenen Zelle
    n = ws.Range("A1").Column
    print( n )

    #Ermitteln Sie die Anzahl der Zeilen, die im angegebenen Bereich enthalten sind
    n = ws.Range("A1:D4").Rows.Count
    print( n )

    #Ruft die Anzahl der Spalten ab, die im angegebenen Bereich enthalten sind
    n = ws.Range("A1:D4").Columns.Count
    print( n )

    # (Basierend auf A1 Zelle)Holen Sie sich die Anzahl der letzten Zeilen
    n = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    print( n )

    # (Basierend auf A1 Zelle)Holen Sie sich die Anzahl der letzten Spalten
    n = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
    print( n )

    # ------------------------------------------------------------------

    # https://binary-star.net/excel-vba-columnchange
    #Konvertieren Sie eine Zahlenzeichenfolge in eine alphabetische Zeichenfolge
    a = (xlApp.ActiveWorkBook.ActiveSheet.Cells(1, 1).Address).split("$")[1]
    print( a )
    a = (xlApp.ActiveWorkBook.ActiveSheet.Cells(1, 2).Address).split("$")[1]
    print( a )
    a = (xlApp.ActiveWorkBook.ActiveSheet.Cells(1, 3).Address).split("$")[1]
    print( a )
    a = (xlApp.ActiveWorkBook.ActiveSheet.Cells(1, 27).Address).split("$")[1]
    print( a )
    a = (xlApp.ActiveWorkBook.ActiveSheet.Cells(1, 53).Address).split("$")[1]
    print( a )
    #Konvertieren Sie eine alphabetische Zeichenfolge in eine Zahlenzeichenfolge
    n = xlApp.ActiveWorkBook.ActiveSheet.Cells(1, "A").Column
    print( n )
    n = xlApp.ActiveWorkBook.ActiveSheet.Cells(1, "B").Column
    print( n )
    n = xlApp.ActiveWorkBook.ActiveSheet.Cells(1, "C").Column
    print( n )
    n = xlApp.ActiveWorkBook.ActiveSheet.Cells(1, "AA").Column
    print( n )
    n = xlApp.ActiveWorkBook.ActiveSheet.Cells(1, "BA").Column
    print( n )

    # ------------------------------------------------------------------

    #Stellen Sie den Wert in Zelle A1 ein
    ws.Range("A1").Value = 99999

    #Stellen Sie die Formel in Zelle A1 ein
    ws.Range("A1").Formula = "=(3.14159-3)*100000"

    # ------------------------------------------------------------------

    #Stellen Sie das Anzeigeformat von Zelle A1 ein
    ws.Range("A1").NumberFormatLocal = "0.00"

    # ------------------------------------------------------------------

    #Stellen Sie die vertikale Position der A1-Zellenplatzierung ein
    ws.Range("A1").VerticalAlignment = xlCenter

    #Stellen Sie die horizontale Position der A1-Zellenplatzierung ein
    ws.Range("A1").HorizontalAlignment = xlCenter

    #Legen Sie die Richtung der Zeichenfolge in Zelle A1 fest
    ws.Range("A1").Orientation = xlUpward

    #Legen Sie die Richtung der Zeichenfolge in Zelle A1 fest
    ws.Range("A1").Orientation = 45

    #Legen Sie die Richtung der Zeichenfolge in Zelle A1 fest
    ws.Range("A1").Orientation = 0

    # ------------------------------------------------------------------

    #Stellen Sie die Schriftart in Zelle A1 ein
    ws.Range("A1").Font.Name = "Yu Gothic UI"

    #Stellen Sie die Schriftgröße für Zelle A1 ein
    ws.Range("A1").Font.Size = 12

    #Stellen Sie die Schriftart von Zelle A1 auf Fett
    ws.Range("A1").Font.Bold = True

    #Stellen Sie die Schriftart der Zelle A1 auf Abschrägung ein
    ws.Range("A1").Font.Italic = True

    #Unterstreichen Sie die Schriftart in Zelle A1
    ws.Range("A1").Font.Underline = xlUnderlineStyleSingle

    #Stellen Sie das Durchgestrichen für die A1-Zellenschrift ein
    ws.Range("A1").Font.Strikethrough = True

    # ------------------------------------------------------------------

    #Stellen Sie die Textfarbe der Zelle A1 ein(R+Gx256+Bx256x256)
    ws.Range("A1").Font.Color = 255 + 0*256 + 0*256*256

    #Stellen Sie die Textfarbe der Zelle A1 ein(Spezifizierte Bestellung BGR)
    ws.Range("A1").Font.Color = int("FF0000",16)

    #Stellen Sie die Textfarbe der Zelle A1 ein(Angegebene Reihenfolge RGB)
    ws.Range("A1").Font.Color = int("".join(list(reversed(["FF0000"[i: i+2] for i in range(0, 6, 2)]))),16)

    #Stellen Sie die Textfarbe der Zelle A1 ein(Standard)
    ws.Range("A1").Font.ColorIndex = xlColorIndexAutomatic

    # ------------------------------------------------------------------

    #Stellen Sie die Hintergrundfarbe der Zelle A1 ein(R+Gx256+Bx256x256)
    ws.Range("A1").Interior.Color = 255 + 255*256 + 0*256*256

    #Stellen Sie die Hintergrundfarbe der Zelle A1 ein(Spezifizierte Bestellung BGR)
    ws.Range("A1").Interior.Color = int("FFFF00",16)

    #Stellen Sie die Hintergrundfarbe der Zelle A1 ein(Angegebene Reihenfolge RGB)
    ws.Range("A1").Interior.Color = int("".join(list(reversed(["FFFF00"[i: i+2] for i in range(0, 6, 2)]))),16)

    #Stellen Sie die Hintergrundfarbe der Zelle A1 ein(Standard)
    ws.Range("A1").Interior.ColorIndex = xlColorIndexNone

    # ------------------------------------------------------------------

    #Setzen Sie einen Rand in Zelle A1
    ws.Range("A1").Borders.Color = int("".join(list(reversed(["FF0000"[i: i+2] for i in range(0, 6, 2)]))),16)
    ws.Range("A1").Borders.LineStyle = xlContinuous
    ws.Range("A1").Borders.Weight = xlMedium

    #Lassen Sie den Rand der Zelle A1 los
    ws.Range("A1").Borders.LineStyle = xlLineStyleNone

    #Setzen Sie einen Rand am unteren Rand der Zelle A1
    ws.Range("A1").Borders(xlEdgeBottom).Color = int("".join(list(reversed(["FF0000"[i: i+2] for i in range(0, 6, 2)]))),16)
    ws.Range("A1").Borders(xlEdgeBottom).LineStyle = xlContinuous
    ws.Range("A1").Borders(xlEdgeBottom).Weight = xlMedium

    #Entfernen Sie den Rand unten in Zelle A1
    ws.Range("A1").Borders(xlEdgeBottom).LineStyle = xlLineStyleNone

    # ------------------------------------------------------------------

    #Löschen Sie Werte und Formeln in Zelle A1
    ws.Range("A1").ClearContents()

    #Löschen Sie das A1-Zellenformat
    ws.Range("A1").ClearFormats()

    #
    ws.Range("A1").Clear()

    #
    ws.Range("A1").Delete()

    #()
    ws.Range("A1").Delete(xlShiftUp)

    #()
    ws.Range("A1").Delete(xlShiftToLeft)

    #A1-Zelle löschen A1-Zelle löschen A1 nach oben verschieben A1-Zelle verschieben Linksverschiebung löschen In A1-Zelle einfügen
    ws.Range("A1").Insert()

    #In Zelle A1 einfügen(Runterschalten)
    ws.Range("A1").Insert(xlShiftDown)

    #In Zelle A1 einfügen(Nach rechts schalten)
    ws.Range("A1").Insert(xlShiftToRight)

    # ------------------------------------------------------------------

    # (A1 Leitungsstandard)Höhe einstellen
    ws.Range("A1").RowHeight = 30

    # (A1 Säulenstandard)Breite einstellen
    ws.Range("A1").ColumnWidth = 30

    # (A1 Leitungsstandard)Automatische Höhenverstellung
    ws.Range("A1").EntireRow.AutoFit()

    # (A1 Säulenstandard)Die Breite wird automatisch angepasst
    ws.Range("A1").EntireColumn.AutoFit()

    # ------------------------------------------------------------------

    #So zeigen Sie einzelne Gruppen an und verbergen sie
    # https://vbabeginner.net/%e3%82%b0%e3%83%ab%e3%83%bc%e3%83%97%e5%8c%96%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%81%a8%e9%9d%9e%e8%a1%a8%e7%a4%ba/

    #Zeilengruppierung festlegen
    ws.Range("A1").EntireRow.Group()

    #Zeilengruppierung ausblenden
    ws.Outline.ShowLevels(RowLevels = 1)

    #Zeilengruppierung anzeigen
    ws.Outline.ShowLevels(RowLevels = 8)

    #Gruppierung aufheben
    ws.Range("A1").EntireRow.Ungroup()

    #Spaltengruppierung festlegen
    ws.Range("A1").EntireColumn.Group()

    #Spaltengruppierung ausblenden
    ws.Outline.ShowLevels(RowLevels = 0, ColumnLevels = 1)

    #Spaltengruppierung anzeigen
    ws.Outline.ShowLevels(RowLevels = 0, ColumnLevels = 8)

    #Spalten aufheben
    ws.Range("A1").EntireColumn.Ungroup()

    # ------------------------------------------------------------------

    #Kopieren Sie Zelle A1 in Zelle B1
    ws.Range("A1").Copy(ws.Range("B1"))

    #Kopieren Sie Zelle A1 in Zelle A1 von Blatt2
    ws.Range("A1").Copy(wb.Worksheets("Sheet2").Range("A1"))

    #Kopieren Sie den aktuellen Bereich der A1-Zellreferenz in die Blatt-A1-Zellreferenz
    ws.Range("A1").CurrentRegion.Copy(wb.Worksheets("Sheet2").Range("A1"))

    #Kopieren Sie die Zelle A1 in die Zwischenablage
    ws.Range("A1").Copy()

    #Kopieren Sie die Zwischenablage in Zelle B2
    ws.Activate()
    ws.Range("B2").Select()
    ws.Paste()

    #Kopieren Sie die Zwischenablage in Zelle C3(Wert einfügen)
    ws.Range("C3").PasteSpecial(xlPasteValues)

    #Kopieren Sie die Zwischenablage in Zelle C3(Format einfügen)
    ws.Range("C3").PasteSpecial(xlPasteFormats)

    #Kopieren Sie die Zwischenablage in Zelle C3(Formel einfügen)
    ws.Range("C3").PasteSpecial(xlPasteFormulas)

    #Schnittmodus oder Kopiermodus abbrechen
    xlApp.CutCopyMode = False

    # ------------------------------------------------------------------

    #Verschieben Sie Zelle A1 in Zelle B1
    ws.Range("A1").Cut(ws.Range("B1"))

    #Verschieben Sie Zelle A1 in Zelle A1 von Blatt2
    ws.Range("A1").Cut(wb.Worksheets("Sheet2").Range("A1"))

    #Bewegen Sie die Zelle A1 zum Clip
    ws.Range("A1").Cut()

    #Schnittmodus oder Kopiermodus abbrechen
    xlApp.CutCopyMode = False

    # ------------------------------------------------------------------

    #Kopieren Sie den Inhalt der linken Spalte des Bereichs A1 bis D4 stapelweise in den Bereich
    ws.Range("A1:D4").FillRight()

    #Kopieren Sie den Inhalt der oberen Zeile im Bereich von E1 bis H4 stapelweise in den Bereich
    ws.Range("E1:H4").FillDown()

    #Kopieren Sie den Inhalt der rechten Spalte im Bereich von A5 bis D8 stapelweise in den Bereich
    ws.Range("A5:D8").FillLeft()

    #Stapelkopie des Inhalts der unteren Zeile im Bereich von E5 bis H8
    ws.Range("E5:H8").FillUp()

    # ------------------------------------------------------------------

    #AutoFill von A1 nach H1 nach A1 nach H8
    ws.Range("A1:H1").AutoFill(ws.Range("A1:H8"))

    #AutoFill von A1 nach H2 nach A1 nach H8
    ws.Range("A1:H2").AutoFill(ws.Range("A1:H8"), xlFillDefault)

    # ------------------------------------------------------------------

    #AutoFilter der aktuelle Bereich relativ zur A1-Zelle
    ws.Range("A1").CurrentRegion.AutoFilter()
    ws.Range("A1").CurrentRegion.AutoFilter(Field = 1, Criteria1 = ">30")

    #AutoFilter der aktuelle Bereich relativ zur A1-Zelle
    ws.Range("A1").CurrentRegion.AutoFilter()
    ws.Range("A1").CurrentRegion.AutoFilter(Field = 1, Criteria1 = ">30", Operator = xlAnd, Criteria2 = "<80")

    #AutoFilter der aktuelle Bereich relativ zur A1-Zelle
    ws.Range("A1").CurrentRegion.AutoFilter()
    ws.Range("A1").CurrentRegion.AutoFilter(1, ">30")

    #AutoFilter der aktuelle Bereich relativ zur A1-Zelle
    ws.Range("A1").CurrentRegion.AutoFilter()
    ws.Range("A1").CurrentRegion.AutoFilter(1, ">30", xlAnd, "<80")

    #AutoFilter der aktuelle Bereich relativ zur A1-Zelle
    ws.Range("A1").CurrentRegion.AutoFilter()
    ws.Range("A1").CurrentRegion.AutoFilter(1, ">30", xlAnd, "<80")
    ws.Range("A1").CurrentRegion.AutoFilter(2, ">40", xlAnd, "<60")

    #Wählen Sie den Bereich des AutoFilters
    ws.AutoFilter.Range.Select()

    #Sichtbare Zellenauswahl im Bereich AutoFilter
    ws.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Select()

    #Anzahl der sichtbaren Zellenzeilen im AutoFilter-Bereich
    n = int(ws.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Count / ws.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Columns.Count)
    print( n )

    #AutoFilter anwenden
    ws.AutoFilter.ApplyFilter()

    #AutoFilter entfiltern
    if ws.FilterMode:
        ws.ShowAllData()

    #AutoFilter abbrechen
    if ws.AutoFilterMode:
        ws.AutoFilterMode = False

    # ------------------------------------------------------------------

    #Sortieren Sie den aktuellen Bereich basierend auf der A1-Zelle( Range Sort Method )
    #Wenn Type weggelassen wird, wird die Angabe von Order2 usw. nach Type ignoriert.
    #Wenn Typ auf Keine gesetzt ist, tritt kein Fehler auf, aber es kommt zu Fehlfunktionen.
    ws.Activate()
    ws.Range("A1").CurrentRegion.Select()
    ws.Range("A1").CurrentRegion.Sort(
        Key1 = ws.Range("A1"), Order1 = xlDescending,
        Key2 = ws.Range("B1"), 
        Type = None,
                               Order2 = xlDescending,
        Key3 = ws.Range("C1"), Order3 = xlAscending,
        Header = xlYes,
        MatchCase = False,
        Orientation = xlSortColumns,
        SortMethod = xlPinYin,
        DataOption1 = xlSortNormal, 
        DataOption2 = xlSortNormal, 
        DataOption3 = xlSortNormal, 
    )

    #Sortieren Sie den aktuellen Bereich basierend auf der A1-Zelle( Sort Object )
    #Obwohl dies in der VBA-Referenz von Microsoft optional ist,
    #Beachten Sie, dass es möglicherweise nicht normal sortiert wird, wenn es weggelassen wird.
    ws.Activate()
    ws.Range("A1").CurrentRegion.Select()
    ws.Sort.SortFields.Clear()
    ws.Sort.SortFields.Add(Key = ws.Range("A1"), SortOn = xlSortOnValues, DataOption = xlSortNormal, Order = xlAscending)
    ws.Sort.SortFields.Add(Key = ws.Range("B1"), SortOn = xlSortOnValues, DataOption = xlSortNormal, Order = xlAscending)
    ws.Sort.SortFields.Add(Key = ws.Range("C1"), SortOn = xlSortOnValues, DataOption = xlSortNormal, Order = xlDescending)
    ws.Sort.SetRange(            ws.Range("A1").CurrentRegion)
    ws.Sort.Header = xlYes
    ws.Sort.MatchCase = False
    ws.Sort.Orientation = xlSortColumns
    ws.Sort.SortMethod = xlPinYin
    ws.Sort.Apply()

    # ------------------------------------------------------------------

    #Sortieren Sie nach dem Ausführen von AutoFilter( Sort Object )
    #Obwohl dies in der VBA-Referenz von Microsoft optional ist,
    #Beachten Sie, dass es möglicherweise nicht normal sortiert wird, wenn es weggelassen wird.
    ws.Activate()
    ws.Range("A1").CurrentRegion.Select()
    ws.Range("A1").CurrentRegion.AutoFilter()
    ws.Range("A1").CurrentRegion.AutoFilter(1, ">30", xlAnd, "<80")
    ws.AutoFilter.Sort.SortFields.Clear()
    ws.AutoFilter.Sort.SortFields.Add(Key = ws.Range("A1"), SortOn = xlSortOnValues, DataOption = xlSortNormal, Order = xlDescending)
    ws.AutoFilter.Sort.SortFields.Add(Key = ws.Range("B1"), SortOn = xlSortOnValues, DataOption = xlSortNormal, Order = xlDescending)
    ws.AutoFilter.Sort.SortFields.Add(Key = ws.Range("C1"), SortOn = xlSortOnValues, DataOption = xlSortNormal, Order = xlAscending)
   #ws.AutoFilter.Sort.SetRange()
    ws.AutoFilter.Sort.Header = xlYes
    ws.AutoFilter.Sort.MatchCase = False
    ws.AutoFilter.Sort.Orientation = xlSortColumns
    ws.AutoFilter.Sort.SortMethod = xlPinYin
    ws.AutoFilter.Sort.Apply()

    # ------------------------------------------------------------------

    #Blatt ausblenden
    ws.Visible = xlSheetHidden

    #Anzeige des Blattes
    ws.Visible = xlSheetVisible

    # ------------------------------------------------------------------

    #Blattschutzeinstellungen
    ws.Protect()

    #Freigabe des Blattschutzes
    ws.Unprotect()

    #Stellen Sie den Schutz des Blattes mit Passwort ein
    ws.Protect(Password = "hoge")

    #Blatt mit Passwort aufheben
    ws.Unprotect(Password = "hoge")

    # ------------------------------------------------------------------

    #Buchschutzeinstellungen
    wb.Protect()

    #Das Buch aufheben
    wb.Unprotect()

    #Schützen Sie Ihre Arbeitsmappe mit einem Passwort
    wb.Protect(Password = "hoge")

    #Entfernen Sie den Kennwortschutz für Arbeitsmappen
    wb.Unprotect(Password = "hoge")

    # ------------------------------------------------------------------

    #Einstellung der Zoomvergrößerung
    ws.Activate()
    ws.Range("A1").Select()
    xlApp.ActiveWindow.Zoom = 90

    # ------------------------------------------------------------------

    # https://stackoverflow.com/questions/43146073/
    #Rahmen reparieren
    ws.Activate()
    ws.Range("C3").Select()
    xlApp.ActiveWindow.FreezePanes = True

    # ------------------------------------------------------------------

    # https://qiita.com/Tachy_Pochy/items/64fe16ec076c52556b2d
    # CTRL+HOME (Entschuldigung bei der Verwendung von AutoFilter)
    ws.Activate()
    ws.Range("A1").Select()
    xlCtrlHomeRow    = int(xlApp.ActiveWindow.SplitRow)    + int(xlApp.ActiveWindow.Panes(1).ScrollRow)    if (1 < xlApp.ActiveWindow.Panes.Count) else 1
    xlCtrlHomeColumn = int(xlApp.ActiveWindow.SplitColumn) + int(xlApp.ActiveWindow.Panes(1).ScrollColumn) if (1 < xlApp.ActiveWindow.Panes.Count) else 1
    ws.Cells(xlCtrlHomeRow, xlCtrlHomeColumn).Select()

    # https://excel-ubara.com/excelvba4/EXCEL272.html
    # CTRL+HOME-ähnliche A1-Zellenauswahl
    ws.Activate()
    ws.Range("A1").Select()
    xlApp.Goto(ws.Range("A1"), True)

    # ------------------------------------------------------------------

    #Neuberechnung
    xlApp.Calculate()

    #Stoppen Sie die Anzeige von Warnmeldungen in Excel
    xlApp.DisplayAlerts = False

    #Starten Sie die Anzeige von Warnmeldungen in Excel
    xlApp.DisplayAlerts = True

    #Beenden Sie die Aktualisierung des Excel-Bildschirms
    xlApp.ScreenUpdating = False

    #Starten Sie die Aktualisierung des Excel-Bildschirms
    xlApp.ScreenUpdating = True

    # ------------------------------------------------------------------

    #Ändern Sie den Namen des Blattes
    wb.Worksheets("Sheet2").Name = "Sheet9"

    #Blatt hinzufügen
    xlApp.Worksheets.Add()

    #Kopie des Blattes(Kopieren Sie vor dem angegebenen Blatt)
    ws.Copy(Before = wb.Worksheets("Sheet9"))

    # https://stackoverflow.com/questions/52685699/
    #Kopie des Blattes(Nach dem angegebenen Blatt kopieren)
    ws.Copy(Before = None, After = wb.Worksheets("Sheet9"))

    #Sitz bewegen(Bewegen Sie sich zur Vorderseite des angegebenen Blattes)
    ws.Move(Before = wb.Worksheets("Sheet9"))

    # https://stackoverflow.com/questions/52685699/
    #Sitz bewegen(Bewegen Sie sich nach dem angegebenen Blatt)
    ws.Move(Before = None, After = wb.Worksheets("Sheet9"))

    #Blatt löschen
    wb.Worksheets("Sheet9").Delete()

    # ------------------------------------------------------------------

    #Ausgabeblatt als PDF
    ws.ExportAsFixedFormat(Type = xlTypePDF, Quality = xlQualityStandard, Filename = f"{os.getcwd()}\\output.pdf")

    # ------------------------------------------------------------------

    #Speichern Sie die Arbeitsmappe in einer Datei
    wb.Save()

    #Speichern Sie die Arbeitsmappe in einer XLSX-Datei
    wb.SaveAs(f"{os.getcwd()}\\outputSaveAs.xlsx", FileFormat = xlOpenXMLWorkbook)

    #Speichern Sie die Arbeitsmappe in einer XLS-Datei
    wb.SaveAs(f"{os.getcwd()}\\outputSaveAs.xls", FileFormat = xlWorkbookNormal)

    #Arbeitsmappe in CSV-Datei speichern
    wb.SaveAs(f"{os.getcwd()}\\outputSaveAs.csv", FileFormat = xlCSV)

    # ------------------------------------------------------------------

    #Schliesse das Buch
    wb.Close()

    #Schließen, ohne das Buch zu speichern
    wb.Close(SaveChanges = False)

    # ------------------------------------------------------------------

    #Beenden Sie Excel
    xlApp.Quit()

    # ------------------------------------------------------------------

if __name__ == "__main__":
    main()

Beispiel für ein Excel-Operationsmemorandum mit pywin32 (win32com) von Python

sample.py sample.csv

Recommended Posts

Python pywin32 (win32com) Excel-Memorandum
Python pywin32 (win32com) Excel Range.Offset Range.Resize Range.Address
Python-Memorandum
Python-Memorandum 2
Python-Memorandum
Python Memorandum
Python Memorandum
Python-Memorandum
Python Memorandum
Python-Memorandum
Python-Grundmemorandum
Python Pathlib Memorandum
[Python] Vektoroperation
Python-Memorandum (Algorithmus)
Python-Betriebssystembetrieb
[Python] Matrixoperation
Pandas Operations Memorandum
Python-Memorandum [Links]
Excel mit Python
Python Memorandum (sequentielle Aktualisierung)
Führen Sie Python aus Excel aus
Python-Memorandum (persönliches Lesezeichen)
Behandle Excel mit Python
Python Basic Memorandum Teil 2
Zusammenfassung der Python-Verzeichnisoperationen
Stolperstein der Python-Logik
Python-Programmierung mit Excel
Python-Dekorator-Operationsnotiz
Memorandum @ Python ODER Seminar
Python Memorandum Super Basic
Betreiben Sie Excel mit Python (1)
[Python] Array-Slice-Operation
Betreiben Sie Excel mit Python (2)
Cisco Memorandum _ Eingabekonfiguration mit Python
S3-Betrieb mit Python Boto3
ABC-Memorandum [ABC163 C --managementr] (Python)
Python-Anfänger-Memorandum-Funktion
Memorandum @ Python ODER Seminar: matplotlib
[Python] Memorandum zur Vermeidung von SQLAlchemy-Fehlern
Memorandum über Korrelation [Python]
Memorandum @ Python ODER Seminar: Pulp
Ein Memorandum über den Python-Mock
Memorandum @ Python ODER Seminar: Pandas
Ziel Python Library Master (12) Excel
[Python] Memorandum über zufällige Generationen
Memorandum @ Python ODER Seminar: Scikit-Learn