- ベストアンサー
統合セルの複数セルコピー&ペースト方法
- 統合セルが混じった複数のセルをコピーしてペーストする方法について教えてください。
- シート1にある統合セルと非統合セルの情報をコピーして、別のシートにペーストする方法を知りたいです。
- 統合セルを含む複数のセル情報をコピーして、同じ形式で別のシートに貼り付ける方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> A1:E19を1単位として、右隣に同じ形式(2単位目はF1:J19)の情報が > 100個ほど並んでいます。 100 個というのが意味不明です。 A ~ E 列なら 1 単位辺り 5 列なので、100 単位となると 5 × 100 で 500 列必要になりますね。。Excel2007? 若しくは、5 列 × 20 単位 = 100 列 という意味ですか? >「$A$1:$E$8,$B$9:$B$19」と入力したら、その情報をコピーして、 > 別シート2のA列1列にそれらの情報をペーストしたいのです。 仮に、「$A$1:$E$8,$B$9:$F$19」が選択された場合はどうします? ポイントになりそうなのは、 1. MergeArea 2. Offset ですかね。。働きはヘルプで調べてみて下さい。 結合セルの値は、結合セルの一番左角のセルから取得します。例えば A1:C10 が結合されているなら A1、F10:J20 なら F10 のように。 ご希望の動作を正しく理解している自信がありませんが、とりあえず テストコードということで回答してみます。 Sub macro() Dim Sh As Worksheet Dim rSrc As Range Dim r As Range Dim i As Long Dim lRow As Long Dim lCol As Long Set rSrc = Application.InputBox( _ Prompt:="範囲をドラッグしてください。", _ Type:=8) If rSrc Is Nothing Then Exit Sub Set Sh = Worksheets.Add(After:=ActiveSheet) lRow = 1 lCol = 1 For i = 1 To 20 For Each r In rSrc ' // MergeArea で取得されるセルの一番左角のセルであった時 ' // のみ転記処理を行う。結合セルであるかどうかは問題ではない If r.Address = r.MergeArea(1).Address Then Sh.Cells(lRow, lCol).Value = r.Value lRow = lRow + 1 End If Next ' // 1単位は 5 列で構成されるので、次の単位における ' // 同位置は Offset(0,5) Set rSrc = rSrc.Offset(0, 5) lRow = 1 lCol = lCol + 1 Next Set rSrc = Nothing End Sub
お礼
つたない質問から、良い回答を書いていてありがとうございます。 If r.Address = r.MergeArea(1).Address Then の部分、特に参考になりました。ありがとうございました。