openpyxlを使って、エクセルファイルのウィンドウ枠を固定する方法が知りたい!
そんなお悩みを、Python歴3年の私ができるだけわかりやすく解説し、解決に導きます。
実行見本
全コード
import openpyxl
wb = openpyxl.load_workbook('input.xlsx')
ws = wb['Sheet1']
ws.freeze_panes = 'B2'
#ws.freeze_panes = 'A2'
#ws.freeze_panes = 'B1'
#ws.freeze_panes = 'A1'
wb.save('input.xlsx')
事前準備
- openpyxlのインストール
既存のエクセルファイルを編集するには「openpyxl」のインストールが必要です。
openpyxlのインストール方法
openpyxlを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install openpyxl
※openpyxlを使用したことがある場合は、このインストール作業は不要です。
解説
ウィンドウ枠の固定
【 ワークシート変数.freeze_panes = ‘固定させたい位置のセル’ 】
上記一文を記述することで、ウィンドウ枠の固定をすることができます。
ws.freeze_panes = ‘B2’
今回の場合は「A列」と「1行目」が固定されて、縦や横にスクロールしても常に見えている状態になります。
上2行とA~B列を固定させたい場合は、「B2」を「C3」に変えてください。
先頭行の固定
A列は固定せず、先頭行の1行目だけ固定したい場合は、下記の通り記述してください。
ws.freeze_panes = ‘A2’
これで先頭行が固定され、縦にスクロールしても常に見えるようになります。
先頭列の固定
先頭行は固定せず、先頭列のA列のみ固定したい場合は、下記の通り記述します。
ws.freeze_panes = ‘B1’
これで先頭列が固定され、横にスクロールしても常に見えるようになります。
固定の解除
「ウィンドウ枠の固定がされているのエクセルファイル」の固定を解除する方法もあります。
下記一文を記述してください。固定が解除されます。
ws.freeze_panes = ‘A1’
その他の解説
既存ファイル操作の基本解説は下記記事で行っております。ご参考ください。
うまく動作しない時
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
Permission denied: ○○
操作しようとしているファイルにアクセスできないというエラーです。
「ファイルを開いている状態なので編集できない」と言っていることが多いので、開いていれば閉じて再度トライしましょう。
開いていなければ、コンピューターを再起動して再度トライしてみましょう。
Worksheet ○○ does not exist
「指定したシートがありません」というエラーです。
指定のシート名が間違っていないか、「sheet1」など先頭が小文字になっていないか確認しましょう。
list index out of range
規定を超える部分を操作しようとした時に出るエラーです。
今回の場合では、実際にないSheet3(シート番号2)などを指定した場合にも起こります。
ファイルとコードを再確認しましょう。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
ファイルの破損
Pythonを使ってウィンドウ枠の固定を続けると、ファイルが破損する場合があります。
修復は可能ですが、気になる場合や大切なデータを編集する際は、手動でウィンドウ枠の固定をするようにしましょう。
まとめ
openpyxlでエクセルファイルのウィンドウ枠の固定をする方法を解説いたしました。
ウインドウ枠の固定:「ws.freeze_panes = ‘B2’」と覚えてください。
最後までお読みいただき、ありがとうございました。