Excelのセルの入力禁止措置 1 mobazou 2023年12月26日 17:23 Excelのセルの入力禁止は、いままでバッファをもって元に戻すという処置をしていましたが、もっと簡単にシートの保護で対応可能なようです。Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Me.Columns("G")) Is Nothing Then Dim ws As Worksheet Set ws = Me Dim CheckCell As Range Set CheckCell = ws.Range("G" & Target.Row) 'G列のセルを指定 Dim AffectedRange As Range Set AffectedRange = ws.Range("H" & Target.Row & ":K" & Target.Row) '影響を受ける範囲HからK列 Application.EnableEvents = False 'イベントを一時的に無効化 ws.Unprotect ' G列に数式がない場合、H-K列をグレーアウトし、ロックする If Not CheckCell.HasFormula Then With AffectedRange .Interior.Color = RGB(200, 200, 200) 'グレーアウト .Locked = True 'セルをロック End With Else ' G列に数式がある場合、H-K列のグレーアウトとロックを解除する With AffectedRange .Locked = False 'セルのロックを解除 .Interior.ColorIndex = xlNone 'セルの色を元に戻す End With End If ws.Protect Application.EnableEvents = True 'イベントを再度有効化End IfEnd SubここではG列に式がある場合はロック解除し、上書きなどで式がない場合はグレーアウトしロックして入力を禁止します。いままでExcelの標準機能で入力禁止はできないと思いこんでいました(どこそかの記事による)これだと単純でいいですね。 ダウンロード copy #ExcelVBA 1 この記事が気に入ったらサポートをしてみませんか? サポート