Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientでExcelのUsedRange1行目を取得する

pywin32・win32com.clientでExcelのUsedRange1行目を取得する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2007 ビルド13029.20308 Microsoft Store)+ Python 3.8.3 + pywin32 228

「pywin32 UsedRange 最初の行」
「pywin32 UsedRange() 1行目」
といった検索で、このサイト『インストラクターのネタ帳』へアクセスがありました。

Pythonの外部ライブラリpywin32を使って、ExcelのUsedRangeプロパティで取得したRangeオブジェクトの、1行目を表すRangeオブジェクトを取得するには、どのようなコードを書けばいいのかを探していらしたのでしょう。

[スポンサードリンク]

pywin32でUsedRangeの1行目を取得するPythonのサンプル

Cドライブのtempフォルダーにsample.xlsxが存在する状態で、以下のスクリプトを実行してみてください。

import win32com.client

xl = win32com.client.Dispatch('Excel.Application')
xl.Visible = True
bk = xl.Workbooks.Open(r'C:\temp\sample.xlsx')
sht = bk.Sheets(1)

rng = sht.UsedRange.Rows(1)
rng.Select()
print(rng.Address)

sample.xlsxが開かれ、
  bk = xl.Workbooks.Open(r'C:\temp\sample.xlsx')

1枚目のシートの、
  sht = bk.Sheets(1)

UsedRangeで取得したセル範囲の1行目が、
  rng = sht.UsedRange.Rows(1)

選択され、
  rng.Select()

そのセル番地が絶対参照形式で出力されます。
  print(rng.Address)

UsedRangeの1行目を取得するExcel VBAのサンプル

上記のスクリプトは、どれだけPythonに詳しくても、Excelのオブジェクトモデルを理解できていない限りは書けないはずです。

同じ処理をExcel VBAで書くなら、以下のようなSubプロシージャです。

Sub UsedRangeの1行目を取得する()
 Dim bk As Workbook
 Set bk = Workbooks.Open("C:\temp\sample.xlsx")
 
 Dim sht As Worksheet
 Set sht = bk.Sheets(1)
 
 Dim rng As Range
 Set rng = sht.UsedRange.Rows(1)
 rng.Select
 Debug.Print rng.Address
End Sub

Excel VBAですから、Pythonの、
  import win32com.client
  xl = win32com.client.Dispatch('Excel.Application')
  xl.Visible = True
に該当する部分はありませんけれど、
  bk = xl.Workbooks.Open(r'C:\temp\sample.xlsx')
以降は、よく似たコードです。

最終更新日時:2023-04-20 15:44

[スポンサードリンク]

Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientでExcelのUsedRange1行目を取得する

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

検索


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

.