0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Excel VBA セル結合と戦うためのコード

Last updated at Posted at 2024-07-08

いまだにそんなExcelファイルがあるんですかとか言わないでください

業務効率化の目的でもらった社内ファイルがゴリゴリにセル結合していました。
とりあえずデータベースとして使えるようにデータ成形をしようと思います。
全部で4,000行弱あったので、手作業でできるわけがないのでVBAでやりました。

かなりデフォルメしていますが、こんな感じの表が4,000行くらい続いています。
セル結合.png

ここから、セル結合を解除して、B列を埋めていきます。

結合解除はB列を選択して手動で
セル結合2.png

結合解除後
B列がスカスカですね。このままでは、まともなデータベースとして使えないので、ここからVBAを書いて一気に仕上げます。
セル結合4.png

Sub remakedata()

  Dim i As Long
  Dim LastRow As Long
  Dim ws As Worksheet
  
  Set ws = ThisWorkbook.Sheets("Sheet1") 'シート名を変数に格納
  LastRow = ws.Cells(Rows.Count, 3).End(xlUp).Row 'C列の最終行
  
  For i = 4 To LastRow '4行目から最終行までループ
  
    If ws.Cells(i, 2) = "" Then 'B4セルから下が空白なら
       ws.Cells(i, 2) = ws.Cells(i - 1, 2) 'ひとつ上のセルをコピー
    End If
  
  Next i
  
End Sub

実行結果
セル結合3.png

実際のファイルでは体感でだいたい3~5分くらいかかりました。メモリ8Gのパソコンなので、もっとスペックの高いパソコンならもっと実行速度は速くなると思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?