表の「上と一緒」禁止!
本日、とある商品の出荷台帳を確認したところ、大変ショッキングな表記になっていた。エッセンスだけを再現すると、こんな感じだ。
駄目だ、この表は使い物にならない。これでは、集計も並び替えも、何もできないじゃないか。ということで、修正することにした。
さて、どうしたものか。と、ここで、ことりちゅんさんが紹介されていたテクニックを思い出した(↓の「2.」)。
- 選択範囲の「↑」を全て、一旦空白に置換する。
- 選択範囲の空白全てに、「一つ上のセル参照」の数式をセット。
- 参照中の値を、そのまま選択範囲の値としてセット。
コードにすると、こんな感じだ。
Sub 上と一緒() With Selection .Replace "↑", vbNullString, xlWhole .SpecialCells(xlCellTypeBlanks) = "=R[-1]C" .Value = .Value2 End With End Sub
極めてシンプルな点が、とても良いと思う。このテクニックを初めて見たとき、思わず感嘆。高校時代、賢い友人に物理のノートを見たときのことを思い出した。
もちろん、これでも出来る。
Sub 上と一緒() Dim r As Range For Each r In Selection If r = "↑" Then r = r.Offset(-1) End If Next End Sub
あとは、各位の好みにお任せで。
参考まで。