| 
    
     |  | いつもお世話になります。 表題の件について教えてください。
 ワークシート上でCELLを選択したとき、対象CELLが範囲内(7行から下、3列)であれば、ワークシート上にComboBox1を表示し、ComboBox1の選択内容に従い対象CELLと同じ行に所定操作を行うマクロを作成しています。
 後述のマクロを作成して上記機能は満足しましたが、ワークシート上でCopy&Pasteが出来なくなって(Paste先へ移動することでSelectionChangeが働いて)しまうためWorksheet_BeforeRightClickに置き換えています。ただし、これも右クリックによる編集が出来ない、別動作についてSelectionChangeの方が都合が良いなどの理由からSelectionChangeを採用したいので、範囲外では編集できるよう対処方法をお教え下さい。
 宜しくお願い致します。
 
 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
 'Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 With Target
 TR = .Row
 TC = .Column
 TT = .Top
 TL = .Left
 End With
 
 If TC = 3 Then Cancel = True     'メニューを開かせない
 
 If TR < 7 Then Exit Sub
 If TC = 3 Then
 With ComboBox1
 Index_No = Cells(TR, 1).Value
 If Index_No = "" Then
 部材名Check = 1        '部材名が部材番号と適合変数
 .Value = "選択して下さい"   '初期設定用
 .Top = TT
 .Left = TL
 .Visible = True
 部材名Check = 0
 ElseIf Index_No < 11 Then
 MsgBox "Noが不正確です。11〜99の間で入力してください。"
 Range(Cells(TR, 1), Cells(TR, 256)).ClearContents
 部材名Check = 1        '部材名が部材番号と適合変数
 .Value = "選択して下さい"   '初期設定用
 .Top = TT
 .Left = TL
 .Visible = True
 部材名Check = 0
 ElseIf Cells(TR,3) <> Worksheets("Sheet3").Cells(Index_No + 7,4)Then
 部材名Check = 0
 .Top = TT
 .Left = TL
 .Visible = True
 .Value = Worksheets("Sheet3").Cells(Index_No + 7, 4).Value
 Else
 部材名Check = 1    '部材名が部材番号と適合変数
 .Value = Worksheets("Sheet3").Cells(Index_No + 7, 4).Value
 .Top = TT
 .Left = TL
 .Visible = True
 部材名Check = 0
 End If
 End With
 Else
 ComboBox1.Visible = False
 End If
 
 End Sub
 
 |  |