「excel rangeオブジェクト 表示形式 python」
という検索キーワードをきっかけにして、ライブラリを使ってセルの表示形式を取得するサンプルコードをご紹介しました。
「excel rangeオブジェクト 表示形式 python」
と検索なさった方は、Excel VBAに慣れてらっしゃる可能性が高いと考えられます。
であるならば、pywin32・win32com.clientを使うコードのほうが、理解しやすいはずです。
pywin32でセルの表示形式を取得するサンプル
以下のようなスクリプトで、Cドライブtempフォルダーに存在するfoo.xlsxファイルの、先頭シートA1セルの表示形式が出力されます。
xl = win32com.client.Dispatch('Excel.Application')
xl.Visible = True
bk = xl.Workbooks.Open(r'C:\temp\foo.xlsx')
sht = bk.Sheets(1)
rng = sht.Range('A1')
Excel VBAのコードとほぼ同じ
pywin32を使う場合、Excel VBAのコードと、かなり近いコードで済みます。
後半の、
bk = xl.Workbooks.Open(r'C:\temp\foo.xlsx')
sht = bk.Sheets(1)
rng = sht.Range('A1')
の部分は、Excel VBAなら「Option Explicit」が設定されている場合に
Dim bk As Workbook
Dim sht As Worksheet
Dim rng As Range
Set bk = Workbooks.Open("C:\temp\foo.xlsx")
Set sht = bk.Sheets(1)
Set rng = sht.Range("A1")
と書けます。
前半の、
xl = win32com.client.Dispatch('Excel.Application')
xl.Visible = True
の部分は、VBScriptやExcel以外のVBAから、Excelを起動して表示する場合に、
Dim xl
Set xl = CreateObject("Excel.Application")
xl.Visible = True
といったコードを書くのと、よく似ています。
Excel VBAを、本当に理解できている方ならば、それほど抵抗なくpywin32を使ったコードを書けるはずです(Excel VBAをあまり理解できていないのに、pywin32でExcelを操作するのは、不可能だと思います)。
最終更新日時:2021-03-01 17:17
Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientでExcelのセル表示形式を取得する