Un amateur non programmeur Laisser Python faire les choses ennuyeuses Ceci est un mémorandum lors de l'examen de pywin32.
Puisqu'il s'agit d'une confirmation avec une plage d'utilisation étroite et une faible fréquence d'utilisation, Il peut y avoir des erreurs ou des malentendus dans la description. Veuillez vous référer au contenu suivant à vos propres risques.
L'argument de méthode est Similaire aux arguments par défaut de C ++ Il semble qu'il n'est pas possible d'omettre l'argument du milieu.
Comment faire fonctionner Excel à partir de pywin32 en utilisant COM https://sites.google.com/site/pythoncasestudy/home/pywin32kara-comwo-tsuka-tsu-te-excelwo-sousa-suru-houhou Exploitez Excel à partir de Python avec win32com https://qiita.com/kumarstack55/items/9ae3432446afca06497f Utiliser Excel (pywin32: win32com) https://excel-ubara.com/python/python025.html
L'essence d'Excel https://excel-ubara.com/ Livre d'histoires de l'instructeur https://www.relief.jp/ Office TANAKA - Excel VBA http://officetanaka.net/excel/vba/ Petite salle de Yone's Word et Excel http://www.eurus.dti.ne.jp/~yoneyama/
# coding:utf-8
import os
import win32com.client
import win32con
import win32gui
def main():
# ------------------------------------------------------------------
#Définir des constantes Excel
# ------------------------------------------------------------------
# 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)
# ------------------------------------------------------------------
#Il semble y avoir un moyen d'obtenir des constantes Excel.
# 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
# ------------------------------------------------------------------
#Démarrez Excel
xlApp = win32com.client.Dispatch("Excel.Application")
# https://stackoverflow.com/questions/2790825/
#Maximisation de la fenêtre Excel
win32gui.ShowWindow(xlApp.hwnd, win32con.SW_MAXIMIZE)
#Affichage Excel
xlApp.Visible = 1
#Fichier Excel ouvert
wb = xlApp.Workbooks.Open(f"{os.getcwd()}\\sample.csv")
#Objet de feuille Excel
ws = wb.Worksheets(1)
# ------------------------------------------------------------------
#Sélectionnez la feuille spécifiée
# Select()Activez la feuille avant de l'utiliser()Est nécessaire
ws.Activate()
# ------------------------------------------------------------------
#Sélectionnez la cellule A1
ws.Range("A1").Select()
#Sélectionnez A1 à B2
ws.Range("A1:B2").Select()
#Sélectionnez A1, B2, C3 et D4
ws.Range("A1,B2,C3,D4").Select()
#Sélectionnez A1 à B2 et C3 à D4
ws.Range("A1:B2,C3:D4").Select()
# ------------------------------------------------------------------
#Sélectionnez la cellule A1
ws.Cells(1, 1).Select()
#Sélectionnez A1 à B2
ws.Range(
ws.Cells(1, 1),
ws.Cells(2, 2)
).Select()
# ------------------------------------------------------------------
#Sélectionnez toutes les cellules
ws.Cells.Select()
# ------------------------------------------------------------------
#Sélectionnez 1-2 lignes
ws.Range("1:2").Select()
#Sélectionnez les colonnes A à B
ws.Range("A:B").Select()
# https://www.relief.jp/docs/excel-vba-difference-range-rows-columns.html
#Sélectionnez 1-2 lignes
ws.Rows("1:2").Select()
# https://www.relief.jp/docs/excel-vba-difference-range-columns.html
#Sélectionnez les colonnes A à B
ws.Columns("A:B").Select()
# ------------------------------------------------------------------
#Sélectionnez la première ligne de la plage spécifiée
ws.Range("A1:D4").Rows(1).Select()
#Sélectionnez la première colonne de la plage spécifiée
ws.Range("A1:D4").Columns(1).Select()
# ------------------------------------------------------------------
# (Basé sur la cellule A1)Sélectionnez toute la ligne
ws.Range("A1").EntireRow.Select()
# (Basé sur la cellule A1)Sélectionnez la colonne entière
ws.Range("A1").EntireColumn.Select()
# ------------------------------------------------------------------
# (Basé sur la cellule A1)Sélectionnez la ligne jusqu'à la dernière colonne
ws.Range(
ws.Range("A1"),
ws.Cells(1, ws.Columns.Count).End(xlToLeft)
).Select()
# (Basé sur la cellule A1)Sélectionnez les colonnes jusqu'à la dernière ligne
ws.Range(
ws.Range("A1"),
ws.Cells(ws.Rows.Count, 1).End(xlUp)
).Select()
# ------------------------------------------------------------------
# (Basé sur la cellule A1)Sélectionnez la zone actuelle
ws.Range("A1").CurrentRegion.Select()
# (De la feuille courante)Sélectionnez la zone utilisée
ws.UsedRange.Select()
# (Basé sur la cellule A1)Sélection finale de la cellule en bas à droite
ws.Range("A1").SpecialCells(xlLastCell).Select()
# (Basé sur la cellule A1)Sélection de cellules visibles
ws.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Select()
# ------------------------------------------------------------------
# https://thecodingforums.com/threads/328174/
# Range.Offset()Obtenir un décalage pour la propriété()Method
#Décaler la plage spécifiée
ws.Range("A1:D4").GetOffset(2, 2).Select()
# Range.Offset()Obtenir un décalage pour la propriété()Method
#Décaler la plage spécifiée
ws.Range("A1:D4").GetOffset(RowOffset = 3, ColumnOffset = 3).Select()
# Range.Offset()Obtenir un décalage pour la propriété()Method
#Décale verticalement la plage spécifiée
ws.Range("A1:D4").GetOffset(RowOffset = 3).Select()
# Range.Offset()Obtenir un décalage pour la propriété()Method
#Décale la plage spécifiée horizontalement
ws.Range("A1:D4").GetOffset(RowOffset = 0, ColumnOffset = 3).Select()
# ------------------------------------------------------------------
# https://stackoverflow.com/questions/63112880/
# Range.Resize()GetResize pour la propriété()Method
#Redimensionner la plage spécifiée
ws.Range("A1:H8").GetResize(2, 2).Select()
# Range.Resize()GetResize pour la propriété()Method
#Redimensionner la plage spécifiée
ws.Range("A1:H8").GetResize(RowSize = 3, ColumnSize = 3).Select()
# Range.Resize()GetResize pour la propriété()Method
#Redimensionner la direction verticale de la plage spécifiée
ws.Range("A1:H8").GetResize(RowSize = 3).Select()
# Range.Resize()GetResize pour la propriété()Method
#Redimensionner la direction horizontale de la plage spécifiée
ws.Range("A1:H8").GetResize(RowSize = ws.Range("A1:H8").Rows.Count, ColumnSize = 3).Select()
# ------------------------------------------------------------------
#Obtenez le nombre de lignes dans la cellule spécifiée
n = ws.Range("A1").Row
print( n )
#Obtenez le nombre de colonnes dans la cellule spécifiée
n = ws.Range("A1").Column
print( n )
#Obtenir le nombre de lignes incluses dans la plage spécifiée
n = ws.Range("A1:D4").Rows.Count
print( n )
#Obtenir le nombre de colonnes incluses dans la plage spécifiée
n = ws.Range("A1:D4").Columns.Count
print( n )
# (Basé sur la cellule A1)Obtenez le nombre de dernières lignes
n = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
print( n )
# (Basé sur la cellule A1)Obtenez le nombre de dernières colonnes
n = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
print( n )
# ------------------------------------------------------------------
# https://binary-star.net/excel-vba-columnchange
#Convertir une chaîne numérique en chaîne alphabétique
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 )
#Convertir une chaîne alphabétique en chaîne numérique
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 )
# ------------------------------------------------------------------
#Définir la valeur dans la cellule A1
ws.Range("A1").Value = 99999
#Définir la formule dans la cellule A1
ws.Range("A1").Formula = "=(3.14159-3)*100000"
# ------------------------------------------------------------------
#Définir le format d'affichage de la cellule A1
ws.Range("A1").NumberFormatLocal = "0.00"
# ------------------------------------------------------------------
#Définir la position verticale du placement des cellules A1
ws.Range("A1").VerticalAlignment = xlCenter
#Définir la position horizontale du placement des cellules A1
ws.Range("A1").HorizontalAlignment = xlCenter
#Définir la direction de la chaîne de caractères dans la cellule A1
ws.Range("A1").Orientation = xlUpward
#Définir la direction de la chaîne de caractères dans la cellule A1
ws.Range("A1").Orientation = 45
#Définir la direction de la chaîne de caractères dans la cellule A1
ws.Range("A1").Orientation = 0
# ------------------------------------------------------------------
#Définir la police dans la cellule A1
ws.Range("A1").Font.Name = "Yu Gothic UI"
#Définir la taille de la police pour la cellule A1
ws.Range("A1").Font.Size = 12
#Définissez la police de la cellule A1 en gras
ws.Range("A1").Font.Bold = True
#Définir la police de la cellule A1 en biseau
ws.Range("A1").Font.Italic = True
#Soulignez la police dans la cellule A1
ws.Range("A1").Font.Underline = xlUnderlineStyleSingle
#Définir le barré pour la police de cellule A1
ws.Range("A1").Font.Strikethrough = True
# ------------------------------------------------------------------
#Définir la couleur du texte de la cellule A1(R+Gx256+Bx256x256)
ws.Range("A1").Font.Color = 255 + 0*256 + 0*256*256
#Définir la couleur du texte de la cellule A1(Commande spécifiée BGR)
ws.Range("A1").Font.Color = int("FF0000",16)
#Définir la couleur du texte de la cellule A1(Ordre spécifié RVB)
ws.Range("A1").Font.Color = int("".join(list(reversed(["FF0000"[i: i+2] for i in range(0, 6, 2)]))),16)
#Définir la couleur du texte de la cellule A1(Défaut)
ws.Range("A1").Font.ColorIndex = xlColorIndexAutomatic
# ------------------------------------------------------------------
#Définir la couleur d'arrière-plan de la cellule A1(R+Gx256+Bx256x256)
ws.Range("A1").Interior.Color = 255 + 255*256 + 0*256*256
#Définir la couleur d'arrière-plan de la cellule A1(Commande spécifiée BGR)
ws.Range("A1").Interior.Color = int("FFFF00",16)
#Définir la couleur d'arrière-plan de la cellule A1(Ordre spécifié RVB)
ws.Range("A1").Interior.Color = int("".join(list(reversed(["FFFF00"[i: i+2] for i in range(0, 6, 2)]))),16)
#Définir la couleur d'arrière-plan de la cellule A1(Défaut)
ws.Range("A1").Interior.ColorIndex = xlColorIndexNone
# ------------------------------------------------------------------
#Définir une bordure dans la cellule 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
#Relâchez la bordure de la cellule A1
ws.Range("A1").Borders.LineStyle = xlLineStyleNone
#Définir une bordure au bas de la cellule 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
#Supprimer la bordure au bas de la cellule A1
ws.Range("A1").Borders(xlEdgeBottom).LineStyle = xlLineStyleNone
# ------------------------------------------------------------------
#Effacer les valeurs et les formules dans la cellule A1
ws.Range("A1").ClearContents()
#Effacer le format de cellule A1
ws.Range("A1").ClearFormats()
#Effacer la cellule A1
ws.Range("A1").Clear()
#Supprimer la cellule A1
ws.Range("A1").Delete()
#Supprimer la cellule A1(Décalage vers le haut)
ws.Range("A1").Delete(xlShiftUp)
#Supprimer la cellule A1(Déplacer vers la gauche)
ws.Range("A1").Delete(xlShiftToLeft)
#Insérer dans la cellule A1
ws.Range("A1").Insert()
#Insérer dans la cellule A1(Rétrograder)
ws.Range("A1").Insert(xlShiftDown)
#Insérer dans la cellule A1(Déplacer vers la droite)
ws.Range("A1").Insert(xlShiftToRight)
# ------------------------------------------------------------------
# (Norme de ligne A1)Définir la hauteur
ws.Range("A1").RowHeight = 30
# (Norme de colonne A1)Définir la largeur
ws.Range("A1").ColumnWidth = 30
# (Norme de ligne A1)Réglage automatique de la hauteur
ws.Range("A1").EntireRow.AutoFit()
# (Norme de colonne A1)La largeur est automatiquement ajustée
ws.Range("A1").EntireColumn.AutoFit()
# ------------------------------------------------------------------
#Comment afficher et masquer des groupes individuels
# 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/
#Définir le regroupement de lignes
ws.Range("A1").EntireRow.Group()
#Masquer le regroupement de lignes
ws.Outline.ShowLevels(RowLevels = 1)
#Afficher le regroupement de lignes
ws.Outline.ShowLevels(RowLevels = 8)
#Dissocier des lignes
ws.Range("A1").EntireRow.Ungroup()
#Définir le regroupement des colonnes
ws.Range("A1").EntireColumn.Group()
#Masquer le regroupement de colonnes
ws.Outline.ShowLevels(RowLevels = 0, ColumnLevels = 1)
#Afficher le regroupement de colonnes
ws.Outline.ShowLevels(RowLevels = 0, ColumnLevels = 8)
#Dissocier les colonnes
ws.Range("A1").EntireColumn.Ungroup()
# ------------------------------------------------------------------
#Copier la cellule A1 dans la cellule B1
ws.Range("A1").Copy(ws.Range("B1"))
#Copier la cellule A1 dans la cellule A1 de la feuille Sheet2
ws.Range("A1").Copy(wb.Worksheets("Sheet2").Range("A1"))
#Copiez la zone actuelle de la référence de cellule A1 dans la référence de cellule Sheet2 A1
ws.Range("A1").CurrentRegion.Copy(wb.Worksheets("Sheet2").Range("A1"))
#Copier la cellule A1 dans le presse-papiers
ws.Range("A1").Copy()
#Copiez le presse-papiers dans la cellule B2
ws.Activate()
ws.Range("B2").Select()
ws.Paste()
#Copiez le presse-papiers dans la cellule C3(Coller la valeur)
ws.Range("C3").PasteSpecial(xlPasteValues)
#Copiez le presse-papiers dans la cellule C3(Coller le format)
ws.Range("C3").PasteSpecial(xlPasteFormats)
#Copiez le presse-papiers dans la cellule C3(Formule en pâte)
ws.Range("C3").PasteSpecial(xlPasteFormulas)
#Annuler le mode coupe ou le mode copie
xlApp.CutCopyMode = False
# ------------------------------------------------------------------
#Déplacer la cellule A1 vers la cellule B1
ws.Range("A1").Cut(ws.Range("B1"))
#Déplacer la cellule A1 vers la cellule A1 de Sheet2
ws.Range("A1").Cut(wb.Worksheets("Sheet2").Range("A1"))
#Déplacer la cellule A1 vers le clip
ws.Range("A1").Cut()
#Annuler le mode de coupe ou le mode de copie
xlApp.CutCopyMode = False
# ------------------------------------------------------------------
#Copie par lots le contenu de la colonne de gauche de la plage A1 à D4 dans la plage
ws.Range("A1:D4").FillRight()
#Copie par lots le contenu de la ligne supérieure dans la plage de E1 à H4 dans la plage
ws.Range("E1:H4").FillDown()
#Copiez par lots le contenu de la colonne de droite dans la plage A5 à D8 dans la plage
ws.Range("A5:D8").FillLeft()
#Copiez par lots le contenu de la ligne inférieure dans la plage de E5 à H8 dans la plage
ws.Range("E5:H8").FillUp()
# ------------------------------------------------------------------
#Remplissage automatique de A1 à H1 à A1 à H8
ws.Range("A1:H1").AutoFill(ws.Range("A1:H8"))
#Remplissage automatique de A1 à H2 à A1 à H8
ws.Range("A1:H2").AutoFill(ws.Range("A1:H8"), xlFillDefault)
# ------------------------------------------------------------------
#Filtre automatique de la zone actuelle par rapport à la cellule A1
ws.Range("A1").CurrentRegion.AutoFilter()
ws.Range("A1").CurrentRegion.AutoFilter(Field = 1, Criteria1 = ">30")
#Filtre automatique de la zone actuelle par rapport à la cellule A1
ws.Range("A1").CurrentRegion.AutoFilter()
ws.Range("A1").CurrentRegion.AutoFilter(Field = 1, Criteria1 = ">30", Operator = xlAnd, Criteria2 = "<80")
#Filtre automatique de la zone actuelle par rapport à la cellule A1
ws.Range("A1").CurrentRegion.AutoFilter()
ws.Range("A1").CurrentRegion.AutoFilter(1, ">30")
#Filtre automatique de la zone actuelle par rapport à la cellule A1
ws.Range("A1").CurrentRegion.AutoFilter()
ws.Range("A1").CurrentRegion.AutoFilter(1, ">30", xlAnd, "<80")
#Filtre automatique de la zone actuelle par rapport à la cellule A1
ws.Range("A1").CurrentRegion.AutoFilter()
ws.Range("A1").CurrentRegion.AutoFilter(1, ">30", xlAnd, "<80")
ws.Range("A1").CurrentRegion.AutoFilter(2, ">40", xlAnd, "<60")
#Sélectionnez la plage d'AutoFilter
ws.AutoFilter.Range.Select()
#Sélection de cellule visible dans la plage de filtre automatique
ws.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Select()
#Nombre de lignes de cellules visibles dans la plage de filtre automatique
n = int(ws.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Count / ws.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Columns.Count)
print( n )
#Application du filtre automatique
ws.AutoFilter.ApplyFilter()
#Filtre automatique sans filtre
if ws.FilterMode:
ws.ShowAllData()
#Annuler le filtre automatique
if ws.AutoFilterMode:
ws.AutoFilterMode = False
# ------------------------------------------------------------------
#Trier la zone actuelle en fonction de la cellule A1( Range Sort Method )
#Si Type est omis, la spécification de Order2 etc. après Type est ignorée.
#Si Type est défini sur Aucun, aucune erreur ne se produira, mais il fonctionnera mal.
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,
)
#Trier la zone actuelle en fonction de la cellule A1( Sort Object )
#Bien que cela soit facultatif dans la référence VBA de Microsoft,
#Notez que s'il est omis, il peut ne pas être trié normalement.
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()
# ------------------------------------------------------------------
#Trier après avoir exécuté le filtre automatique( Sort Object )
#Bien que cela soit facultatif dans la référence VBA de Microsoft,
#Notez que s'il est omis, il peut ne pas être trié normalement.
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()
# ------------------------------------------------------------------
#Masquer la feuille
ws.Visible = xlSheetHidden
#Affichage de la feuille
ws.Visible = xlSheetVisible
# ------------------------------------------------------------------
#Paramètres de protection des feuilles
ws.Protect()
#Libération de la protection de la feuille
ws.Unprotect()
#Définir la protection de la feuille avec un mot de passe
ws.Protect(Password = "hoge")
#Déprotéger la feuille avec un mot de passe
ws.Unprotect(Password = "hoge")
# ------------------------------------------------------------------
#Paramètres de protection des livres
wb.Protect()
#Déprotéger le livre
wb.Unprotect()
#Protégez votre classeur avec un mot de passe
wb.Protect(Password = "hoge")
#Supprimer la protection par mot de passe pour les classeurs
wb.Unprotect(Password = "hoge")
# ------------------------------------------------------------------
#Réglage de l'agrandissement du zoom
ws.Activate()
ws.Range("A1").Select()
xlApp.ActiveWindow.Zoom = 90
# ------------------------------------------------------------------
# https://stackoverflow.com/questions/43146073/
#Fixation du cadre
ws.Activate()
ws.Range("C3").Select()
xlApp.ActiveWindow.FreezePanes = True
# ------------------------------------------------------------------
# https://qiita.com/Tachy_Pochy/items/64fe16ec076c52556b2d
# CTRL+HOME (Désolé lorsque vous utilisez le filtre automatique)
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+Sélection de cellules A1 de type HOME
ws.Activate()
ws.Range("A1").Select()
xlApp.Goto(ws.Range("A1"), True)
# ------------------------------------------------------------------
#Recalcul
xlApp.Calculate()
#Arrêter d'afficher les messages d'avertissement dans Excel
xlApp.DisplayAlerts = False
#Commencer à afficher des messages d'avertissement dans Excel
xlApp.DisplayAlerts = True
#Arrêter de mettre à jour l'écran Excel
xlApp.ScreenUpdating = False
#Commencez à mettre à jour l'écran Excel
xlApp.ScreenUpdating = True
# ------------------------------------------------------------------
#Changer le nom de la feuille
wb.Worksheets("Sheet2").Name = "Sheet9"
#Ajouter une feuille
xlApp.Worksheets.Add()
#Copie de feuille(Copier avant la feuille désignée)
ws.Copy(Before = wb.Worksheets("Sheet9"))
# https://stackoverflow.com/questions/52685699/
#Copie de feuille(Copier après la feuille désignée)
ws.Copy(Before = None, After = wb.Worksheets("Sheet9"))
#Déplacer le siège(Passer au début de la feuille spécifiée)
ws.Move(Before = wb.Worksheets("Sheet9"))
# https://stackoverflow.com/questions/52685699/
#Déplacer le siège(Se déplacer après la feuille spécifiée)
ws.Move(Before = None, After = wb.Worksheets("Sheet9"))
#Supprimer la feuille
wb.Worksheets("Sheet9").Delete()
# ------------------------------------------------------------------
#Feuille de sortie au format PDF
ws.ExportAsFixedFormat(Type = xlTypePDF, Quality = xlQualityStandard, Filename = f"{os.getcwd()}\\output.pdf")
# ------------------------------------------------------------------
#Enregistrer le classeur dans un fichier
wb.Save()
#Enregistrer le classeur dans un fichier XLSX
wb.SaveAs(f"{os.getcwd()}\\outputSaveAs.xlsx", FileFormat = xlOpenXMLWorkbook)
#Enregistrer le classeur dans un fichier XLS
wb.SaveAs(f"{os.getcwd()}\\outputSaveAs.xls", FileFormat = xlWorkbookNormal)
#Enregistrer le classeur dans un fichier CSV
wb.SaveAs(f"{os.getcwd()}\\outputSaveAs.csv", FileFormat = xlCSV)
# ------------------------------------------------------------------
#Ferme le livre
wb.Close()
#Fermer sans enregistrer le livre
wb.Close(SaveChanges = False)
# ------------------------------------------------------------------
#Quitter Excel
xlApp.Quit()
# ------------------------------------------------------------------
if __name__ == "__main__":
main()
Recommended Posts