Excelを使用する際、データの見た目を整えるために「罫線」を活用することが多いでしょう。特に、データの区切りや強調したい部分を視覚的に分かりやすくするために、罫線は重要な要素となります。手動で罫線を引くことは簡単ですが、大量のデータを扱う場合や、定期的に更新するシートでは自動化したいこともあるでしょう。ここで登場するのが、PythonとExcelを繋ぐ強力なツールである「xlwings」です。
この記事では、Pythonのライブラリ「xlwings」を使って、Excelの罫線を自在に操作する方法を紹介します。これにより、手間をかけずに効率的にExcelシートのフォーマットを整えることができるようになります。
xlwingsとは?
xlwingsは、PythonからExcelファイルを操作できるライブラリです。VBAを使わずにPythonから直接Excelのデータを読み書きでき、Excelを自動化するのに非常に便利です。Excel上でのデータの操作やグラフ作成、フォーマットの自動化など、様々な用途に対応しています。
詳しくは次の記事を読んでみてね!
罫線の基本操作
次に、Excelの罫線を操作する方法を見ていきましょう。xlwingsを使うことで、セルの範囲に対して自由に罫線を設定できます。
特定のセルに対して罫線を引く
import xlwings as xw
# workbookの作成
wb = xw.Book()
# worksheetの取得
sheet = wb.sheets[0]
# セルの指定
cell = sheet.range((5, 5)) # range('E5')などの指定でも可
# 罫線の設定
cell.api.Borders(7).LineStyle = 1 # Borders(7)で左の罫線
cell.api.Borders(8).LineStyle = 1 # Borders(8)で上の罫線
cell.api.Borders(9).LineStyle = 1 # Borders(9)で下の罫線
cell.api.Borders(10).LineStyle = 1 # Borders(10)で右の罫線
# workbookの保存
wb.save("border1.xlsx")
wb.close()
api.BordersはExcelの罫線を直接制御するために使うプロパティです。LineStyle = 1は通常の実線を意味します!7,8,9,10などの指定は、VBAなどで使われている定数なのでこの通り覚えておこう!
特定のセル範囲に対して罫線を引く
範囲の外側
import xlwings as xw
# workbookの作成
wb = xw.Book()
# worksheetの取得
sheet = wb.sheets[0]
# セルの指定
cell_range = sheet.range((5, 5), (10, 10)) # range('E5:J10')などの指定でも可
# 罫線の設定
cell_range.api.Borders(7).LineStyle = 1 # Borders(7)で左の罫線
cell_range.api.Borders(8).LineStyle = 1 # Borders(8)で上の罫線
cell_range.api.Borders(9).LineStyle = 1 # Borders(9)で下の罫線
cell_range.api.Borders(10).LineStyle = 1 # Borders(10)で右の罫線
# workbookの保存
wb.save("border2.xlsx")
wb.close()
セルの指定を範囲にすることで外側の罫線が引けましたね!
内側はどうするかというと…
範囲の内側
import xlwings as xw
# workbookの作成
wb = xw.Book()
# worksheetの取得
sheet = wb.sheets[0]
# セルの指定
cell_range_11 = sheet.range((5, 5), (10, 10)) # range('E5:J10')などの指定でも可
cell_range_12 = sheet.range((15, 15), (10, 10))
# 罫線の設定
cell_range_11.api.Borders(11).LineStyle = 1 # Borders(11)で範囲の内側の縦の罫線
cell_range_12.api.Borders(12).LineStyle = 1 # Borders(12)で範囲の内側の横の罫線
# workbookの保存
wb.save("border3.xlsx")
wb.close()
数値の指定の仕方で罫線の引き方を指定できます!
罫線の引き方一覧
7 : 左側の罫線 (xlEdgeLeft)
8 : 上側の罫線 (xlEdgeTop)
9 : 下側の罫線 (xlEdgeBottom)
10 : 右側の罫線 (xlEdgeRight)
11 : 内側の垂直線(セルの縦方向の内部罫線) (xlInsideVertical)
12 : 内側の水平線(セルの横方向の内部罫線) (xlInsideHorizontal)
罫線の種類とスタイルを変更する
import xlwings as xw
# workbookの作成
wb = xw.Book()
# worksheetの取得
sheet = wb.sheets[0]
# セルの指定
cell_0 = sheet.range((5, 5))
cell_1 = sheet.range((6, 5))
cell_2 = sheet.range((7, 5))
cell_3 = sheet.range((8, 5))
cell_4 = sheet.range((9, 5))
cell_5 = sheet.range((10, 5))
cell_6 = sheet.range((11, 5))
cell_4115 = sheet.range((12, 5))
cell_4118 = sheet.range((13, 5))
# 罫線の設定
cell_0.api.Borders(9).LineStyle = 0
cell_1.api.Borders(9).LineStyle = 1
cell_2.api.Borders(9).LineStyle = 2
cell_3.api.Borders(9).LineStyle = 3
cell_4.api.Borders(9).LineStyle = 4
cell_5.api.Borders(9).LineStyle = 5
cell_6.api.Borders(9).LineStyle = 6
cell_4115.api.Borders(9).LineStyle = -4115
cell_4118.api.Borders(9).LineStyle = -4118
# workbookの保存
wb.save("border4.xlsx")
wb.close()
LineStyle には、Excelで使用できる罫線のスタイルがいくつかあります。LineStyleプロパティで指定できる罫線スタイルは、VBAの定数に対応しており、それぞれ異なる種類の線を表しています。
各 LineStyle の説明:
- 1:実線 (xlContinuous): 通常の連続線。罫線のデフォルトスタイルとして最もよく使われます。
- 2:破線 (xlDash): 短い破線のスタイル。データを区切る際に使われることがあります。
- 3:点線 (xlDot): 小さな点の連続。視覚的に控えめな線が必要なときに使います。
- 4:二重線 (xlDouble): 線が二重に引かれるスタイル。強調したい罫線に使われます。
- 5:ダッシュドット (xlDashDot): ダッシュと点が交互に並ぶ線です。
- 6:ダッシュドットドット (xlDashDotDot): ダッシュ、点、点が連続する線です。
- -4115:点線(細い点) (xlLineStyleDot): 細かい点の連続。通常の点線よりも目立ちません。
- -4118:太い実線 (xlSlantDashDot): 特殊なスタイルで、斜めのダッシュとドットが組み合わさった線です。
罫線の色を設定する
import xlwings as xw
# workbookの作成
wb = xw.Book()
# worksheetの取得
sheet = wb.sheets[0]
# セルの指定
cell_range_11 = sheet.range((5, 5), (10, 10)) # range('E5:J10')などの指定でも可
# 罫線の設定
cell_range_11.api.Borders(11).LineStyle = 1 # Borders(11)で範囲の内側の縦の罫線
cell_range_11.api.Borders(11).Color = 255
cell_range_11.api.Borders(12).LineStyle = 1 # Borders(12)で範囲の内側の横の罫線
cell_range_11.api.Borders(12).Color = 16711680
# workbookの保存
wb.save("border5.xlsx")
wb.close()
罫線のColorプロパティにRGB値を設定することで、任意の色に変更できます。この例では赤色(RGB: 255, 0, 0)を設定しています。
まとめ
xlwingsを使うことで、PythonからExcelの罫線を自由に操作できることが分かりました。外枠だけのシンプルな罫線から、複雑なスタイルや色付きの罫線まで、Pythonコードで簡単に設定できます。大量のデータを扱う場合や、定期的にフォーマットを整える必要がある業務では、こうした自動化のスキルが大いに役立つでしょう。
また、罫線の他にも、xlwingsはセルのフォント、背景色、数式など、様々なフォーマットを操作できるため、Excel業務を効率化するための強力なツールとして活用できます。是非、今回の内容を参考にして、あなたのExcel業務に役立ててみてください!
コメント