Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11430 / 13645 ツリー ←次へ | 前へ→

【16131】間隔を空けての貼り付け YN61 04/7/17(土) 8:28 質問[未読]
【16132】Re:間隔を空けての貼り付け IROC 04/7/17(土) 8:47 回答[未読]
【16133】Re:間隔を空けての貼り付け YN61 04/7/17(土) 9:50 質問[未読]
【16134】Re:間隔を空けての貼り付け かみちゃん 04/7/17(土) 10:16 発言[未読]
【16135】Re:間隔を空けての貼り付け [名前なし] 04/7/17(土) 10:39 回答[未読]
【16139】Re:間隔を空けての貼り付け YN61 04/7/17(土) 12:08 お礼[未読]

【16131】間隔を空けての貼り付け
質問  YN61  - 04/7/17(土) 8:28 -

引用なし
パスワード
   項目1  項目2  項目3  項目4
aaa   AAA    100   10
     ABB    200   20

bbb   BBB    300   30             
     BAA    400   40              

ddd   DDD    500   50             
     DCC   600    60          100   10
     DEE   700    70           200   20
                             
hhh   FFF    800    80          300   30
     GGG    900    90          400   40
             
                            500   50
                            600   60
                            700   70

                            800   80
                            900   90

(貼り付けました表が左右にふれているかも知れませんが
お許しください)

上部左の表のように2行や3行単位の表があります
この行幅(行数)は表が作成される度に異なります。2〜4行範囲で変化します。
しかし、一つの表のブロック単位後には1行空けて作成されています。
この表の数字のみ拾って、右のような別表に貼り付ける方法を考えています。
しかし、ブロック単位の1行空けがどうしても出来ませんが
良い方法をご教授ください。
現在はブロック単位に貼付を3行下にしています。

コードを次のようにしています。

Sub 選択貼付()

Dim i As Integer
Dim 最終行 As Integer
最終行 = Range("A65536").End(xlUp).Row

 j = 6
For i = 最終行 To 3 Step -1

If Cells(i, 1) <> "" Then
 Cells(i, 1).Select
  Selection.Offset(, 2).Select
  Range(Selection, Selection.End(xlToRight)).Select
  Range(Selection, Selection.End(xlDown)).Select
  Selection.Copy

 j = j + 3
 Cells(j, 7).Select

  Selection.PasteSpecial Paste:=xlValues
  Application.CutCopyMode = False

End If

Next

Range("A1").Select

End Sub

【16132】Re:間隔を空けての貼り付け
回答  IROC  - 04/7/17(土) 8:47 -

引用なし
パスワード
   そのままコピー&貼り付けだと何が問題なのでしょうか?

【16133】Re:間隔を空けての貼り付け
質問  YN61  - 04/7/17(土) 9:50 -

引用なし
パスワード
   ▼IROC さん:
>そのままコピー&貼り付けだと何が問題なのでしょうか?

分かりにくい説明で失礼しました。

貼り込まれた結果が、3ブロック目と4ブロック目の境に1行空けて貼り込まれません。
(仕上げのブロックとブロックの間を1行空白行を入れたいのですが。)

貼り込み前の数字のブロックが3行ものも在れば2行ものも在ります。
それを、選択することは出来ますが、貼り込み先でブロック単位で1行空けて貼り込みたいのですが・・・

【16134】Re:間隔を空けての貼り付け
発言  かみちゃん  - 04/7/17(土) 10:16 -

引用なし
パスワード
   こんにちは。かみちゃん です。

IROCさんも、書かれていますが、コピー貼り付けではいけないのでしょうか?
項目1、項目2、項目3、項目4をそれぞれ、A1、B1、C1、D1
aaa、AAA、100、10をそれぞれA2、B2、C2、D2
以下同様とした場合、
C2からD13をコピー元として、G13に貼り付けるとできると思うのですが・・・
プロックという単位も少々わかりません。

>それを、選択することは出来ますが、貼り込み先でブロック単位で1行空けて貼り込みたいのですが・・・

この部分が???です。

【16135】Re:間隔を空けての貼り付け
回答  [名前なし]  - 04/7/17(土) 10:39 -

引用なし
パスワード
   最初の質問にあったコードを実行してみると、
hhh → ddd → bbb → aaa
の順にG9以下に貼り付けようとしているようなので、
以下のコードで出来るかと。

Sub 選択貼付()
 Dim i As Long
 
 Range("A65536").End(xlUp).Select
 Do
   i = ActiveCell.Row
   Cells(i, 3).Select
   Range(Selection, Selection.End(xlToRight)).Select
   Range(Selection, Selection.End(xlDown)).Select
   Selection.Copy
   
   Range("G65536").End(xlUp).Offset(2, 0).Select
   If ActiveCell.Row < 9 Then Range("G9").Select
   Selection.PasteSpecial Paste:=xlValues
   Application.CutCopyMode = False
 
   Cells(i, 1).End(xlUp).Select
 Loop Until ActiveCell.Row < 2
End Sub

【16139】Re:間隔を空けての貼り付け
お礼  YN61  - 04/7/17(土) 12:08 -

引用なし
パスワード
   [名前なし] さん をはじめ
皆様 ありがとうございました。

分かりにくい説明で失礼しました。
正しく、小生のしたいことを伝えることが如何に難しいか?
っと言うことですね。

色々とご指摘などをいただきありがとうございました。

本当に感謝しています。
今後ともよろしくお願いいたします。

11430 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free