Posted by & filed under 未分類.

ツイッターで流れてきた記事がおもしろかった。

筆者の熱い文章からクソみたいなフォーマットのデータを日々扱っておられる苦労を感じられ、心から「おつかれさまです」という言葉をかけたいと思った。

ということで、データとしての整形の問題はセルの結合のみに限られないけれども、せめて結合だけでも解消したいというケースに使えるVBAを書いたので公開する。


Option Explicit
Sub breakUpMergedCells()
Dim curSheet As Worksheet
Dim eCell As Range, curRange As Range
Dim curAddr As String
Dim fillCell As Range
Dim filledValue As String
Set curSheet = ActiveSheet
Set eCell = curSheet.Cells.SpecialCells(xlCellTypeLastCell)
For Each curRange In curSheet.Range(curSheet.Range("A1"), eCell)
If curRange.MergeCells Then
curAddr = curRange.MergeArea.Address
filledValue = curRange.Formula
curRange.UnMerge
For Each fillCell In curSheet.Range(curAddr)
fillCell.Formula = filledValue
Next
End If
Next
End Sub

以下は京都府から取得可能なオープンデータでアレなのを探してきたものである。( https://data.city.kyoto.lg.jp/node/92717 より 「平成14年4月7日執行京都府知事選挙 投票者数調」)

さすがにオープンデータというだけあってちゃんと行指向にデータが整理されているものが多く、探すのに苦労した。

ちなみに国勢調査の集計データは手作りアウトラインとなっていてアレ度が高く対象からは外した。

実行前

実行後

こんなのが役に立つようなことがなくなればいいですね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です