• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2010:部分的な行制御(追加)に関し)

Excel2010の部分的な行制御(追加)に関する質問

このQ&Aのポイント
  • Excel2010で特定の行に対して、新規追加を不可にし、データの編集を可能にする方法を教えてください。
  • また、行の一部に対しては新規追加やデータの編集を許可するシートの保護方法についても知りたいです。
  • VBやマクロを使用せずにパスワードを設定せずに行の制御を行う方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

普通に設定のみでは難しいですね。 質問には「20行目位」や「11行目から」があってよく分かりませんが、「1~10行には行が挿入できない」として考えました。下記マクロの「myProtect」を「True」にすると質問のような保護(のような動き)をします。これをシート側に出して、マクロで参照すれば操作性は上がるでしょう。基本的には「UnDo」をしています。 8~12行目のように10行目までをまたいだ挿入もできません。考え通りの動きをするか確かめてください。1~10行目を削除すると新たな1~10行目が制約の対象になります。挿入に制約があって、削除に制約がないのは?ですね。 シートのコードウィンドウに貼り付けます。 Const myProtect As Boolean = True 'Trueにしたら保護有効 Dim TargetRng As Range '選択したセル Dim TargetAdr As String '選択したセルのアドレス Sub Worksheet_SelectionChange(ByVal Target As Range)   Set TargetRng = Target   '選択範囲を記憶   TargetAdr = Target.Address End Sub Sub Worksheet_Change(ByVal Target As Range)   If myProtect = True Then     If Not TargetRng Is Nothing Then       If Intersect(Target, Range("1:10")) Is Nothing Then Exit Sub              On Error Resume Next              If TargetAdr <> TargetRng.Address Then         If Err.Number = 0 Then           Application.EnableEvents = False           Application.Undo 'UnDo           Application.EnableEvents = True         End If       End If              On Error GoTo 0     End If   End If End Sub

MSHIBATA_39
質問者

お礼

nishi6さん ありがとうございます。 やはり、設定では難しいのですね。。。 マクロを参考にしてやってみます。 色々とありがとうございました。

関連するQ&A