• ベストアンサー

マクロの相対参照、絶対参照

マクロを使い始めたばかりなんですけど 相対参照と絶対参照で困ってます 任意のセル(A1とする)を選択しておいてマクロの開始 B1のセルをコピー 最初のセル(A1)に貼り付け としたいんですけど B1のセルをコピー、を絶対参照にして 最初のセル(A1)に貼り付け、を相対参照にしてマクロに記録しました そのマクロをC1で使うと A1のセルにB1のセルを貼り付けてしまいます C1でマクロを使えばB1のセルをC1に貼り付けるようにはどうすればいいのでしょう 分かりにくい説明で申し訳ありません

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

#3です。 > やっぱりWithを使わないと駄目なんですね いえ、関係ないですよ。 以下のように、ActiveSheetをたくさん書くのは見苦しいのでWith~End Withでまとめただけです。 Sub TEST1() Set Rng = ActiveCell ActiveSheet.Columns("A:A").Copy ActiveSheet.Columns("A:A").PasteSpecial Paste:=xlValues ActiveSheet.Range("B1:B10").Copy Rng.Select ActiveSheet.Paste Application.CutCopyMode = False End Sub

48946
質問者

お礼

なるほど Set しろってことですね わかりました マクロ記録ボタン押してるだけじゃ無理なのね VBAがんばります

その他の回答 (3)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

> A1~A100の任意の1つのセルを選択しておいて > > マクロ開始 > A列全体をコピー、A列全体に値のみ貼り付け > 最初に選択されていたセルにB1:B10を貼り付け Sub TEST1() With ActiveSheet Set Rng = ActiveCell .Columns("A:A").Copy .Columns("A:A").PasteSpecial Paste:=xlValues .Range("B1:B10").Copy Rng.Select .Paste End With Application.CutCopyMode = False End Sub

48946
質問者

お礼

やっぱりWithを使わないと駄目なんですね その辺から勉強しないと

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

左隣のセルにコピーするならこんな感じでしょうか。 Sub sample() ActiveCell.Copy ActiveCell.Offset(, -1) End Sub

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

B1セルをアクティブセルに貼り付けたいということですか? Sub Macro1()  Range("B1").Copy  ActiveSheet.Paste  Application.CutCopyMode = False End Sub Sub Macro2()  Range("B1").Copy Destination:=ActiveCell End Sub 例えば、上記(2パターン)のような書き方があります。

48946
質問者

お礼

実はA1~A100ぐらいまでデータが記録されていて A1~A100の任意の1つのセルを選択しておいて マクロ開始 A列全体をコピー、A列全体に値のみ貼り付け 最初に選択されていたセルにB1:B10を貼り付け マクロ終了 としたいんですけど なかなか上手くいかない

関連するQ&A