- ベストアンサー
マクロの相対参照、絶対参照
マクロを使い始めたばかりなんですけど 相対参照と絶対参照で困ってます 任意のセル(A1とする)を選択しておいてマクロの開始 B1のセルをコピー 最初のセル(A1)に貼り付け としたいんですけど B1のセルをコピー、を絶対参照にして 最初のセル(A1)に貼り付け、を相対参照にしてマクロに記録しました そのマクロをC1で使うと A1のセルにB1のセルを貼り付けてしまいます C1でマクロを使えばB1のセルをC1に貼り付けるようにはどうすればいいのでしょう 分かりにくい説明で申し訳ありません
- みんなの回答 (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
その他の回答 (3)
- merlionXX
- ベストアンサー率48% (1930/4007)
> 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
お礼
やっぱりWithを使わないと駄目なんですね その辺から勉強しないと
- hana-hana3
- ベストアンサー率31% (4940/15541)
左隣のセルにコピーするならこんな感じでしょうか。 Sub sample() ActiveCell.Copy ActiveCell.Offset(, -1) End Sub
- zap35
- ベストアンサー率44% (1383/3079)
B1セルをアクティブセルに貼り付けたいということですか? Sub Macro1() Range("B1").Copy ActiveSheet.Paste Application.CutCopyMode = False End Sub Sub Macro2() Range("B1").Copy Destination:=ActiveCell End Sub 例えば、上記(2パターン)のような書き方があります。
お礼
実はA1~A100ぐらいまでデータが記録されていて A1~A100の任意の1つのセルを選択しておいて マクロ開始 A列全体をコピー、A列全体に値のみ貼り付け 最初に選択されていたセルにB1:B10を貼り付け マクロ終了 としたいんですけど なかなか上手くいかない
お礼
なるほど Set しろってことですね わかりました マクロ記録ボタン押してるだけじゃ無理なのね VBAがんばります