• ベストアンサー

Excelで入力済データを維持しつつ行パターン変更

Excel2010で添付画像の通り、1行ごとに隙間なく入っている元データを、追記事項があるので3行で1項目を書くかたちに作り変えることになりました。(左のエクセルを、右のエクセルのように作り変えたいということです。) データの数が多いですので、また、同じ罫線パターンを何度も繰り返してつくりたいです。 また、一項目ごとのデータも、かなり長い列に入っていますので、そのまま使いたいです。 機械的な作業ですので、大変でないやり方がありましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

> 機械的な作業ですので、大変でないやり方がありましたら ご自身でマクロを組めたら一番早いんですけどね。 まぁ、いわゆる「単発処理」でしょうから、とりあえず一例として。 質問文中の添付図のように「3行目から実データがある場合」が前提です。 まずは Sub sample1() Dim i As Long   For i = Cells(Rows.Count, 1).End(xlUp).Row To 4 Step -1     Rows(i & ":" & i + 1).Insert   Next End Sub 上記を走らせると「2行ずつ挿入」されますので、 3:5行目にお好みの罫線を引くなり、セルを結合させるなりやってください。 引けたら(マスターとなる書式が整ったら)以下 Sub sample2() Dim i As Long   Rows("3:5").Copy   For i = 6 To Cells(Rows.Count, 1).End(xlUp).Row Step 3     Rows(i & ":" & i + 2).PasteSpecial Paste:=xlPasteFormats   Next   Range("A1").Select   Application.CutCopyMode = False End Sub コレを走らせると、全ての行に同じ書式が付きます。 一応、参考までにどうぞ。

trickyhel
質問者

お礼

回答ありがとうございます。 すみません、初心者なもので、マクロというものを初めて使いました。 最初の方だけ半端に作りかえたい形に作ってありましたので、作っていただいたマクロの数字を少し自分で組み替えたらできました。 分かりやすい説明をありがとうございました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! VBAになってしまいますが、一例です。 画面左下の操作したいSheet見出し上で右クック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub 行挿入() 'この行から Dim i As Long, cnt As Long i = Cells(Rows.Count, "A").End(xlUp).Row Application.ScreenUpdating = False Range("A:A").Insert With Range(Cells(3, "A"), Cells(i, "A")) .Formula = "=row()" .Value = .Value .Copy End With Do Until cnt = 2 cnt = cnt + 1 Cells(Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues Loop i = Cells(Rows.Count, "A").End(xlUp).Row Range(Cells(3, "A"), Cells(i, "D")).Sort key1:=Range("A3"), order1:=xlAscending, Header:=xlNo Range(Cells(3, "C"), Cells(i, "D")).Borders.LineStyle = xlContinuous Range(Cells(3, "B"), Cells(i, "B")).Borders.LineStyle = xlNone For i = 3 To Cells(Rows.Count, "B").End(xlUp).Row Step 3 With Cells(i, "B").Resize(3) .Borders(xlEdgeLeft).LineStyle = xlContinuous .Borders(xlEdgeTop).LineStyle = xlContinuous .Borders(xlEdgeRight).LineStyle = xlContinuous .Borders(xlEdgeBottom).LineStyle = xlContinuous End With Next i Range("A:A").Delete Application.ScreenUpdating = True End Sub 'この行まで ※ 必ずデータが詰まっている状態(途中に空白行がない状態)でマクロを実行してください。 ※ 結局1度だけの操作になってしまいますね。 こんな感じではどうでしょうか?m(_ _)m

trickyhel
質問者

お礼

回答ありがとうございます。 マクロを使うのは初めてでしたが、できました。 ただ、これは私の書き方が悪かったのですが、実際は二つ、これから作りたい形に作成してあったので、そのまま流し込んで使うことはできませんでした。 このようなものを作ることはまたあるでしょうから、ひな形として保管しておこうと思います。 教えてくださって、ありがとうございました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

私なら以下のような手順で希望のリストを作成します(データ数が多い場合)。 D3セルに「1」と入力し、セルの右下をダブルクリックし、右下に表示されるオートフィルオプションで「連続データ」を選択します。 そのまま連続番号をCtrl+Cでコピーし、D3セルを選択してCtrl+↓キーでD列の最終セルを選択し、↓キーでその下のセルを選択して、Ctrl+Vで貼り付けます。同様の操作でD列の最終セルの1つ下のセルに、Ctrl+Vで3組目の番号を貼り付けます。 A3セルを選択しCtrl+Shift+Endでリスト範囲を選択し、データタブの「並べ替え」でD列を基準に昇順で並べ替えてから、D列をDeleteで削除します。 これで基本の配置ができましたので次に罫線の作成ですが、A3:C5セル1組だけのセルの書式を縦罫線と周囲だけに設定し、この範囲を選択しCtrl+Cでコピーし、Ctrl+Shift+Endでデータ範囲を選択し、右クリック「形式を選択して貼り付け」で「書式」にすれば完成です。

trickyhel
質問者

お礼

回答ありがとうございます。 並び替えやCtrl+Shift+Endの使い方など、とても勉強になりました。色々なときに使えそうですので、またエクセルを使う時に、使ってみようと思います。