Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientでも別のブックにシートをコピー(複製)できる

pywin32・win32com.clientでも別のブックにシートをコピー(複製)できる

動作検証バージョン:Windows 11 Home + Python 3.10.6(64-bit) + pywin32 305 + 64bit Excel

Pythonの外部ライブラリxlwingsを使えば、Excelのワークシートを別のブックにコピー(複製)できることをご紹介しています。

xlwingsが内部で使用しているライブラリpywin32を使っても、別のブックにシートをコピーできます。

pywin32・win32com.clientで別のブックにシートをコピー(複製)するサンプル

Cドライブtempフォルダーに、samp_a.xlsxブックとsamp_z.xlsxブックを用意しておいてから、以下のスクリプトを実行してください。

import win32com.client as win32

xl = win32.Dispatch('Excel.Application')
xl.Visible = True

bk_a = xl.Workbooks.Open(r'c:\temp\samp_a.xlsx')
bk_z = xl.Workbooks.Open(r'c:\temp\samp_z.xlsx')

bk_a.Sheets(1).Copy(Before=bk_z.Sheets(1))

samp_aブックの1枚目のシートが、samp_zブックの1枚目のシートの前に複製されます。

VBAのコードとほとんど同じ

COMアプリケーションであるExcelを、ライブラリpywin32を経由してPythonで操作するか、VBAで操作するかだけの違いで、先ほどのwin32com.clientを使ったコードは、以下のVBAのコードと実質的に同じです。

sub sample()
 Dim xl
 Set xl = CreateObject("Excel.Application")
 xl.Visible = True

 Dim bk_a, bk_z
 Set bk_a = xl.Workbooks.Open("c:\temp\samp_a.xlsx")
 Set bk_z = xl.Workbooks.Open("c:\temp\samp_z.xlsx")

 bk_a.Sheets(1).Copy Before:=bk_z.Sheets(1)
End Sub
[スポンサードリンク]

Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientでも別のブックにシートをコピー(複製)できる

「pywin32・win32comの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.