- ベストアンサー
Excelで入力済データを維持しつつ行パターン変更
- みんなの回答 (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 コレを走らせると、全ての行に同じ書式が付きます。 一応、参考までにどうぞ。
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 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
お礼
回答ありがとうございます。 マクロを使うのは初めてでしたが、できました。 ただ、これは私の書き方が悪かったのですが、実際は二つ、これから作りたい形に作成してあったので、そのまま流し込んで使うことはできませんでした。 このようなものを作ることはまたあるでしょうから、ひな形として保管しておこうと思います。 教えてくださって、ありがとうございました。
- MackyNo1
- ベストアンサー率53% (1521/2850)
私なら以下のような手順で希望のリストを作成します(データ数が多い場合)。 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でデータ範囲を選択し、右クリック「形式を選択して貼り付け」で「書式」にすれば完成です。
お礼
回答ありがとうございます。 並び替えやCtrl+Shift+Endの使い方など、とても勉強になりました。色々なときに使えそうですので、またエクセルを使う時に、使ってみようと思います。
お礼
回答ありがとうございます。 すみません、初心者なもので、マクロというものを初めて使いました。 最初の方だけ半端に作りかえたい形に作ってありましたので、作っていただいたマクロの数字を少し自分で組み替えたらできました。 分かりやすい説明をありがとうございました。