チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Python»Spire.XLS for Python»保護»Python:Excel で特定のセルをロックする方法
2025-05-20

Python:Excel で特定のセルをロックする方法

セルのロックは、スプレッドシート内の特定のセル範囲の内容が誤って変更されるのを防ぐために使用されます。これは、ワークシートを共有する場合や特定のデータを保護したい場合に特に便利です。セルをロックすると、パスワードを知っているか、適切な権限を持つユーザー以外は編集できなくなります。この機能は、データのセキュリティと整合性を確保する上で非常に重要です。

本記事では、Spire.XLS for Python を使用し Python で Excel の特定のセル・列・行をロックする方法をご紹介します。

Spire.XLS for Python のインストール

この操作には、Spire.XLS for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.XLS

Python で特定のセルをロックする

Spire.XLS for Python を使用すると、Worksheet.Range[].Style.Locked プロパティを "True" に設定することで、任意のセル範囲をロックできます。以下の手順で操作します。

  • Workbook のインスタンスを作成し、Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • Workbook.Worksheets[] プロパティを使用して、最初のワークシートを取得します。
  • ワークシートの使用範囲内のすべてのセルを選択し、Worksheet.Range.Style.Locked プロパティを "False" に設定してロックを解除します。
  • 特定のセルやセル範囲をロックするには、テキストを設定し Worksheet.Range[].Style.Locked を "True" に設定します。
  • Worksheet.Protect() メソッドでワークシートを保護します。
  • Workbook.SaveToFile() メソッドでファイルを保存します。
  • Python
from spire.xls import Workbook, SheetProtectionType

inputFile = "Sample.xlsx"
outputFile = "output/セルをロック.xlsx"

# Workbook インスタンスを作成し、サンプルファイルを読み込む
workbook = Workbook()
workbook.LoadFromFile(inputFile)

# 最初のワークシートを取得する
sheet = workbook.Worksheets[0]

# ワークシートの使用範囲内のすべてのセルのロックを解除する
sheet.Range.Style.Locked = False

# シート内の特定のセルをロックする
sheet.Range["A1"].Text = "ロック済み"
sheet.Range["A1"].Style.Locked = True

# シート内の特定のセル範囲をロックする
sheet.Range["C1:E3"].Text = "ロック済み"
sheet.Range["C1:E3"].Style.Locked = True

# パスワードを使ってワークシートを保護する
sheet.Protect("123456", SheetProtectionType.All)

# 結果ファイルを保存する
workbook.SaveToFile(outputFile)
workbook.Dispose()

PythonでExcelワークシートの特定のセルをロックする

Python で特定の列をロックする

ワークシート内の特定の列をロックしたい場合は、Worksheet.Columns[].Style.Locked プロパティを "True" に設定します。その他の手順は前述とほぼ同じです。

  • Workbook のインスタンスを作成し、Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • Workbook.Worksheets[] プロパティを使用して、最初のワークシートを取得します。
  • ワークシートの使用範囲内のすべてのセルを選択し、Worksheet.Range.Style.Locked プロパティを "False" に設定してロックを解除します。
  • 第4列にテキストを設定し、Worksheet.Columns[].Style.Locked プロパティを "True" に設定してロックします。
  • Worksheet.Protect() メソッドでワークシートを保護します。
  • Workbook.SaveToFile() メソッドでファイルを保存します。
  • Python
from spire.xls import Workbook, SheetProtectionType

inputFile = "Sample.xlsx"
outputFile = "output/列をロック.xlsx"

# Workbook インスタンスを作成し、サンプルファイルを読み込む
workbook = Workbook()
workbook.LoadFromFile(inputFile)

# 最初のワークシートを取得する
sheet = workbook.Worksheets[0]

# ワークシートの使用範囲内のすべてのセルのロックを解除する
sheet.Range.Style.Locked = False

# シート内の4列目をロックする
sheet.Columns[3].Text = "ロック済み"
sheet.Columns[3].Style.Locked = True

# パスワードを使ってワークシートを保護する
sheet.Protect("123456", SheetProtectionType.All)

# 結果ファイルを保存する
workbook.SaveToFile(outputFile)
workbook.Dispose()

Spire.XLSでExcelワークシートの列をロックする

Python で特定の行をロックする

同様に、特定の行をロックしたい場合は、Worksheet.Rows[].Style.Locked プロパティを "True" に設定します。手順は以下の通りです。

  • Workbook のインスタンスを作成し、Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • Workbook.Worksheets[] プロパティを使用して、最初のワークシートを取得します。
  • ワークシートの使用範囲内のすべてのセルを選択し、Worksheet.Range.Style.Locked プロパティを "False" に設定してロックを解除します。
  • 第3行にテキストを設定し、Worksheet.Rows[].Style.Locked プロパティを "True" に設定してロックします。
  • Worksheet.Protect() メソッドでワークシートを保護します。
  • Workbook.SaveToFile() メソッドでファイルを保存します。
  • Python
from spire.xls import Workbook, SheetProtectionType

inputFile = "Sample.xlsx"
outputFile = "output/行をロック.xlsx"

# Workbook インスタンスを作成し、サンプルファイルを読み込む
workbook = Workbook()
workbook.LoadFromFile(inputFile)

# 最初のワークシートを取得する
sheet = workbook.Worksheets[0]

# ワークシートの使用範囲内のすべてのセルのロックを解除する
sheet.Range.Style.Locked = False

# ワークシート内の3行目をロックする
sheet.Rows[2].Text = "ロック済み"
sheet.Rows[2].Style.Locked = True

# パスワードを使ってワークシートを保護する
sheet.Protect("123456", SheetProtectionType.All)

# 結果ファイルを保存する
workbook.SaveToFile(outputFile)
workbook.Dispose()

Spire.XLSでExcelワークシートの行をロックする

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30日間有効な一時ライセンスを取得してください。

Read 23 times