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

エクセルでペーストをVBAで行いたいんですが、D列の3行目から空白セルを探して下の行にペーストするコードを教えてください。

質問者からの補足コメント

  • 説明足らずですいません。
    例えば、D3が空白であればD3にペーストし、
    D3が空白でなければD4にペーストし、
    D3とD4が空白でなければD5にペーストする。
    ようなことをしたいのです。それを33行目まで行いたいです。
    さらにD~G列はセルの結合をしております。
    ご教示よろしくお願いいたします。

      補足日時:2022/01/26 23:30

A 回答 (12件中1~10件)

>D列の3行目から空白セルを探し


どっちむきに?どこまで?
ぐるぐる回しながら判定しましょうかね。
    • good
    • 0
この回答へのお礼

D3が空白ならD3に、D3が空白でないならば D4にと下の行にペーストしたいです。行は33行目までです。

お礼日時:2022/01/26 00:49

ペーストをするには、まずコピーしてからでないと、ペーストできません。


どのセルからコピーするのでしょうか。

1回ペーストが成功したら、それで終わりですか。それとも、33行目まで、
コピー&ペーストを繰り返すのですか?
その場合、次のコピー元のセルは、どこですか?
    • good
    • 0
この回答へのお礼

事前にあるサイトの一部の文字なみをコピーします。ペーストだけをマクロボタンで作業したいのです。量がたくさんあり、繰り返し作業するので...

お礼日時:2022/01/26 07:39

以下のマクロを標準モジュールに登録してください。



Public Sub 貼り付け()
Dim wrow As Long
For wrow = 3 To 33
If Cells(wrow, "D").Value = "" Then
Cells(wrow, "D").Select
ActiveSheet.PasteSpecial Format:="テキスト", Link:=False, DisplayAsIcon:=False
End If
Next
End Sub
    • good
    • 0
この回答へのお礼

説明足らずですいません。
例えば、D3が空白であればD3にペーストし、
D3が空白でなければD4にペーストし、
D3とD4が空白でなければD5にペーストする。
ようなことをしたいのです。それを33行目まで行いたいです。
さらにD~G列はセルの結合をしております。
何度もすいません。
ご教示よろしくお願いいたします。

お礼日時:2022/01/26 23:30

#3さんへ。



貼り付け後にループ処理を抜けださないと、以降空白があれば全てに張り付いてしまうのでは?
    • good
    • 0

No4様


D3~D33の全ての空白のセルへ同じものを貼り付ける仕様で作成しています。
No2の回答のお礼に
「事前にあるサイトの一部の文字なみをコピーします。ペーストだけをマクロボタンで作業したいのです。量がたくさんあり、繰り返し作業するので...」
とあり、1回限りではないと、推測しました。
    • good
    • 0

No.5様。



私の勝手な思い込みかもですから後程質問者様から補足があると思います。

ただ同じ文章を拝見した際に、

・コピー元は特定の場所ではなく作業者が任意に選択しコピー作業をする。
・コピー先は決められたセル範囲の内、空白セルがあった所に貼り付ける。
・上記の作業をマウスで操作していると右クリックの手間がかかり、且つ抜き出す文章もそれなりにある。
・コピー元は仕方ないにしてもコピー先についてはボタン(イベント?)を押すだけで順次貼りついて欲しい(かな?)と考えついた。

と受け取りましたね。
まぁ読解力がないと質問者に言われた事もあるボケジジィなので、私の間違いであれば申し訳ないです。
    • good
    • 1

No6の方の解釈がただしいかも知れませんね。


何れにしろ、質問者の方から、返信があると思いますので、もし私の提示したマクロが期待した動作でなかった場合は、その時対応したいと思います。
    • good
    • 1

wshでsendkeysをつかう


コードは自分で考えましょう
    • good
    • 1

>例えば、D3が空白であればD3にペーストし、


>D3が空白でなければD4にペーストし、
>D3とD4が空白でなければD5にペーストする。
>ようなことをしたいのです。それを33行目まで行いたいです。

D3~D33のセルで、D3とD5が空白の場合、D3とD5にペーストするというこでしょうか。その場合、D3とD5は同じ内容になります。
それとも、D3にのみペーストして、マクロを終了するのでしょうか。

>さらにD~G列はセルの結合をしております。
結合セルに直接ペーストすることはできません。一旦、単独セルにペーストし、その単独セルの内容を結合セルにコピーする必要があります。
どこか空いている単独セルを提示してください。(例 Z1 等)
    • good
    • 0
この回答へのお礼

>D3~D33のセルで、D3とD5が空白の場合、D3とD5にペーストするという>こでしょうか。その場合、D3とD5は同じ内容になります。
>それとも、D3にのみペーストして、マクロを終了するのでしょうか。

この場合はD3のみペーストしたいです。

また、空いているセルはBA6でお願いします。

お礼日時:2022/01/27 08:38

以下のマクロを標準モジュールに登録してください。



Public Sub 貼り付け()
Dim wrow As Long
For wrow = 3 To 33
If Cells(wrow, "D").Value = "" Then
Range("BA6").Select
ActiveSheet.PasteSpecial Format:="テキスト", Link:=False, DisplayAsIcon:=False
Cells(wrow, "D").Value = Range("BA6").Value
Range("BA6").Value = ""
Cells(wrow, "D").Select
Exit For
End If
Next
End Sub
    • good
    • 0
この回答へのお礼

思い通りにできました。ありがとうございました。

お礼日時:2022/01/27 14:04

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