MENU

1明細データが2行の表を、1明細1行にする

無料アプリで、すぐにエクセルVBAマクロを作成できます。

例として、アプリで「1明細データが2行の表を、1明細1行にする」VBAマクロを作成します。(ページの末尾に、VBAコード掲載)

処理のイメージ

事例

社員(仮名)の給与一覧を、1明細1行のデータベース形式にします。

マクロを実行すると、1データ1行になりました。

項目の順番を、列の移動で修正します。

アプリの設定

アプリのトップページ

 ⇒▼表の形式変換

 ⇒【ツール】1明細データが2行の表を、1明細1行にする

【ポイント】

■ 結合されたセルは、自動で解除されます。

■ 複数行のデータに対応できます。

■ 計算式は、値で上書きされます。

■ 「列の見出し」が1行だけのデータも対応できます。

 

その他の設定について

 

表示されるVBAコード 

アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。

Sub デモ_1() '1明細データが2行の表を、1明細1行にする
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False  ' 警告表示を停止
Dim セル範囲 As String, セル As Range, 右下セル As String
Sheets("sheet1").Select
セル範囲 = "a1:c10"
Range(セル範囲).Select
Call デモ_1_メイン処理(セル範囲)
Application.DisplayAlerts = True   ' 警告表示を再開
Application.ScreenUpdating = True  ' 画面描画を再開
End Sub
 
Sub デモ_1_メイン処理(セル範囲 As String)
Selection.UnMerge
Dim 対象行 As Long, 回数 As Long
回数 = 2 - 1
For 回数 = 1 To 回数
    Selection.Offset(1, 0).Copy
    Selection(1).Offset(0, Selection.Columns.Count).Select
    ActiveSheet.Paste
Next 回数
Application.CutCopyMode = False
Range(セル範囲).Select
For 対象行 = Selection(Selection.Count).Row To Selection(1).Row Step -2
    Range(Cells(対象行 - 2 + 2, Selection(1).Column), Cells(対象行, Selection(Selection.Count).Column * 2)).Delete xlShiftUp
Next 対象行
End Sub

マクロを使うメリット

手作業で数分かかる作業が、1秒で終わります。

ぜひ、アプリをご利用ください。

 

アプリはこちらから↓↓↓↓