|
▼kotaro さん:
>あるセルに表示されているセル番地に、別の特定のセルに入力されている数式をコピーする、というマクロを組みたいと考えています。
>
>例えば、
> * セルA1に「C1」と表示しています。
> * セルB1に「=VLOOKUP($A2,Sheet2!$A:$C,3,0)」という数式が入力されています。
>このとき、
> * セルA1に表示しているセル番地(この場合「C1」)に、
> * セルB1に入力されている数式をコピーする
>というものです。
>セルA1の表示されるセル番地は、その時々によって違う番地を表示させるため、マクロを組む必要が生じました。
>こういうマクロを作成するには、どのようにすればいいでしょうか。
>
>どなたかお知恵を貸していただけませんでしょうか。
>よろしくお願いいたします。
その手順を記録するとこうなります。
Sub Macro1()
Range("B1").Select
Selection.Copy
Range("C1").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
で、不要なSelectをはずして、セルの内容を参考にするようにすると
Sub Macro1()
'対象のシートを明確に
With Application.ActiveSheet
.Range("B1").Copy
.Range(.Range("A1").Value).PasteSpecial Paste:=xlPasteFormulas
End With
'終了
Application.CutCopyMode = False
End Sub
コピーをしなくてもいいかも。
Sub Macro2()
'対象のシートを明確に
With Application.ActiveSheet
'同じ式
.Range(.Range("A1").Value).FormulaR1C1 = .Range("B1").FormulaR1C1
End With
End Sub
こんな感じです。
|
|