• 締切済み

エクセルで消えないセルを作りたい。

よろしくお願いします。 エクセルで、例えばB2のセルに「aa」、B3のセルに「bb」と入力したとします。 そして、A1からC3まで範囲選択をしてDeletをおしてもB2のセルの「aa」だけは消えないようにすることは可能でしょうか? エクセルは2000です。

みんなの回答

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.3

ツールメニューから[保護]→[シートの保護]としてみてください。 これですべてのセルが入力、delete不可になります もう一度ツールメニュから[保護]に入って見てください 今度は[シート保護の解除]になっていると思います シート保護をかけたときに特定のセルだけをはずすには、セルの書式のロックをはずします。 シート保護解除の状態で入力したいセルだけを範囲指定して書式メニューから[セル]と入って[保護]タグ内ののロックのチェックを外します。 シート保護所モードで運用し、セルaaを変更したいときのみシート保護解除にします。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

ご質問の趣旨が「B2セルを保護して変更できないようにしたい」とおいうことであれば「B2セル右クリック」→「セルの書式設定」→「保護タブ」→「ロックにチェック」→「ツール」→「シートの保護」で可能です。 この方法だとB2セルを書き換えようとするとエラーメッセージが表示されることになります。それがイヤでこの質問をされたのであれば、実用的とは言えませんが、以下のようなマクロで「B2が削除されたときは、削除前の値を復活させる」ようなことは可能です。(以下のマクロではM1セルにB2セルの内容を退避して、B2が削除されたら書き戻しています。質問のB2は例でしょうから、実際にはこのままでは使えないと思いますがご参考まで) Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo end0  If Not Intersect(Target, Range("B2")) Is Nothing Then   Application.EnableEvents = False   With ActiveSheet.Range("b2")    If .Value = "" Then     .Formula = Sheets("Sheet3").Range("M1")    Else     Sheets("Sheet3").Range("M1") = .Formula    End If   End With  End If end0:  Application.EnableEvents = True End Sub マクロは「シート名右クリック」→「コードの表示」で表示される画面に貼り付けます。またSheet3の部分は存在する任意のシート名にしてください

ppaannss
質問者

お礼

ご回答有難うございます。 このような方法があるのですね。 わざわざ書いていただき、感謝いたします。 勉強させていただきました。 ただ、たしかにあまり実用的ではないですね。 参考にさせていただきます。有難うございました。

回答No.1

オートシェイプのテキストボックスで「aa」を入力して、 B2セルに被せて置けば、 A1からC3まで範囲選択をしてDeletをおしても B2のセルに有るように見える「aa」だけは消えません。 こんな方法しか思い付きません。

ppaannss
質問者

お礼

ご回答有難うございます。 私もその方法は思いついたのですが、面倒でして。 何かいい方法はと思い、質問させていただきました。 有難うございました。

関連するQ&A