Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientでExcelのセル表示形式を取得する

pywin32・win32com.clientでExcelのセル表示形式を取得する

動作検証バージョン:Windows 10 + Python 3.7.3 + pywin32 224 + Excel 1907

「excel rangeオブジェクト 表示形式 python」
という検索キーワードをきっかけにして、ライブラリを使ってセルの表示形式を取得するサンプルコードをご紹介しました。

「excel rangeオブジェクト 表示形式 python」
と検索なさった方は、Excel VBAに慣れてらっしゃる可能性が高いと考えられます。

であるならば、pywin32・win32com.clientを使うコードのほうが、理解しやすいはずです。

[スポンサードリンク]

pywin32でセルの表示形式を取得するサンプル

以下のようなスクリプトで、Cドライブtempフォルダーに存在するfoo.xlsxファイルの、先頭シートA1セルの表示形式が出力されます。

import win32com.client

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')

print(rng.NumberFormatLocal)

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のセル表示形式を取得する

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

検索


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

.