
こんにちは
Excel2003 を使用しています。
マクロを使って毎回行数が違うデータをコピー貼り付けをしたいのですが
よく分かりません。コピー先の最終行そろえのコピーの方法もお願いします。
毎回データ行数が違う2つの表を、新しい表の上の部分と下の部分に分けてコピーしたいのです。
コピー元1 0~20行
コピー元2 0~20行 1と2の合計は、0~20行です。多くても20行まで。
コピー元1を1行目から、コピー元2の最下行を20行目に揃えて、
貼り付け先の表には、上部と下部の間に空白行が入っOKです。
(例)
コピー元1 コピー元2
X Y Z AA AB AC
1鈴木 千葉 男 1山本 大阪 男
2田中 東京 女 2高橋 京都 女
3 3
↓↓
貼り付け先
A B C
1鈴木 千葉 男
2田中 東京 女
3
・
・
18
19山本 大阪 男
20高橋 京都 女
のように上部と下部に分けてコピーしたいのです。
行数は毎回ちがい、合わせて20行の場合は、空白行はなくなります。
説明が、つたなく申し訳ありませんが
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
すみません、使い物になりませんでした。
Sub Re7744683c()
Dim rCn1 As Long
Dim rCn2 As Long
rCn1 = Cells(1, "X").End(xlDown).Row
rCn2 = Cells(1, "AA").End(xlDown).Row
If rCn1 > 21 Then rCn1 = 0
If rCn2 > 21 Then rCn2 = 0
If rCn1 + rCn2 > 20 Then MsgBox "おおすぎます": Exit Sub
If rCn1 > 0 Then Range("X:Z").Resize(rCn1).Copy Cells(1, 1)
If rCn2 > 0 Then Range("AA:AC").Resize(rCn2).Copy Cells(21 - rCn2, 1)
End Sub
ci_moverさま
回答ありがとうございました。
早速試したところ、思い通りの結果です。
内容については、これから勉強します。
助かりました。ありがとうございました。
No.4
- 回答日時:
> マクロを使って毎回行数が違うデータをコピー貼り付けをしたいのですが
> よく分かりません。コピー先の最終行そろえのコピーの方法もお願いします。
「よく分かりません」の意味がよく分かりません。
どんなマクロを組めばいいかヒントをくれ、と言う意味でしょうか。
代わりにマクロを組んでくれ、と言う意味でしょうか。
前者だと仮定して話を進めると、
(1)コピー先のA1:C20をクリア
(2)コピー元1を“そのまま”コピー先1行目に貼り付け
※提示の例だと、X1:Z2をコピー、A1に貼り付け
(3)コピー元2を“そのまま”コピー先(20-データ行数+1)行目に貼り付け
※提示の例だと、AA1:AC2をコピー、
(20-データ行数+1)=19なので、A19に貼り付け
だけのコードを、ごく単純に書きます。
各コピー元の行数チェックや、合計した行数チェック、
各行のデータの有効性の確認など、複雑に書けば書けると思いますが、
提示された条件だけならコレだけで十分対応できるかと思われます。
tsubuyukiさま
回答ありがとうございます。
当方、できたマクロを修正するくらいの知識しかありません。
最初に作る時は、マクロの記録で行っておりました。それを手直しする程度。
今回は、それでは対応できず、いろいろ調べましたが分からず質問させて頂きました。
親切に回答ありがとうございました。
No.2
- 回答日時:
こんにちは。
条件として、
元1、元2、合計20件を超えないこと。
元1、元2、ともに1行めから始まっていること(質問文のまま)。
といことなら簡単に
Sub Re7744683j()
Dim rcn1 As Long
Dim rcn2 As Long
rcn1 = Cells(1, "X").End(xlDown).Row
rcn2 = Cells(1, "AA").End(xlDown).Row
Range("X:Z").Resize(rcn1).Copy Cells(1, 1)
Range("AA:AC").Resize(rcn2).Copy Cells(21 - rcn2, 1)
End Sub
とか。
No.1
- 回答日時:
X,Y,Z列とAA,AB,AC列に入っているそれぞれのデータをA,B,C列にコピーするということでしょうか?
X,Y,Z列とAA,AB,AC列の1~20行に違うデータが入力されるたびに実行するマクロという理解でいいですか?
質問者様のVBAのスキルによりますが、私なら以下のようなマクロを組むと思います。
1. X,Y,Z列の1~20行に入っているデータを配列(配列1とします)に入れる。
2. AA,AB,AC列の1~20行に入っているデータを配列(配列2とします)に入れる。
3. 配列1をA,B,C列の1行目から下へ向かって書き込む。
4. 配列2を逆順にソートしてA,B,C列の20行目から上に向かって書き込む。
これで処理はできると思いますが、違うデータを処理する場合は、最初にデータが書き込まれる場所A,B,C列の1~20行目はデータを削除しておく必要があります。
質問の意味を誤解しているかもしれないので、とりあえずの回答です。
CaveatEmptorさま
早速の回答ありがとうございます。
質問の意味はその通りです。
逆順のソートして、下から書き込む、は気付きませんでした。
VBAのスキルはほとんどありません。
配列の意味から勉強します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ブルースクリーン後に残ってし...
-
Access 同じデータをたくさん...
-
「しておきます」は偉そう?
-
USBコピーしたら 履歴残る?
-
エクセルで作った表をイラスト...
-
所定の様式とは?
-
Bufferの大きさ
-
写しとはコピーをとることですか?
-
1:500(a3)の図面を1:200(a2...
-
◯◯商会と書いてある会社から購...
-
今使っている外付けHDDから新し...
-
コピーしたい本のページ数
-
一太郎の文面にpdfファイルを張...
-
REGZAで録画した番組をパソコン...
-
SSDからSSDにOS以外のものをデ...
-
レポートを書く際に、PDFファイ...
-
印刷の方法 教科書のページの図...
-
CDからUSBに音楽をコピーしたい
-
履歴が残らないようにパソコン...
-
DVDRAMで取り込んであるドラマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「しておきます」は偉そう?
-
Access 同じデータをたくさん...
-
Bufferの大きさ
-
コピーしたい本のページ数
-
◯◯商会と書いてある会社から購...
-
エクセルで作った表をイラスト...
-
所定の様式とは?
-
Word文書のコメントを含めない...
-
USBコピーしたら 履歴残る?
-
他人の質問や回答などをコピー...
-
REGZAで録画した番組をパソコン...
-
SSDからSSDにOS以外のものをデ...
-
1:500(a3)の図面を1:200(a2...
-
ヤマダ電気にその場でコピーす...
-
送られて来たURLが黒字になっ...
-
外付SSD選び
-
今使っている外付けHDDから新し...
-
レポートを書く際に、PDFファイ...
-
履歴が残らないようにパソコン...
-
Youtubeのコメントをコピーする...
おすすめ情報