人気ブログランキング | 話題のタグを見る
<< Python 自身のパスを「_... Python メッセージボック... >>

Python xlwingsで実行エラーを利用した条件分岐「try ~ except」

TH69です。

Pythonのコードを実行すると、実行エラーで処理が止まってしまうことがあります。

例えば、下記のようなコードだとアクティブな開いているブックが存在しない場合は

import xlwings as xw
wb = xw.books.active
ws = wb.sheets.active
print(ws.name)


「例外が発生しました: XlwingsError」のエラーが出て止まってしまいます。
Python xlwingsで実行エラーを利用した条件分岐「try ~ except」_e0382354_16183992.gif

ということは、開いたブックがない時のエラーは「XlwingsError」なので、これを逆手にとって条件分岐のネタにできないかと考えたのが次のコードです。

import xlwings as xw
try:
wb = xw.books.active
ws = wb.sheets.active
print(ws.name)
except xw.XlwingsError:
print('開いたブックはありません')


実行すると、

Python xlwingsで実行エラーを利用した条件分岐「try ~ except」_e0382354_16300100.gif

処理が止まることなく「開いたブックはありません」が表示されました。

もちろん開いたブックが存在すると

Python xlwingsで実行エラーを利用した条件分岐「try ~ except」_e0382354_16341732.gif

「Sheet1」のシート名を取得することができます。

try:
  (エラーがない時の処理)
except xw.XlwingsError:
  (エラー時の処理)



なので、xlwingsで開いたブックの有無での条件分岐は下記コード

import xlwings as xw
try:
wb = xw.books.active
  (ブックが開いている時の処理)
except xw.XlwingsError:
  (ブックが開いていないときの処理(ブックを指定して開くなど))

で行けるかも、と思います。


では、いい投資を!



by th1252 | 2023-04-21 16:52 | Python | Trackback | Comments(0)
名前
URL
削除用パスワード
<< Python 自身のパスを「_... Python メッセージボック... >>