- ベストアンサー
エクセルで複数行コピーして挿入する方法ありますか。
- エクセルで既存の表を行単位でコピーし、元行下に複数挿入する方法について教えてください。
- 挿入で空白を開けてコピーする方法もありますが、表の行数が1500を超えるため、一度に変換できない場合もあります。
- 変換後の表は他のソフトに貼り付けるため、関数を使用しない方法が望ましいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! すべての行を2行ずつコピーすればよい訳ですよね? VBAになってしまいますが、一例です。 データは1行目からあるとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j, k As Long Application.ScreenUpdating = False For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1 j = Cells(i, Columns.Count).End(xlToLeft).Column Rows(i + 1 & ":" & i + 2).Insert For k = i + 1 To i + 2 Range(Cells(i, 1), Cells(i, j)).Copy Destination:=Cells(k, 1) Next k Next i Application.ScreenUpdating = True End Sub 'この行まで ※ 一旦マクロを実行すると元に戻せませんので、別Sheetでマクロを試してみてください。m(_ _)m
その他の回答 (4)
- air_supply
- ベストアンサー率65% (1211/1841)
ExcelでVBA(Visual Basic for Apprications)を使う方法では駄目でしょうか? 関数ではできあがった表を操作することは難しいですし、マクロも与えられた任意の行数を扱うのは無理な感じです。 操作の対象となるExcelとは別にVBAを組みますので、表自体は増えたセルのみです。ただし、自由度の高いプログラムとなると一寸面倒ですが、私のような素人同然の人間でも、VBAはインタプリタなので試しながらなら作成可能と思われます。まあ、VBAの本は必須ですが(笑)。 考えつくのは、最初の表示ある要素を変数に取り込み、そのコピーを必要な数だけ次から次へと展開するといったイメージですね。シートを別に作成して、後から元のシートを削除すると言う方法もあります。これなら、元の表を見ながら展開した表を作成し、問題が無ければ元の表を消せます。VBAは、各種機能が豊富なので、結構自由に作成できるでしょう。 仕様(これがないと何もできませんね)が決まっているのなら、教えて下さい。検討できると思います。では......................
お礼
解答ありがとうございます。 勉強になります。 ありがとうございました。
- chonami
- ベストアンサー率43% (448/1036)
あ、左列昇順とは限らないんですね。 では、元表の別列に順番フラグとして1から連番を振っておいて、最後にそのフラグで昇順に並べ替えで。
- chonami
- ベストアンサー率43% (448/1036)
コピーしたい表を範囲選択し、表の下に2ブロック分コピー&貼り付ける。 A列(?)を昇順で並べ替え で如何でしょうか?
お礼
解答ありがとうございます。 勉強になります。 ありがとうございました。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
元の表がSheet1のA1~C1500にあると仮定 1. Sheet2のA1セルに以下の式を入力 =OFFSET(Sheet1!$A$1,(ROW()-1)/3,COLUMN()-1) 2. Sheet2のA1セルをコピーして、B1~C1セルにペーストする 3. Sheet2のA1~C1セルを範囲指定してコピーして、A2~C4500にペーストする 4. Sheet2のA1~C4500を範囲指定してコピーして、そのまま「形式を選択して貼り付け」で「値」を指定して貼り付ける 5. 式で書いてあったのが全部値に変わってるから、他のソフトに自由に貼り付ける >変換後、他のソフトへ貼り付けるため関数は使用しない方法がいいのですが。 上記のように「元のシートは一切書き換えず、式とかバンバン使って工夫して思い通りの表を新しいシートに生成して、出来上がったら、全体をコピーしてそのまま値のみを同じ場所に貼り付ける」と、最終的に、関数が一切入ってない値だけの表が作れます。 エクセルブックはシートを使って沢山の表が作れて、相互参照出来るので「新しいシートを作る」のが良いです。 「元の表を直に書き換える」のは、あまり賢い方法とは言えません。 それに、この方法だと「元の表に間違いがあったのを発見したとき」に、元の表を直してやり直せば済みます。 元の表を直に書き換えてから間違いに気付いたら、大抵は「取り返しが付かない状態」になってて、元の状態からやり直すのは不可能です。
お礼
早い解答ありがとうございます。 いろいろ勉強になります。 早速やってみたいと思います。 ありがとうございました。
お礼
回答ありがとうございます。 マクロまでは手がでませんでしたが、うまくいきました。 このシートを使って他の物も変換できそうです。 勉強になりました、ありがとうございます。