アプリ版:「スタンプのみでお礼する」機能のリリースについて

マクロを使い始めたばかりなんですけど
相対参照と絶対参照で困ってます

任意のセル(A1とする)を選択しておいてマクロの開始
B1のセルをコピー
最初のセル(A1)に貼り付け

としたいんですけど

B1のセルをコピー、を絶対参照にして
最初のセル(A1)に貼り付け、を相対参照にしてマクロに記録しました

そのマクロをC1で使うと
A1のセルにB1のセルを貼り付けてしまいます

C1でマクロを使えばB1のセルをC1に貼り付けるようにはどうすればいいのでしょう

分かりにくい説明で申し訳ありません

A 回答 (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
    • good
    • 0
この回答へのお礼

なるほど
Set しろってことですね
わかりました

マクロ記録ボタン押してるだけじゃ無理なのね
VBAがんばります

お礼日時:2007/06/12 11:43

> 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
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/06/07 09:57

左隣のセルにコピーするならこんな感じでしょうか。



Sub sample()
ActiveCell.Copy ActiveCell.Offset(, -1)
End Sub
    • good
    • 0

B1セルをアクティブセルに貼り付けたいということですか?



Sub Macro1()
 Range("B1").Copy
 ActiveSheet.Paste
 Application.CutCopyMode = False
End Sub

Sub Macro2()
 Range("B1").Copy Destination:=ActiveCell
End Sub

例えば、上記(2パターン)のような書き方があります。
    • good
    • 0
この回答へのお礼

実はA1~A100ぐらいまでデータが記録されていて

A1~A100の任意の1つのセルを選択しておいて

マクロ開始
A列全体をコピー、A列全体に値のみ貼り付け
最初に選択されていたセルにB1:B10を貼り付け
マクロ終了

としたいんですけど
なかなか上手くいかない

お礼日時:2007/06/06 16:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!