- ベストアンサー
【エクセルマクロ】シート間のデータ切取⇒貼付マクロをくみたいです。
シートが2つあって、それぞれ「商品・顧客マスタ3」、「取引終了データ」というシート名です。 「商品・顧客マスタ3」のシートの列A~Kまでをドラッグしている状態で「CTRL+SHIFT+U」 をおすと、切り取り処理されて、「取引終了データ」シートの同じA~Kまでに「すべて貼り付け」されるマクロをつくりたいのですが、スキル不足からできません。ぜひ教えていただけないでしょうか? 【備考】 ・「商品・顧客マスタ3」シートのドラッグしている行は様々で1行限りのときもあれば、5行(超え)等になるときもあります。列はつねにA~Kまでです。例 5行のとき⇒A401~K405までをドラッグしている状態。常に連続しています。 ・「取引終了データ」の貼り付け位置はA~K列の文字が入っていないところの一番最初の位置にしたい です。現在では、A1~K402までデータがぎっちり入っていて、A403を先頭に切り取ったデータを貼り付けしたいです。(データのはいっていないA列の一番上にはりつけできれば十分です。) ・貼り付け後は、「商品・顧客マスタ3」の空欄になったところを「削除」して上方向につめたいです。削除は行 全体ではなく、列A~Kまでとしたいです。 なお、EXCEL2002をビスタで使っています。 お手数をおかけいたしますが、ぜひよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
下記マクロでいかがでしょうか。 はじめに移動したい範囲を選択してからマクロ実行してみてください。 その際に、範囲指定は行単位ではなくセル単位(例えば、A401~K405までをドラッグしている状態)で行ってくださいね。 (行単位で行うと、元データも行単位で削除することになってしまいますので) Sub Macro() Selection.Cut Sheets("取引終了データ").Select Range("A1").Select Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Paste Sheets("商品・顧客マスタ3").Select Selection.Delete Shift:=xlUp End Sub
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
>スキル不足と言ってながら、マクロの記録を行った形跡も無い。 どうしたことですか。 マクロの記録をとって、どこを変えるべきかを良く考えて、そこに絞って質問にしてください。丸投げにしないでください。 (1)操作で選択範囲はSelection (2)最終行はd=Range("A65536").End(xlUp).Row (3)最終行までの範囲は(K列までとしたとき) Range("A2:K”& d) でつかめるので、マクロの修正は、この3点でほぼ解決するでしょう
お礼
スキル不足は間違いですね。ご質問者さまのおっしゃるとおり、丸投げですね・・。開き直るわけではないのですが、これはいけないことでしょうか??「はてな」のようなところに投げるのが正解でしょうか?質問する側にとっては大変助かっているのですが・・・。でも、詳しく教えてくれてありがとうございます。
お礼
さっそくのご返信ありがとうございました! 完璧に実行できました。 本当に感謝いたします。 また優しくご回答いただきまして、ありがとうございました。 他の回答者の方のコメントにもあるとおり、スキル不足というより丸投げに対してご回答いただき、感謝します。