xlwingsでエクセルを編集しているんだけど、
タイトル行だけ塗りつぶしを設定して、少し強調したい…。
なるほど…。
では今回は、「xlwingsでセルを塗りつぶしする方法」を
できるだけわかりやすく解説いたします!
xlwingsでセルを塗りつぶしするには
「color」を使います。まずは実行見本をどうぞ。
実行見本
全コード
ひとまず全コードを網羅します。解説は後ほど行います。
import xlwings
workbook = xlwings.books.active
worksheet = workbook.sheets.active
worksheet['A1'].color = (255, 255, 0)
worksheet['A1'].color = (255, 255, 0)
xlwingsの処理は、予想以上に時間がかかることがあります。
プログラムの最後に「print(‘実行完了’)」などを追記し、完了したのを確認してから結果を見ましょう。
事前準備
- xlwingsのインストール
エクセルファイルを実際に操作するには、「xlwings」のインストールが必要になります。
xlwingsのインストール方法
xlwingsを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install xlwings
※xlwingsを使用したことがある場合は、このインストール作業は不要です。
インストール方法詳細やインストールができない場合の対処法、
基本的な使い方などは下記記事をご参考ください。
解説
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
インポート~シートの取得
import xlwings
workbook = xlwings.books.active
worksheet = workbook.sheets.active
上記コードにて、「xlwingsのインポート」「アクティブブック・アクティブシートの取得」をしています。
詳細は「アクティブシートの取得」の記事をご覧ください。
塗りつぶし
worksheet['A1'].color = (255, 255, 0)
上記一文にて、セルに塗りつぶしを設定することができます。
今回の場合は、「黄色」に塗りつぶされます。
左辺に、「取得したシート変数」と塗りつぶし設定をする「セル名」に続けて「.color」を記述してください。
右辺には()を書き、()内には色に対応した3種類の数値を記述します。
数値は左から、「赤色」「緑色」「青色」の割合を表しています。
<テンプレ>
【 シートが入った変数[‘塗りつぶし設定するセル名’].color = ( 赤色, 緑色, 青色) 】
数値の割合は、光の三原色になっています(詳細は後述)
「赤色」「緑色」「青色」それぞれ「0~255」までの数値を指定できます。
(255, 0, 0)にすると、セルが赤色に塗りつぶされます。
よく使う色の一覧
一般的によく使う色を一覧にまとめました。
#赤
worksheet['A1'].color = (255, 0, 0)
#緑
worksheet['A2'].color = (0, 255, 0)
#青
worksheet['A3'].color = (0, 0, 255)
#黄色
worksheet['A4'].color = (255, 255, 0)
#オレンジ
worksheet['A5'].color = (250, 200, 0)
#紫
worksheet['A6'].color = (255, 0, 255)
#水色
worksheet['A7'].color = (0, 255, 255)
#白
worksheet['A8'].color = (255, 255, 255)
#黒
worksheet['A9'].color = (0, 0, 0)
#灰色
worksheet['A10'].color = (200, 200, 200)
#塗りつぶしなし
worksheet['A11'].color = None
前項で少し触れましたが、「光の三原色」を使って塗りつぶしの色を指定します。
光の三原色とは、「赤色」「緑色」「青色」の光をあてる強さや割合によって色が変化するというものです。
(0, 0, 0)のように光を全く当てなければ真っ暗なので黒、すべての光をいっぱいに当てると白くなるという具合です。
「赤と緑で黄色」など、理屈がわかっていれば数値を変えて好きな色を出すことができます。
上記コードの数値は目安ですので、調節しながらお好みの色にしてください。
うまく動作しない時
エラーが出る
‘NoneType’ object has no attribute ‘books’
エクセルブックやエクセルファイルを開いていないのに、ブックやファイルを取得しようとした場合に出るエラーです。
事前に対象のファイルを開くように指定するなど、構文を見直してみましょう。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
空のブックが生成される・残る
作業環境によっては「空のブック(Book1)」が生成されたり、残ってしまう場合があります。
このまま作業を続けると、空のブックがどんどん増えていく可能性があるため対処が必要です。
対処法としましては、何か別のエクセルを開いたままにしておきましょう。
そうすることで、空のブックは生成されません。
作業を始める前に、適当なエクセルファイルをひとつ開いておくことをおすすめします。
いつまでたっても実行されない
エラーは出ていないのに、いつまでたっても実行されない場合は、実行内容がエクセルに届いていない可能性があります。
「books.active」「sheets.active」を使用していて、エクセルファイルが最小化されていると、実行内容がエクセルに届かない場合があります。(もう1度実行すると、同じ内容が2回実行される)
エクセルは最小化せず、コードエディタとエクセルを並べて表示させた状態で実行するとうまくいきやすいです。
最後に
xlwingsでセルの背景色を設定(塗りつぶし)する方法を解説いたしました。
当ブログでは、xlwingsやopenpyxlなど、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
挫折せずにPythonを独学で学習する方法は特におすすめです。
最後までお読みいただき、ありがとうございました。がんばってください!