Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


29192 / 76732 ←次へ | 前へ→

【52824】Re:数式のコピーに関するマクロ
回答  りん E-MAIL  - 07/12/5(水) 9:38 -

引用なし
パスワード
   ▼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

こんな感じです。

0 hits

【52823】数式のコピーに関するマクロ kotaro 07/12/5(水) 9:27 質問
【52824】Re:数式のコピーに関するマクロ りん 07/12/5(水) 9:38 回答
【52825】Re:数式のコピーに関するマクロ kotaro 07/12/5(水) 9:53 お礼

29192 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free