42本目 データベース形式に変換

VBA100本ノック

VBA100本ノック 42本目を動画で解説しています。Excelの神髄さんの模範解答はコチラ


問題

#VBA100本ノック 42本目
画像1のように「階層」シートに階層を表したデータがあります。
これを画像2のように「階層DB」シートにデータベース形式に変換して出力してください。

解答

Sub データをコピーしてAからC列の空白セルに一つ上のセルの値を入力してD列が空白の行を削除()

    Dim ws階層, ws階層DB
    Set ws階層 = Sheets("階層")
    Set ws階層DB = Sheets("階層DB")
    
    ws階層.Range("A1").CurrentRegion.Copy ws階層DB.Range("A1")  'コピー
    
    With ws階層DB.Range("A1").CurrentRegion
        .Columns("A:C").SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
        .Columns("A:C").Value = .Columns("A:C").Value
        .Columns("D").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    End With
    
End Sub
新人君
新人君

データベース形式にすると

何をするにも扱いやすいですよね!

ブチョ
ブチョ

そうかな?
おれはそうは思わないけど!

新人君
新人君

なんやこいつ…

コメント

タイトルとURLをコピーしました