Excel VBA質問箱 IV

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

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


5060 / 13644 ツリー ←次へ | 前へ→

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

【52823】数式のコピーに関するマクロ
質問  kotaro  - 07/12/5(水) 9:27 -

引用なし
パスワード
   あるセルに表示されているセル番地に、別の特定のセルに入力されている数式をコピーする、というマクロを組みたいと考えています。

例えば、
 * セルA1に「C1」と表示しています。
 * セルB1に「=VLOOKUP($A2,Sheet2!$A:$C,3,0)」という数式が入力されています。
このとき、
 * セルA1に表示しているセル番地(この場合「C1」)に、
 * セルB1に入力されている数式をコピーする
というものです。
セルA1の表示されるセル番地は、その時々によって違う番地を表示させるため、マクロを組む必要が生じました。
こういうマクロを作成するには、どのようにすればいいでしょうか。

どなたかお知恵を貸していただけませんでしょうか。
よろしくお願いいたします。

【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

こんな感じです。

【52825】Re:数式のコピーに関するマクロ
お礼  kotaro  - 07/12/5(水) 9:53 -

引用なし
パスワード
   りん さん

早速の回答、ありがとうございます。
お教えいただいたマクロで一発解決しました。
助かりました。

kotaro

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