ツイッターで流れてきた記事がおもしろかった。
筆者の熱い文章からクソみたいなフォーマットのデータを日々扱っておられる苦労を感じられ、心から「おつかれさまです」という言葉をかけたいと思った。
ということで、データとしての整形の問題はセルの結合のみに限られないけれども、せめて結合だけでも解消したいというケースに使えるVBAを書いたので公開する。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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日執行京都府知事選挙 投票者数調」)
さすがにオープンデータというだけあってちゃんと行指向にデータが整理されているものが多く、探すのに苦労した。
ちなみに国勢調査の集計データは手作りアウトラインとなっていてアレ度が高く対象からは外した。
実行前
実行後
こんなのが役に立つようなことがなくなればいいですね。
コメントを残す