特定のセルで Application.OnKeyを使用するには

VBA初心者です。
ある行のデータを入力完了したら範囲指定した箇所をコピーし同箇所に値だけを貼り付けし 他シート("list")の上段に挿入&コピーを行うマクロを作成しています。
Application.OnKeyを使用しテンキーのエンターをトリガーにして上記動作を行う事は出来たのですが、特定セル又は特定列だけでトリガー動作を行う用にしたいと考えています。(アクティブセル又は3列目)
Application.OnKeyの動作条件をIF文などでの条件指定を行う事は可能でしょうか?
下記がコードになります、汚いコードで申し訳ありませんがご教示よろしくお願いします。

VBA
With ThisWorkbook.ActiveSheet
inputData = .Range(.Cells(row, 1), .Cells(row, 12))
Application.EnableEvents = False

'Sub autodeta_copy() If column <> 3 Then Application.OnKey "{Enter}", "deta_copy" End If ' End Sub 'イベントを有効 Application.EnableEvents = True End With ' リストのテーブルデータを取得する With ThisWorkbook.Sheets("list") ' rowEnd = .Cells(Rows.Count, 1).End(xlUp).row ' listData = Range(.Cells(9, 1), .Cells(rowEnd, 12)) End With ' ------------------ ' データ貼り付け ' ------------------ With ThisWorkbook.Sheets("list") ' 選択された行のデータを貼り付ける ' .Range(.Cells(9, 1), .Cells(9, 12)) = inputData ' リストのテーブルデータを貼り付ける '.Range(.Cells(10, 1), .Cells(UBound(listData, 1) + 1, 12)) = listData Application.CutCopyMode = False End With End Sub

 '2022年度データ貼り付け(追加作成)

Sub deta_copy() Dim row As Integer Dim activeData As Variant ' 選択されたセルの行取得 row = ActiveCell.row Set activeData = Range(Cells(row, 1), Cells(row, 15)) activeData.Copy Rows(ActiveCell.row).PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Set activeData = Range(Cells(row, 1), Cells(row, 15)) activeData.Copy Worksheets("list").Rows(9).Insert Application.CutCopyMode = False End Sub

コメントを投稿

0 コメント