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

新人君
データベース形式にすると
何をするにも扱いやすいですよね!

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

新人君
なんやこいつ…



コメント