dbc_spr
@dbc_spr

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【python】pywin32でExcelのセルの一部の文字列に対してフォントの変更を行いたい

解決したいこと

pywin32でExcelのセルの中の一部の文字列に対してフォントの変更を加えたいです。
Excelのマクロ(vb)であれば以下のような記述で実現できることをpywin32ではどのように書けばよいのでしょうか。

マクロの場合
'選択しているセルの2文字目から3文字(2-4文字目)を太字にするマクロ
Sub bold()
    Selection.Characters(2, 3).Font.Bold = True
End Sub

自分で試したこと

とりあえずpywin32でも以下のコードのようにCharactersを使ってみますが

python
import win32com.client
# 編集中のExcel情報を取得
xl = win32com.client.GetObject(Class="Excel.Application")
# ActiveSheetを取得
ws = xl.ActiveSheet
# excelが動いている様子を見る
xl.Visible = True
# cell(B2)の2~4文字目を太字にしたい
ws.Range("B2").Characters(2, 3).Font.Bold = True

以下のエラーがでてきます

エラー
Traceback (most recent call last):
  File "c:\Users\XXX\XXX\Documents\XXX\TestPywin32.py", line 10, in <module>
    ws.Range("B2").Characters(2, 3).Font.Bold = True
  File "C:\Users\XXX\AppData\Local\Programs\Python\Python39\lib\site-packages\win32com\client\dynamic.py", line 181, in __call__       
    return self._get_good_object_(self._oleobj_.Invoke(*allArgs),self._olerepr_.defaultDispatchName,None)
pywintypes.com_error: (-2147352573, 'メンバーが見つかりません。', None, None)

ご存じの方いらっしゃいましたらご教示お願い致します。

0

1Answer

Comments

  1. @dbc_spr

    Questioner

    ありがとうございます!解決出来ました!
    Pywin32ではGetCharactersに変わるのですね。

Your answer might help someone💌