|
最初の質問内容とは、だいぶ違ってますね・・。
ではこんな感じでどうでしょーか ? 今度はシートモジュールに入れるイベント
にしています。以前と違って「転記元の偶数列」で、転記したい値の先頭セルを
右クリックすると、そこから転記先の空白セル数ぶんだけ範囲が選択され、
出てきたメッセージで "はい" のボタンを押して、一つ前の列の空白セルに転記する。
という処理になります。偶数列で10行目以下の行をクリックしても、マクロは動き
ません。また、転記先(1つ前の列の1〜10行目)で空白セルが無い場合も、中止します。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, _
Cancel As Boolean)
Dim x As Integer, Bcnt As Integer, Ans As Integer
Dim C As Range, PR As Range
With Target
If .Row < 11 Then Exit Sub
x = .Column
End With
If x Mod 2 = 1 Then Exit Sub
With Application.WorksheetFunction
If .CountA(Columns(x)) = 0 Or _
.CountA(Columns(x - 1)) = 0 Then
Exit Sub
End If
Bcnt = .CountBlank(Cells(1, x - 1).Resize(10))
End With
If Bcnt = 0 Then Exit Sub
Cancel = True
Target.Resize(Bcnt).Select
Ans = MsgBox("選択範囲の値を転記しますか", 36)
If Ans = 7 Then Exit Sub
For Each C In Selection
Set PR = Cells(1, x - 1).Resize(10).SpecialCells(4)
PR.Cells(1).Value = C.Value
Set PR = Nothing
Next
End Sub
|
|