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

pywin32でExcelのセル表示形式を取得する

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

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

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

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

[スポンサードリンク]

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を操作するのは、不可能だと思います)。

最終更新日時:2020-08-20 06:26

[スポンサードリンク]

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

TrackBack:0

TrackBack URL

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

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

.