Pythonライブラリ(openpyxl)によるExcelのセルの書式設定【前編】(フォント・塗りつぶし・罫線)【徹底解説】

スポンサーリンク
Python外部ライブラリ(openpyxl)➂ openpyxl

本記事ではMS-Office ExcelをPythonで操作するライブラリとして「openpyxl」の解説をしていきます。

前回の記事ではExcelの基本処理単位であるセルを操作するためのCellオブジェクトを取得する方法について各種メソッドやプロパティの使い方を紹介しました。

セルに数値や文字列といった値を設定したり取得するといった操作はExcelでおこなう作業の基本となるものです。

以降で解説する内容は連載1,2回目の内容を理解されているという前提の上で進めていきます

下記、関連記事をお読みいただくことをオススメしています。


セルに数値や文字列といった値を設定したり、取得するといったことはできるようになりました。ですが、単調に羅列されたデータだけでは味気ない寂しいコンテンツとなりがちです。

そうならないために次に検討することは、セルの書式を見栄え良く整えて第三者にも直感的に分かりやすい資料作りをしていくことだと思います。

連載3回目となる今回の記事では、セルにフォントや塗りつぶし、罫線といった装飾、つまりセルに書式(スタイル)を設定する方法を取り上げます。

openpyxlには勿論、セルの書式設定に関するモジュールやクラスも豊富に用意されており容易に対応することができます。

但し、セルの書式に関する設定項目は多岐にわたるため記事を2回に分けて解説していきます。

前編にあたる本記事では、セルに書式を設定するためのプロパティと「フォント」・「塗り潰し」・「罫線」のオブジェクトを生成する各種クラスについてを解説します。

そして次回の後編では、セルの「配置の指定」と「表示形式」、そして各種オブジェクトを組み合わせてユーザーが独自のスタイルにカスタマイズする方法(「名前付き定義」)について取り上げる予定です。(図1)

Part3_目次_改
図1 記事の解説範囲

この記事を読むことでopenpyxlによるExcel操作に関する、次のようなことが「できる・わかる」ようになりますので最後までお付き合いください。

➀. セルの書式設定の手順をopenpyxlとExcelとで比較できる。

➁. Cellオブジェクトに書式を適用する方法(フォント・塗り潰し・罫線)が分かる。

➂. 各書式クラスにおける引数指定の仕様が分かる。

本サイトでの紹介例は一例です。また、関数などの省略可能なオプション引数などについては割愛していますので、詳細や不明点などは必要に応じて公式サイトなどを参照してください。

記事内で動作確認した開発環境とバージョン情報は次のとおりとなります。異なる環境・バージョンのライブラリを使う際はこの点、ご留意ください。

・Python 3.7.6(64bit)

・openpyxl 3.0.3

・JupyterNotebook 6.0.3

・Microsoft Office Personal 2016

それでは、次節からは具体的な各種オブジェクトの扱い方について詳しく解説していきます。

スポンサーリンク

1. セルに書式(スタイル)を設定する

本節では個々のセル(Cellオブジェクト)にフォントなどの書式を設定する方法を解説します。

openpyxlを使うことでExcelの「セルの書式設定ダイアログ」(図2)にある項目のほぼ全てのことに対応することができます

セルの書式ダイアログ(一覧)
図2 Excelのセルの書式設定ダイアログ

各書式を設定するためには、まずは対応する書式専用のクラスからオブジェクトを生成し、次にCellオブジェクト配下の各種プロパティにて設定していきます。(図3)

セルの書式の設定の概略
図3 セルに書式オブジェクトを適用

以降では書式クラスからオブジェクト生成(コンストラクタ)する時に指定する引数と既定オプションの解説をしていきます。また実際のオブジェクトの適用例を示します。

1.1 フォント(Fontオブジェクト)の設定

フォントに関する設定(フォントタイプ、サイズ、色など)は Fontクラス から Fontオブジェクト 生成し、それをCellオブジェクトの「 fontプロパティ 」で設定することで対応できます。

書式を示すと次のようになります。

Fontオブジェクト

from openpyxl.styles import Font

Font(name, size, bold, italic, vertAlign, underline, strike, color)


引数: name : フォント名を設定する(デフォルト: ‘Calibri‘)

引数: size : 文字サイズを設定する(デフォルト: 11)

引数: bold : 太文字にする(デフォルト: False)

引数: italic : 斜体文字にする(デフォルト: False)

引数: vertAlign : 文字の位置(デフォルト: None) ‘subscript’, ‘baseline’, ‘superscript’から選択

引数: underline : 下線を引く(デフォルト: None) ‘singleAccounting’, ‘double’, ‘doubleAccounting’, ‘single’から選択

引数: strike : 打消し線を引く(デフォルト: False)

引数: color : 文字色を設定する(デフォルト: ‘FF000000‘)

戻り値: Fontオブジェクト

※引数は全てオプショナル引数

Excelのセルの書式設定(フォント-タブ)にあるほぼ全ての項目について指定することができます。

(図3)

セルの書式ダイアログ(フォント)
図3 セルの書式指定(フォント)

引数nameには’ Meiryo UI’,’ MS ゴシック’などの日本語を含む文体フォント名を文字列で指定します。また、引数vertAlign(文字配置(縦方向))や引数underline (下線)には図4に示すような既定オプションの中から選択することができます。

セルの書式ダイアログ(Font)_引数オプション
図4 underline引数とvertAlign引数のオプション定数

引数colorには文字色の情報を設定しますが、aRGB指定による方式(例白:00FFFFFF明度aは‘00’のみ)のHex(16進数))と Colorオブジェクト を適用する方法の2通りがあります。

Colorクラスについては、次の公式ドキュメントもあわせて参照してください。

Colorオブジェクト

https://openpyxl.readthedocs.io/en/stable/styles.html#colours

セルにフォント(Fontオブジェクト)の書式を適用するコード例を<List1>に示します。

コードの概要は、「文字のフォント(文体)を設定」(A)、「フォントサイズを設定」(B)、「文字の配置位置の設定」(C)、「下線を設定」(D)、そして、その他「取り消し線・太字・斜体の設定」(E)を各セルに対しておこなっています。(C)(D)のオプション定数は全てのパターンで確認していますので参考にしてください。※(A)などの識別記号はコードのコメントに記しています。

from openpyxl import Workbook
from openpyxl.styles import Font   # Fontクラスをインポート

wb = Workbook()
ws = wb.active

#(A)---------------------------------------------------------------------------------------
# フォント名(種類)の設定

ws["A1"].value = '【フォント名】'
range = ws["B3":"E4"]

#フォント名の設定値 「Arial,MS Pゴシック,Century,BIZ UDPゴシック」を指定
font_name = ['Arial', 'MS Pゴシック', 'Century', 'BIZ UDPゴシック']

for cell_1, cell_2, name in zip(range[0], range[1], font_name):
    cell_1.value = name            # セルに値(オプション定数)をセット
    cell_2.value = '神奈川県'      # セルに値をセット
    cell_2.font = Font(name=name)  # Fontオブジェクト(フォント名(種類))を適用する


#(B)---------------------------------------------------------------------------------------
# フォントサイズの設定

ws["A6"].value = '【フォントサイズ】'
range = ws["B8":"D9"]

#フォントサイズの設定値(ポイント) 「8, 11, 12.5ポイント」を指定
font_size = [8, 11, 12.5]

for cell_1, cell_2, size in zip(range[0], range[1], font_size):
    cell_1.value = size
    cell_2.value = '川崎市'
    cell_2.font = Font(size=size)  # Fontオブジェクト(フォントのサイズ)を適用する
    

#(C)---------------------------------------------------------------------------------------
# 文字の配置(縦方向)の設定

ws["A11"].value = '【文字の高さ】'
range = ws["B13":"D14"]

# 文字の配置位置の設定値 「下限(subscript)、中央、上限(superscript)」を指定
font_vertAlign = ['subscript', 'baseline', 'superscript']

for cell_1, cell_2, align in zip(range[0], range[1], font_vertAlign):
    cell_1.value = align
    cell_2.value = '横浜市'
    cell_2.font = Font(vertAlign=align)  # Fontオブジェクト(配置位置「高さ」)を適用する


#(D)---------------------------------------------------------------------------------------
#アンダーライン(下線)の設定

ws["A16"].value = '【下線の設定】'
range = ws["B18":"E19"]

# 下線の設定値 「一重線(single), 二重線(double)…」を指定
font_underline = ['singleAccounting', 'double', 'doubleAccounting', 'single']

for cell_1, cell_2, line in zip(range[0], range[1], font_underline):
    cell_1.value = line
    cell_2.value = '相模原市'
    cell_2.font = Font(underline=line)  # Fontオブジェクト(下線)を適用する


#(E)---------------------------------------------------------------------------------------
#その他の設定(取り消し線・太字・斜体)

ws["H1"].value = '【その他(取り消し・太字・斜体)の設定】'
ws["I3"].value = '横須賀市'

# 下線と太字、斜体を有効にし、文字色を変更して、
# Fontオブジェクトを作成しセルに適用する。
ws["I3"].font = Font(size=12, strike=True, bold=True, italic=True, color='FF0F0F')


wb.save('styles_Font.xlsx')

<List1>を実行した結果は以下のようになりました。

Fontオブジェクト適用例
図4 List1の実行結果

1.2 塗りつぶし(Fillオブジェクト)の設定

セルに色やパターン(模様・ハッチング)などを装飾するには PatternFillクラスGradientFillクラス からそれぞれオブジェクトを生成し、それをCellオブジェクトの「 fillプロパティ 」で設定することで適用します。

2つのクラスの使い分けは、模様パターンとしてセルを塗りつぶしする場合にはPatternFillオブジェクトを適用し、2階調以上の色をグラデーション変調させる場合にはGradientFillオブジェクトを適用します。以下で詳しく解説します。

1.2.1 パターン (PatternFillオブジェクト)

セルに模様パターンを使って塗りつぶし効果を適用するにはPatternFillクラスを次の書式のようにして引数を指定してオブジェクトを生成します。

PatternFillオブジェクト

from openpyxl.styles import PatternFill

PatternFill(pattern_type, fgColor, bgColor, start_color, end_color)


引数: patternType : 塗りつぶしパターンを設定する(デフォルト:None) 18種類のパターン定数を指定する

引数: fgColor : 前景色を設定する

引数: bgColor : 背景色を設定する

引数: start_color : 色1を設定する(デフォルト:’00000000‘) 前景色を設定するのと同義

引数: end_color : 色2を設定する(デフォルト:’00000000) 背景色を設定するのと同義

戻り値: PatternFillオブジェクト

※引数は全てオプショナル引数

Excelのセルの書式設定(塗りつぶしTab)と各引数との対応関係は図5のとおりです。引数start_colorと引数end_colorはそれぞれfgColor、bgColorと同義ですが、同時に指定した場合は前者が優先されるようです。

また、patternType引数にはあらかじめ18種類ものパターンが組込まれた既定のオプションを指定します。

セルの書式ダイアログ(PatternFill)
図5 セルの書式指定(塗りつぶし)

それでは、セルにパターン塗りつぶしするコード例を<List2>に示します。

コードの概要は、(A)で引数patternTypeで指定可能な組込みパターンをすべて使って表示しています。(B)では前景色と背景色を個別または、同時に設定しています。パターン(模様線)が前景色(fgColor/start_color)に該当します。

from openpyxl import Workbook
from openpyxl.styles import PatternFill, GradientFill    # PatternFillクラスをインポート

wb = Workbook()
ws = wb.active

# 複数個のCellオブジェクトを取得(Range)
range = ws.iter_cols(min_row=2, max_row=20, min_col=2, max_col=3)

# pattern_typeに指定可能なオプション定数一覧
fill_pattern = ['solid', 'lightGray','gray125', 'gray0625', 'mediumGray', 'darkGray',
               'darkUp', 'lightTrellis', 'darkHorizontal', 'lightHorizontal', 'darkGrid',
               'lightUp', 'darkDown', 'darkTrellis', 'lightGrid', 'lightVertical', 'lightDown', 'darkVertical']

# (A)------------------------------------------------------------------------------------------------------------
# 全パターン一覧を表示する

for col in range:
    for cell, pattern in zip(col, fill_pattern): # zip関数でアンパック
        
        if cell.col_idx == 2 :      # 'B'列の場合はオプション定数の値を表示する
            cell.value = pattern
        else:                       # 'C'列の場合は塗りつぶし(パターン)を適用する
            cell.fill = PatternFill(patternType=pattern)  # PatternFillオブジェクトをfillプロパティで設定する

# (B)------------------------------------------------------------------------------------------------------------
# 前景色と背景色を設定する

# (1)前景色(fgColor)を指定
ws['F2'].fill = PatternFill(patternType='lightGrid', fgColor="FF0000")

# (2)背景色(gbColor)を指定
ws['F4'].fill = PatternFill(patternType='lightGrid', bgColor="FF0000")

# (2)前景色と背景色を指定➀
ws['F6'].fill = PatternFill(patternType='lightGrid', fgColor="FF0000", bgColor="0000DD")
ws['F8'].fill = PatternFill(patternType='lightGrid', fgColor="0000DD", bgColor="FF0000")

# 前景色と背景色を指定➁
# (2)start_color/end_colorで色を指定することも可能
ws['F10'].fill = PatternFill(patternType='lightGrid', start_color="FF0000", end_color="0000DD")


wb.save('styles_PatternFill.xlsx')

<List2>を実行した結果は以下のようになりました。

左側(B, C列)のパターン一覧はExcelで設定可能なすべてを網羅しています。リファレンスとして参考にして下さい。

FillPatternオブジェクトの適用例
図6 List2の実行結果

1.2.2 グラデーション(GradientFillオブジェクト)

セルを2色以上の階調色(グラデーション)で塗りつぶすには、GradientFillクラス を次の書式のような引数指定でオブジェクトを生成します。

GradientFillオブジェクト

from openpyxl.styles import GradientFill

GradientFill(type, degree, left, right, top, bottom, stop)


引数: type : グラデーションの種類を指定する(デフォルト:’linear‘) linear‘(線形変化), ‘path‘(割合変化)から指定する

引数: degree : グラデーションの角度を指定する(デフォルト:0) 0~360の範囲で指定する typeが’linear’の場合のみ有効

引数: left : 左基準の色合い変化率(デフォルト:0) 20%の場合は’0.2’のように指定する typeが’path’の場合のみ有効

引数: right : 右基準の色合い変化率(デフォルト:0)

引数: top : 上基準の色合い変化率(デフォルト:0)

引数: bottom : 下基準の色合い変化率(デフォルト:0)

引数: stop : グラデーション色を指定する(デフォルト:()) 2以上の色をタプルで指定する

戻り値: GradientFillオブジェクト

※引数は全てオプショナル引数

Excelのセルの書式設定(塗りつぶし効果)と各引数との対応関係は図7のとおりです。

グラデーションには2通りの階調パターンの種類があります。一つが「線形色変化」で対向辺に向けて色階調を線形に等間隔に変化させます。

そして、もう一つが「割合変化」で上下左右の位置からの割合指定にて色を変化させる方法です。

前者は type引数 に「 linear 」で、後者は「 path 」で選択します。その他の引数もtypeにどちらを指定するに依存します。(List3を参照して下さい。)

また、色は2色以上の情報を stop引数 にタプルの形式であたえます。

セルの書式ダイアログ(GradientFill)
図7 セルの書式指定(塗りつぶし効果)

セルにグラデーション塗りつぶしをするコード例を<List3>に示します。

コードの概要は、(A)は 引数typeに“linear” を設定し線形グラデーション塗りつぶしをしています。また、引数degree も指定することで色変調の向きを変えています。引数degreeは線形グラデーション時のみ有効となる引数です。

(B)では、引数typeに“path” を指定し変化率グラデーション塗りつぶしをさせる例です。引数top, leftに設定する変化率(0.0~1.0)を変えながら見栄えの変化を確認しています。

引数top/bottom/left/rightは変化率グラデーション設定時に有効となる引数となります。

from openpyxl import Workbook
from openpyxl.styles import GradientFill    # GradientFillクラスをインポート

wb = Workbook()
ws = wb.active


# (A)--------------------------------------------------------------------------------------------
# 線形グラデーション塗りつぶし

ws.merge_cells('D2:E3')
# 2色指定
ws['D2'].fill = GradientFill(type='linear', stop=("00FF00", "FF0000"))

ws.merge_cells('D5:E6')
# 3色指定
ws['D5'].fill = GradientFill(type='linear', stop=("00FF00","0000FF", "FF0000"))

ws.merge_cells('D8:E9')
# 3色指定 & 91度回転
ws['D8'].fill = GradientFill(type='linear', stop=("00FF00","0000FF", "FF0000"), degree=91)

ws.merge_cells('D11:E12')
# 3色指定 & 181度回転
ws['D11'].fill = GradientFill(type='linear', stop=("00FF00","0000FF", "FF0000"), degree=181)

ws.merge_cells('D14:E15')
# 3色指定 & 271度回転
ws['D14'].fill = GradientFill(type='linear', stop=("00FF00","0000FF", "FF0000"), degree=271)


# (B)--------------------------------------------------------------------------------------------
# 変化率グラデーション塗りつぶし➀
# (引数top可変)

ws.merge_cells('H2:I3')
# top=0.0
ws['H2'].fill = GradientFill(type='path', top="0.0", stop=("00FF00", "000000"))

ws.merge_cells('H5:I6')
# top=0.2
ws['H5'].fill = GradientFill(type='path', top="0.2", stop=("00FF00", "000000"))

ws.merge_cells('H8:I9')
# top=0.5
ws['H8'].fill = GradientFill(type='path', top="0.5", stop=("00FF00", "000000"))

ws.merge_cells('H11:I12')
# top=0.8
ws['H11'].fill = GradientFill(type='path', top="0.8", stop=("00FF00", "000000"))

ws.merge_cells('H14:I15')
# top=1.0
ws['H14'].fill = GradientFill(type='path', top="1.0", stop=("00FF00", "000000"))


# -----------------------------------------------------------------------------------------------
# 変化率グラデーション塗りつぶし➁
# (引数left可変)

ws.merge_cells('L2:M3')
# left=0.0
ws['L2'].fill = GradientFill(type='path', left="0.0", stop=("00FF00", "000000"))

ws.merge_cells('L5:M6')
# top=0.2
ws['L5'].fill = GradientFill(type='path', left="0.2", stop=("00FF00", "000000"))

ws.merge_cells('L8:M9')
# top=0.5
ws['L8'].fill = GradientFill(type='path', left="0.5", stop=("00FF00", "000000"))

ws.merge_cells('L11:M12')
# top=0.8
ws['L11'].fill = GradientFill(type='path', left="0.8", stop=("00FF00", "000000"))

ws.merge_cells('L14:M15')
# top=1.0
ws['L14'].fill = GradientFill(type='path', left="1.0", stop=("00FF00", "000000"))

# -----------------------------------------------------------------------------------------------
# 変化率グラデーション塗りつぶし➂
# (引数left. topを可変)

ws.merge_cells('P6:Q7')
# top=0.5, left=0.5
ws['P6'].fill = GradientFill(type='path', top="0.5", left="0.5", stop=("00FF00", "000000"))

ws.merge_cells('P10:Q11')
# top=0.5, left=0.5
ws['P10'].fill = GradientFill(type='path', top="0.5", left="0.5", stop=("000000", "00FF00"))



wb.save('styles_GradientFill.xlsx')

<List3>を実行した結果は以下のようになりました。

線形グラデーションは直感的に分かりやすいですね。変化割合グラデーションはパラメータの増減によりどのように変調するか結構難しいですが綺麗です。

GradientFillオブジェクトの適用例
図8 List3の実行結果

1.3 罫線(Borderオブジェクト)の設定

罫線に関する設定は Borderクラス から Borderオブジェクト を次の書式で取得した後、Cellオブジェクトの「borderプロパティ」にてセルに適用させます。

Borderオブジェクト

from openpyxl.styles import Border

Border(left, right, top, bottom, diagonal, diagonalDown, diagonalUp)


引数: left : 罫線(左)にSideオブジェクトを設定

引数: right : 罫線(右)にSideオブジェクトを設定

引数: top : 罫線(上)にSideオブジェクトを設定

引数: bottom : 罫線(下)にSideオブジェクトを設定

引数: diagonal : 罫線(斜線)にSideオブジェクトを設定

引数: diagonalDown : 右から左へ下がる斜線を有効にする

引数: diagonalUp : 右から左へ上がる斜線を有効にする

戻り値: Borderオブジェクト

※引数は全てオプショナル引数

Excelのセルの書式設定(罫線Tab)と各引数との対応関係は図9のとおりです。

Borderオブジェクトはセルの上下左右どの罫線を引くかを設定します。具体的に線の種類や太さ、色とった罫線の詳細情報は各引数(left,right,top,bottom)に Sideオブジェクト としてあたえています。

Sideオブジェクトは次項で解説します。

セルの書式ダイアログ(Border)
図9 セルの書式指定(罫線)

1.3.1 Sideオブジェクトの設定

罫線の線の太さや種類などの詳細情報は Sildeオブジェクト にまとめます。 Sideクラス を次の書式でコンストラクタします。

Sideオブジェクト

from openpyxl.styles import Side

Side(border_style, color)


引数: border_style : 線の種類設定する(デフォルト:None)

引数: color : 線の色を設定する(デフォルト:’FF000000‘)

戻り値: Sideオブジェクト

※引数は全てオプショナル引数

Excelのセルの書式設定(罫線 Tab)と各引数との対応関係は次のとおりです。(図10左) 罫線の種類と色を指定することができます。罫線の種類は全13種類でExcelと互換があるようです。(図10右)

セルの書式ダイアログ(Side)_with_boder_style引数一覧
図10 border_style引数のオプション定数

それでは、セルに罫線(Border(Side)オブジェクト)を適用するコード例を<List4>に示します。

コードの概要は、引数border_styleに全ての種類のオプション定数を指定させながら各セルに「囲い枠線」と「斜線」を適用していきます。

from openpyxl import Workbook
from openpyxl.styles import Border, Side    # Border/Sideクラスをインポート

wb = Workbook()
ws = wb.active

# 罫線の種類一覧(オプション定数)
border_styles = ['hair', 'dashDotDot', 'dashDot', 'thin', 'mediumDashed', 'slantDashDot',
                'dotted', 'dashed', 'medium', 'thick', 'mediumDashDot', 'double', 'mediumDashDotDot']

# 処理対象の行番号を格納したリスト
row_indexes = [3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27]



for row_index, border_style in zip(row_indexes, border_styles): # zipで対象行とスタイル一覧をアンパック
    for col_index in [2, 3, 5]:   # "B列"C列"E列"
        
        if col_index == 2:
            
            # "B列"のセルに線の種類を指定するオプション定数名を設定する
            ws.cell(row=row_index, column=col_index).value=border_style
            
        elif col_index == 3:
            
            # "C列"のセルに囲い枠線を設定する
            side_obj = Side(border_style=border_style)
            # Sideオブジェクトをセルの左右上下に指定してBorderオブジェクトを生成する
            border_obj = Border(left=side_obj, right=side_obj, top=side_obj, bottom=side_obj)
            # Borderオブジェクトを適用する
            ws.cell(row=row_index, column=col_index).border = border_obj
        
        else:
            
            # "E列"のセルに斜線を入れる
            side_obj = Side(border_style=border_style)
            # diagonal* 引数を指定してBorderオブジェクトを生成する
            border_obj = Border(diagonal=side_obj, diagonalDown=True, diagonalUp=True)
            # Borderオブジェクトを適用する
            ws.cell(row=row_index, column=col_index).border = border_obj
            
            
wb.save('styles_Border.xlsx')

<List4>を実行した結果は以下のようになりました。

罫線のスタイルはすべて確認していますのでデザインのリファレンスとして下さい。

Borderオブジェクトの適用例
図11 List4の実行結果

2. まとめ

いかがでしたでしょうか?

今回はMS-OfficeのExcelを操作する外部ライブラリとして「openpyxl」を使用して、セルの書式設定の扱い方について解説してきました。

セルの装飾やデータなどの中身の見栄えを整えることは、必ず必要になってくると思います。openpyxlで用意されているクラスを使うことでExcelと遜色ない設定・操作が可能になることがお分かりいただけたと思います。

ここで、この記事の要点をまとめておきます。

➀. openpyxlにはExcelのセルの書式設定に関連するクラスが多数用意されている。

➁. フォント・塗りつぶし・罫線などの書式設定は各クラスの引数に必要な情報を渡して、オブジェクトを生成したのち、Cellオブジェクトの各種プロパティにて設定する。

➂. openpyxlを用いた書式設定は、セル範囲(Rangeオブジェクト)に一括で設定することはできない(一部を除き)為、個々のセルに分離したのち適用することになる。


冒頭にも述べましたが、Excelにはセルの書式に関する設定は細かなことまで豊富に用意されていますが、今回の記事だけではそのすべてを紹介することはできませんでした。

次回も引き続きセルの書式設定の後編として、「表示形式」「配置位置」「スタイルの名

前付き定義とその適用方法」について解説していきたいと思います

ぜひ、次の記事も参考にして頂けたら幸いです。リンク先はこちらになります。↓

最後までお読みいただきありがとうございました。

タイトルとURLをコピーしました