
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ユーザによっては、禁じられたレンジを、範囲選択したりすることもあるでしょう。
その場合は、禁じられたレンジの中のすべてのレンジについて、ユーザの選択範囲に入っているかを、調べればすみます。そのコードを追加したものは以下のとおりです。Option Explicit
Private WithEvents mySheet As Excel.Worksheet
Private Sub mySheet_SelectionChange(ByVal Target As Range)
Dim myRange As Excel.Range
Dim myRowTop As Long, myRowBottom As Long
Dim myColLeft As Long, myColRight As Long
Dim I As Long, J As Long
Dim Jump As Boolean
Set myRange = mySheet.Range("D8:F11")
myRowTop = myRange.Row
myRowBottom = myRowTop + myRange.Rows.Count - 1
myColLeft = myRange.Column
myColRight = myColLeft + myRange.Columns.Count - 1
If Target.Row >= myRowTop And Target.Row <= myRowBottom Then
If Target.Column >= myColLeft And Target.Column <= myColRight Then
MsgBox "ダメヨ!"
mySheet.Range("A1").Select
Else
GoSub MySub1
End If
Else
GoSub MySub1
End If
Exit Sub
MySub1:
For I = myRowTop To myRowBottom
For J = myColLeft To myColRight
If I >= Target.Row And I <= Target.Row + Target.Rows.Count - 1 Then
If J >= Target.Column And J <= Target.Column + Target.Columns.Count - 1 Then
MsgBox "だめだめ!!"
mySheet.Range("A1").Select
Jump = True
Exit For
End If
End If
Next J
If Jump = True Then Exit For
Next I
Return
End Sub
Private Sub Workbook_Open()
Set mySheet = ActiveSheet
End Sub
最初の回答を下さった方と同じ方と推察致します。
追加のコードまで頂き、感無量です!!
早速、コードを試してみました。私が意図しているもの
は確実に実現できていました!・・・が!!
私の実力不足のため、2つほど解決したいことが
できかねていますので、ご相談に乗って頂けませんでしょうか?
このコードを実行すると、例えば、”D8”だけを選択
し、値を入力しようとするだけでも、”ダメヨ!”と
出てしまいます。これを避ける方法が未熟な私には解りません。
また、例えば、”D8:D10”の範囲を選択し、コピー
しようとすると、”だめだめ!!”と出てしまいます。
これも回避したいのですが、無理でしょうか?
私の意図した、例えば、”D列全体”を選択して挿入しようと
したときに、”だめだめ!!”と出るのは凄くうれしかった
です^^ 無理だと思っていたのもで。
お忙しいところを大変申し訳なく思いますが、お時間あらば
なんとかご相談に乗ってくださいませ。
宜しくお願い致します。
No.1
- 回答日時:
その範囲を、仮に、D8:F11,とすると、以下のようなマクロをThisWorkBook に組み込めば、ひとまずは、よいでしょう。
Option Explicit
Private WithEvents mySheet As Excel.Worksheet
Private Sub mySheet_SelectionChange(ByVal Target As Range)
Dim myRange As Excel.Range
Dim myRowTop As Long, myRowBottom As Long
Dim myColLeft As Long, myColRight As Long
Set myRange = mySheet.Range("D8:F11")
myRowTop = myRange.Row
myRowBottom = myRowTop + myRange.Rows.Count - 1
myColLeft = myRange.Column
myColRight = myColLeft + myRange.Columns.Count - 1
If Target.Row >= myRowTop And Target.Row <= myRowBottom Then
If Target.Column >= myColLeft And Target.Column <= myColRight Then
MsgBox "ダメヨ!"
mySheet.Range("A1").Select
End If
End If
End Sub
Private Sub Workbook_Open(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Set mySheet = ActiveSheet
End Sub
お礼が遅くなり、すみませんでした
全く素晴らしいの一言につきます!
このコードを少しづつ解析してみましたが
今の私では全てを解読できません^^;
追加のコードを書いて頂いた方も同じ方と
思いますので、そちらに、追加質問を
させて頂きます。・・・が違う方でしたら
いけませんので、一応、きちんとお礼を
述べたかったです。お忙しいところ
有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBA 指定フォルダに格納されている全エクセルファイルに指定シートを挿入する方法について 1 2022/08/22 11:53
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Visual Basic(VBA) エクセルVBAのコードについて 2 2022/08/10 21:49
- Visual Basic(VBA) エクセル 2つの列にある値の完全一致を抜き出すVBA 15 2022/12/15 03:22
- Excel(エクセル) 単価シートから単価をエクセル関数で自動取得する方法 1 2023/07/02 22:00
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAで行削除できないようにするには
その他(プログラミング・Web制作)
-
エクセルで特定の行だけ行削除、行挿入できないようにロックをかけるには
Excel(エクセル)
-
エクセル VBA で行の右クリックメニューから行の挿入削除を無効にしたい
Excel(エクセル)
-
-
4
エクセルでセルの挿入・削除を禁止し、他のセルの列や行がずれないようにし
その他(Microsoft Office)
-
5
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
6
InputBoxの入力値を半角数字のみと限定する方法
Excel(エクセル)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
特定のシートの削除を禁止したい(ブックの保護でなく)
Excel(エクセル)
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Photoshopでパスのオフセットの...
-
エクセルで並び替えが一部(下...
-
GIMP 選択範囲の設定
-
Photoshopを使った画像の面積の...
-
GIMPで選択した範囲にdeleteキ...
-
線を太くする方法
-
フォトショップで選択範囲を反転
-
画像の輪郭を強調したい
-
フォトショップ 人物写真の切...
-
GIMP 2.8 画像の選択範囲を切り...
-
Photoshopで輪郭をなめらかにし...
-
Photoshopで、写真を履歴書用(...
-
GIMPで線を太くするには?
-
Photoshopで取り込んだイラスト...
-
photoshop マッティングの使い...
-
PS 2枚の写真をうまくぼか...
-
フォトショ「多角形選択ツール...
-
フォトショップの境界線のぼか...
-
選択ツールを回転させたり、自...
-
フォトショップで青の下書き線...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Photoshopでパスのオフセットの...
-
エクセルで並び替えが一部(下...
-
GIMPで線を太くするには?
-
GIMPで選択した範囲にdeleteキ...
-
フォトショップで青の下書き線...
-
線を太くする方法
-
拡張子がjpgの 背景が黒の画像...
-
GIMP 2.8 画像の選択範囲を切り...
-
Excel エクセル そのコマンド...
-
Photoshopで、写真を履歴書用(...
-
フォトショップの境界線のぼか...
-
選択ツールを回転させたり、自...
-
Photoshop:選択範囲内の複数レ...
-
メモ帳で必要部分のみ印刷するには
-
photoshop マッティングの使い...
-
エクセルの切り取りについて
-
画像の輪郭を強調したい
-
GIMPで、フォントの太さを変更する
-
【GIMP】選択範囲を貼り付けた...
-
フォトショップのクイックマス...
おすすめ情報