[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数の「指定シート以外」を右クリック禁止にする方法について』(まさ)
いつも大変おせわになっております。
右クリックメニューについてアドバイスをよろしくお願いします。
質問内容は
指定シート(複数)以外は右クリックメニューを非表示(禁止)にする方法についてです。
よろしくお願いします。
下記コードは、ThisWorkbookに記載しているコードです。
処理内容は、シート名「1」以外は、右クリック禁止にします。
これを、シート名「1〜31」以外を右クリック禁止にしたいと考えております。
※シート名「1〜31」とは、半角数字で31枚シートがあります。
'指定シート以外右クリック禁止
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Sh.Name <> "1" Then '指定シート名「1」以外のシートは右クリック禁止
MsgBox "右クリック禁止!!", vbExclamation
Cancel = True
End If
End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
もし、シート 25 の他に シート 25ABC といったものがなければ
'指定シート以外右クリック禁止
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim z As Long
z = Val(Sh.Name)
If z < 1 Or z > 31 Then 'シート名「1」〜「31」以外のシートは右クリック禁止
MsgBox "右クリック禁止!!", vbExclamation Cancel = True
End If
End Sub
(β) 2015/01/24(土) 15:26
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Dim i As Long Dim s As String
For i = 1 To 31 s = s & i & "\" Next
If InStr(s, Sh.Name) = 0 Then MsgBox "右クリック禁止!!", vbExclamation Cancel = True End If
End Sub
(マナ) 2015/01/24(土) 15:37
ありがとうございます。
どちらもバッチリ動きました。
もう一つお願いします。
同じように右クリックの処理なのですが、下記は、指定範囲内に右クリック処理を追加するコードの一部なのですが
これに、教えていただいたコードを組み込見たいと考えております。
組み込んだ場合・・・
シート「1〜31」のセル範囲「a1:a10,c1:c10」以外は右クリック禁止となるのでしょうか?
↓
If Intersect(Target, Range("a1:a10,c1:c10")) Is Nothing Then Exit Sub
お忙しい中すみませんが、よろしくお願いします。
(まさ) 2015/01/24(土) 16:01
たとえば
'指定シート以外右クリック禁止 Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Dim z As Long Dim ok As Boolean
z = Val(Sh.Name)
Select Case z Case 1 To 31 If Not Intersect(Target, Sh.Range("A1:A10,C1:C10")) Is Nothing Then ok = True End Select
If Not ok Then 'シート名「1」〜「31」の A1:A10,C1:C10 以外は右クリック禁止
MsgBox "右クリック禁止!!", vbExclamation Cancel = True
End If
End Sub
(β) 2015/01/24(土) 16:30
試してみました。
相談なのですが、右クリック可能セル範囲で、マクロ処理を追加しようとしたのですが
マクロ処理実行されて・・・その後に「右クリック禁止」とでます。
下記のコード「*****」部分が処理の位置です。
アドバイスの程よろしくお願いします。
'指定シート以外右クリック禁止 Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim z As Long Dim ok As Boolean z = Val(Sh.Name)
Select Case z Case 1 To 31 If Not Intersect(Target, Sh.Range("A1:A10,C1:C10")) Is Nothing Then ok = True
'**********************
<<処理>>
End Select
'**********************
If Not ok Then 'シート名「1」〜「31」の A1:A10,C1:C10 以外は右クリック禁止 MsgBox "右クリック禁止!!", vbExclamation Cancel = True End If End Sub (まさ) 2015/01/24(土) 17:13
すみません、解決出来ました。
勘違いでした。
バッチリ動作中です。
ありがとうございました(^^ゞ
(まさ) 2015/01/24(土) 17:18
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Dim i As Long Dim s As String Dim r As Range
For i = 1 To 31 s = s & i & "\" Next
If InStr(s, Sh.Name) > 0 Then Set r = Intersect(Target, Sh.Range("a1:a10,c1:c10")) If Not r Is Nothing Then If r.Count = Target.Count Then Exit Sub End If End If
MsgBox "右クリック禁止!!", vbExclamation Cancel = True
End Sub
(マナ) 2015/01/24(土) 17:26
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.