こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelで書込禁止メッセージを指定したセル以外で出したい

教えてください。
エクセルで下記のような簡単なシートがあります。
*********************************
料金マクロ
(セル:C6)年(セル:F6)月
[印刷ボタン]
*********************************
(VBAにて「印刷ボタン」を押すと他のファイルを読みに行って印刷できるようになっています。)

入力可能なのは「C6」と「F6」のセルだけで
それぞれ年・月(例:「07」年「10」月)を入力できるようにしたく、
そのセルだけを入力許可して保護をかけました。

その他のセルはどこを触っても、禁止メッセージを表示したいです。

しかし、エクセルにメッセージ「変更しようとしているセルまたはグラフは・・・・・・」
という、エクセルで「保護」した時の書込禁止メッセージではなく、
年配の方が使うファイルなので、わかりやすいメッセージにしたくて
色々調べてみました。

その結果、保護ではなく、
シートモジュールに入力することで対応できることを知り、

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.Intersect(Target, Range("A1:IV100")) Is Nothing Then
Else
MsgBox "年・月以外は書込みできません"
Range("C6").Select
End If
End Sub

としてみました。
(A1:IV100の範囲で書込み禁止エラーがでる。その後、カーソルが「C6」のセルに戻る。)

この状態だと、戻る「C6」には、入力ができますが
「F6」への入力ができません。

「C6」・「F6」を両方入力を可能にするにはどうしたらいいですか?

どなたかお詳しい方、教えてください。

この方法にこだわっているわけではないので、
もし、別のいい案がございましたら、
方法が変わってもかまいません。

お手数お掛け致しますが、よろしくお願いいたします。

投稿日時 - 2007-12-28 18:52:53

QNo.3634214

すぐに回答ほしいです

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

こんなのはどうでしょうか?
Private Sub Workbook_Open()
Sheet1.EnableSelection = xlUnlockedCells
End Sub
とかしておくと、保護されていないセルしか移動しなくなります。

投稿日時 - 2007-12-28 20:39:47

お礼

回答ありがとうございました。
いろんなやり方があるのですね。
家のパソコンは、古くて、保護中の許可ができないので、
年明けにやってみます。
勉強になりました。

今回は、とりあえず、細かくカンマで区切って、
表示する場所を設定する方法がわかりました。
If Application.Intersect(Target, Range("A1:IL5,A6,B6,E6,H6:IL6,A7:IL100")) Is Nothing Then

ありがとうございました。

投稿日時 - 2007-12-29 01:07:33

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問