dポイントプレゼントキャンペーン実施中!

次のようなマクロを作っております。
1.現在のセルをコピーする。
2.1行下に移動する。
3.1列左に移動する。
4.3のセルに1の内容を貼り付ける。

実際に書いたマクロは、次のとおりです。
Sub macro1()
Dim range1 As Range
Set range1 = ActiveWindow.ActiveCell
Cells.Select
Selection.Copy
ActiveCell.Offset(1, -1).Select
Paste
Application.CutCopyMode = False
End Sub

ところが、マクロが動きません。
どこが間違っているのか、ご教示いただけますと幸いです。
よろしくお願いします。

A 回答 (3件)

こんにちは。



下記の様な感じになるでしょうか?

Sub セルのコピー()
Selection.Copy
Selection.Offset(1, -1).Select '.Offset(+で下方向、-で左方向)
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
書いていただいたマクロを実行させたところ、思っていたことが実現できました。

ありがとうございました。

お礼日時:2022/04/18 20:38

こんばんは



>どこが間違っているのか、ご教示いただけますと幸いです
エラーが出たら、どこでどのようなエラーが出ているかを確認してください。
解決への大きな手掛かりになります。

推測するところエラーが発生しているのは
>ActiveCell.Offset(1, -1).Select
ではないかと思います。

原因は、その前のコードで
>Cells.Select
>Selection.Copy
としているので、全セルが選択・コピーされた状態で、ActiveCellはA1セルになっていて、これに対して
>ActiveCell.Offset(1, -1).Select
を実行しようとすると、存在しないセルを指定することになっているものと思います。


一方でご質問の内容であれば、
If ActiveCell.Column > 1 Then ActiveCell.Copy ActiveCell.Offset(1, -1)
の1行で実現できるものと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
一番最後に書いていただいた1行のマクロを実行すると、自分の思っていたことができました。

ありがとうございました。

お礼日時:2022/04/18 20:36

ここが、おかしいかな?


  ↓
Cells.Select

これって、「アクティブシートの全セルを選択」って意味だよ!!
現在のセルをコピーって書いてあるけど、全セル選択して、どうするの?
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

そういう意味があるとは、知りませんでした。
ウェブページを探して、見様見真似でマクロを書いたものですから。

早速、この部分を削ってみます。

お礼日時:2022/04/17 21:04

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