|
▼nana さん:
こんにちは
こんな感じです。
>何とか色々調べて下記のようなものを作成しましたが、
>これを標準モジュールで「マクロの実行」で実行したいのですが
>どのように書き換えればいいのでしょうか。
>
>PrivateをPublicに換えればいいのでは、というところまで
>いったのですが。
>よろしくお願いします。
'////////////シートモジュール////////
>Private Sub Worksheet_Change(ByVal Target As Range)
call なんかの処理(Target)
>End Sub
'////////////標準モジュール///////////////
'rangeオブジェクトが上位オブジェクトを指定されていないので指定するように
'変更の必要あり
sub なんかの処理(Target as range)
> Dim celTarget As Range
> Dim cel As Range
> Dim ixCol As Long
>
'例えば↓のrangeオブジェクトの親オブジェクトを明記する必要あり
> Set celTarget = Intersect(Target, Range("A1"))
> If celTarget Is Nothing Then Exit Sub
>
> If celTarget = "" Then Exit Sub
>
> On Error Resume Next
> ixCol = WorksheetFunction.Match(celTarget, Range("E1:J1"), 0)
> On Error GoTo 0
> If ixCol = 0 Then
> MsgBox "転記先が見つかりませんでした。シートを確認・修正の上、もう一度 A1 の値を選択してください。", vbCritical
> Exit Sub
> End If
> ixCol = ixCol + Range("E1").Column - 1
>
>
> For Each cel In Range("B2:B4")
> Cells(cel.Row, ixCol).Value = cel.Value
> Next
end sub
|
|