Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7180 / 13644 ツリー ←次へ | 前へ→

【40665】SelectionChange使用中の編集作業 わいわい 06/7/20(木) 10:22 質問[未読]
【40673】Re:SelectionChange使用中の編集作業 Jaka 06/7/20(木) 11:49 発言[未読]
【40682】Re:SelectionChange使用中の編集作業 わいわい 06/7/20(木) 13:19 お礼[未読]

【40665】SelectionChange使用中の編集作業
質問  わいわい  - 06/7/20(木) 10:22 -

引用なし
パスワード
   いつもお世話になります。
表題の件について教えてください。
ワークシート上で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

【40673】Re:SelectionChange使用中の編集作業
発言  Jaka  - 06/7/20(木) 11:49 -

引用なし
パスワード
   質問の内容が全く理解できませんが、これ使ってみるとか...。
でも、質問内容を理解してないので使えるのかわかりませんし、どう使うかのかも解りません。

If Application.CutCopyMode Then
  MsgBox "カットかコピー"
End If

【40682】Re:SelectionChange使用中の編集作業
お礼  わいわい  - 06/7/20(木) 13:19 -

引用なし
パスワード
   Jaka 様

早速のご回答ありがとうございます。
当方の希望は、教えていただいた Application.CutCopyMode でかなえられました。
私は、Worksheet_SelectionChangeを働かなくさせるにはどうしたらよいのかと考えていたのですが、CutCopyModeの場合など条件を付け足していけば良いのですね。
勉強になりました。ありがとうございました。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Application.CutCopyMode Then
  Else
    With Target
      TR = .Row
      TC = .Column
      TT = .Top
      TL = .Left
    End With
    ・
    ・
  <前回掲載マクロ>
    ・
    ・

  End If
End Sub


>質問の内容が全く理解できませんが、これ使ってみるとか...。
>でも、質問内容を理解してないので使えるのかわかりませんし、どう使うかのかも解りません。
>
>If Application.CutCopyMode Then
>  MsgBox "カットかコピー"
>End If

7180 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free