- ベストアンサー
エクセルで特定のセル(範囲)を選択出来なくするには?
エクセルで特定のセル上(範囲内)でクリックしても、そのセルを選択出来ない様に設定したいのですが、やり方がよくわかりません。 本でいろいろ調べてみましたが、「セルの保護」とは違うようです。 よくこの様にしてあるエクセルのソフトを見るのですが、そういう設定をしたいのです。 VBAマクロのプログラム上でそのように設定するのでしょうか? (マクロはある程度わかります) よろしければ御教示下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
シートの保護をかける際に、「ロックされたセル範囲の選択」のチェックを外します。 この方法ですと、ロックされた全てのセルが選択できなくなります。 マクロでやるならこんな感じでしょうか(B1を選択させない例です) Worksheetモジュールに Dim OldSelect as Object '最後に選択されたセル範囲 Private Sub Worksheet_Selection(ByVal Target As Range) If OldSelect Is Nothing Then Set OldSelect = Range("A1") '起動直後はA1を最後のセル範囲にする End If If InStr(Target.Address, "$B$1") > 0 Then OldSelect.Select '選択されたセル範囲にB1が含まれていれば最後のセル範囲に戻す Else Set OldSelect = Target 'B1以外の場合は最後のセル範囲を更新 End If End Sub
その他の回答 (1)
- Masa2072
- ベストアンサー率51% (94/182)
続けざまにすいません。 下の例ですとB1、以外にB10~B19、B100~のようにB1からはじまる全てのセル番地がロック対象になり、逆にA1:C1のようにB1を含んでいてもロック対象にならないという結果になってしまいます。 この辺はもう少し考える必要がありますね。
お礼
選択出来るようにしたいセル(範囲)を選択して、セルの書式設定→保護タブ→ロックを外し、次に教えていただいた「ロックされたセル範囲の選択」のチェックを外してからシートの保護をかけると、うまく、選択出来るセル(範囲)と出来ないセルに分けることが出来ました。 簡単に出来て嬉しいです。ありがとう御座いました。 マクロの方は少し難しそうなので、機会があれば又チャレンジしてみたいと思います。