Python(openpyxl)で、Excelのシート・行・列を非表示・再表示する方法をまとめました。用途に合わせた操作方法をコード付きでご紹介します。
ぜひ、お試しください。
行を非表示にする 4選
行を非表示にする(指定行)
以下のコードを実行すると、指定行を非表示にします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
#行を非表示
ws.row_dimensions[3].hidden= True
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test行非表示.xlsx')
Excelシート内の指定行を非表示にします。
「ws.row_dimensions[3].hidden= True」 は、3行目を非表示にします。

行を非表示にする(指定行)
以下のコードを実行すると、指定行を非表示にします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
# 行をループ
for row in ws.iter_rows():
for cell in row:
if cell.row == 3:
ws.row_dimensions[cell.row].hidden= True
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test行非表示.xlsx')
Excelシート内の指定行を非表示にします。
「ws.row_dimensions[cell.row].hidden= True」 は、3行目を非表示にします。

行を非表示にする(複数行)
以下のコードを実行すると、複数行を非表示にします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
#行を非表示
for myrow in [3, 5, 7]:
ws.row_dimensions[myrow].hidden= True
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test行非表示.xlsx')
Excelシート内の複数行を非表示にします。
「for myrow in [3, 5, 7]:」 は、3行目・5行目・7行目を指定しています。

行を非表示にする(指定行から最終行まで)
以下のコードを実行すると、特定行から最終行まで非表示にします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
# 行をループ
for row in ws.iter_rows():
for cell in row:
if cell.row >= 8:
ws.row_dimensions[cell.row].hidden= True
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/行非表示.xlsx')
Excelシート内の複数行を非表示にします。
IF文を使って、8行目以上を非表示にします。

列を非表示にする 2選
列を非表示にする(指定列)
以下のコードを実行すると、指定列を非表示にします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
#列を非表示
ws.column_dimensions['C'].hidden= True
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test列非表示.xlsx')
Excelシート内の指定列を自動で非表示にしました。
[ws.column_dimensions[‘C’].hidden= True] は、C列を非表示にします。

列を非表示にする(複数列)
以下のコードを実行すると、複数列を非表示にします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
#列を非表示
for mycol in ['C', 'E']:
ws.column_dimensions[mycol].hidden= True
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test列非表示.xlsx')
Excelシート内の複数列を自動で非表示にしました。
[for mycol in [‘C’, ‘E’]:] は、C列・E列を指定しています。

エクセルシート再表示 4選
エクセルシート再表示(特定のシート)
以下のコードを実行すると、特定シートを再表示します。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet3']
#シートを再表示する
ws.sheet_state = 'visible'
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート再表示.xlsx')
Excelファイル内の特定シートを再表示します。

エクセルシート再表示(特定のシート)
以下のコードを実行すると、特定シートが非表示だったら再表示にします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
for ws in wb.worksheets:
if ws.title == 'Sheet3':
#もしシートが非表示だったら再表示にする
if ws.sheet_state == 'hidden':
ws.sheet_state = 'visible'
break
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート再表示.xlsx')
Excelファイル内の特定シートが非表示だったら再表示します。

エクセルシート再表示(一番右のシート)
以下のコードを実行すると、右端のシートを再表示します。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb.worksheets[-1]
#シートを再表示にする
ws.sheet_state = 'visible'
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート再表示.xlsx')
Excelファイル内の一番右にあるシートを再表示します。
[ws = wb.worksheets[-1]] は、”一番右のシート” を指定しています。

エクセルシート再表示(一括再表示)
以下のコードを実行すると、非表示シートをまとめて再表示します。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
for ws in wb.worksheets:
#もしシートが非表示だったら再表示にする
if ws.sheet_state == 'hidden':
ws.sheet_state = 'visible'
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート再表示.xlsx')
ファイル内のすべてのシートをループして、非表示シートをすべて再表示します。

エクセルシート非表示 3選
エクセルシート非表示(特定のシート)
以下のコードを実行すると、特定シートを隠します。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
#シートを非表示にする
ws.sheet_state = 'hidden'
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート非表示.xlsx')
Excelファイル内の特定シートを非表示にしました。

エクセルシート非表示(一番右のシート)
以下のコードを実行すると、右端のシートを非表示にします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb.worksheets[-1]
#シートを非表示にする
ws.sheet_state = 'hidden'
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート非表示.xlsx')
Excelファイル内の一番右にあるシートを非表示にしました。
[ws = wb.worksheets[-1]] は、”一番右のシート” を指定しています。

エクセルシート非表示(特定シート以外)
以下のコードを実行すると、特定シート以外を非表示にします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
#ファイル内のシートをループ
for ws in wb.worksheets:
if ws.title !='Sheet2':
#シートを非表示にする
ws.sheet_state = 'hidden'
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート非表示.xlsx')
Excelファイル内の特定シート以外を非表示にしました。
「Sheet2」を残して、それ以外のシートを非表示にします。

この記事がお役に立ちますと幸いです。
・【Python】エクセルを自動処理する方法まとめ

「Python 1年生 体験してわかる!会話でまなべる!」
初めての方でも安心して取り組めるように丁寧に解説
簡単なサンプルを作りながら、対話形式でプログラミングまで紹介
人工知能の導入としてもオススメの1冊です!