回答編集履歴

1

コメントに対する追記

2019/12/14 11:48

投稿

amahara_waya
amahara_waya

スコア1029

test CHANGED
@@ -1,4 +1,42 @@
1
- 1、Worksheets("Sheet1").Range("A1:G37").Clearのよう範囲指定で削除する方法はあります。
1
+ [コメントする追記]
2
+
3
+ 失礼しました、よく調べたところClearはVBA専用のメソッドでした。申し訳ありません。openpyxl単体で範囲を削除する方法はないみたいです。
4
+
5
+
6
+
7
+ 幸い、PythonからVBAを実行するコードはありますので、一度Excelのマクロを作成し、下記コードを使えば、Clearするマクロを実行することは出来ます。
8
+
9
+
10
+
11
+ ```Python3
12
+
13
+ import win32com.client # ライブラリをインポート
14
+
15
+ excel = win32com.client.Dispatch("Excel.Application") # インスタンス生成
16
+
17
+ excel.Visible = 1 # エクセルを表示する設定(0にすれば非表示で実行される)
18
+
19
+ excel.Workbooks.Open(Filename="C:\macro_book.xlsm", ReadOnly=1) # ブックを読み取り専用で開く
20
+
21
+ excel.Application.Run('msg("aaa")') # マクロ名を指定して実行(引数なしの場合マクロ名のみで実行可能)
22
+
23
+ excel.Workbooks(1).Close(SaveChanges=1) # ブックを保存して閉じる(SaveChangesを0にすると保存せず閉じる)
24
+
25
+ excel.Application.Quit() # 終了
26
+
27
+ ```
28
+
29
+
30
+
31
+ 参考記事:[PythonからExcelのVBA(マクロ)を実行する方法](https://code-life.hatenablog.com/entry/2018/05/15/Python%E3%81%8B%E3%82%89Excel%E3%81%AEVBA%EF%BC%88%E3%83%9E%E3%82%AF%E3%83%AD%EF%BC%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)
32
+
33
+
34
+
35
+ ~追記終わり~
36
+
37
+
38
+
39
+ ~~1、Worksheets("Sheet1").Range("A1:G37").Clearのように範囲指定で削除する方法はあります。~~
2
40
 
3
41
 
4
42