|
Worksheet_BeforeRightClickイベントのプロシージャにマクロを記述すると、指定シートを右クリックしたときにそのマクロが実行されます
Worksheet_BeforeRightClickイベントは、シートごとに用意されているプロシージャです。そこに記述したコードは、そのシートを右クリックしたときに実行されます。
@マクロの対象となるシートをダブルクリックして、そのシートのコードウィンドウで、Worksheet_BeforeRightClickイベントのプロシージャを追加します。
たとえば、前号のような「利用者」シートで実行するマクロなら、「利用者」シートをダブルクリックして、Worksheet_BeforeRightClickイベントのプロシージャを追加します。
Worksheet_BeforeRightClickイベントのプロシージャは、コードウィンドウ上部で「Worksheet」と「BeforeRightClick」を選ぶことで追加できます。

AWorksheet_BeforeRightClickイベントでは、変数「Target」が右クリックしたセルを表します。
アクティブセルに対して処理するマクロの場合には、「ActiveCell」を「Target」に置き換えると、右クリックしたセルが処理の対象となります。
「Cancel = True」のコードは、通常の右クリック時に表示されるショートカットメニューをキャンセルするものです。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)
Dim r As Byte
r = Target.Row
Cancel = True
With Sheets("申請書")
.Range("F5").Value = Cells(r, 1).Value
.Range("F4").Value = Cells(r, 2).Value
.Range("F6").Value = Cells(r, 3).Value
.Range("F7").Value = Cells(r, 4).Value
.Range("G8").Value = Cells(r, 5).Value
.Range("B12").Value = Cells(r, 6).Value
.Range("C13").Value = Cells(r, 7).Value
.Range("C14").Value = Cells(r, 8).Value
.Range("G13").Value = Cells(r, 9).Value
.Range("B16").Value = Cells(r, 10).Value
.Activate
.Range("B13").Select
End With
End Sub

B処理したい行のセルを右クリックすると、Worksheet_BeforeRightClickイベントに記述したマクロが実行されます。

C申請書の必要な箇所が書き換わります。

|