選択範囲のセルを任意の文字で埋める

こんなのがあった時に、

左上から、右下まで選択して、実行すると


こんな風に埋めてくれるようなVBA

Sub test()
    ' この場合、セルが空白なら0で埋める処理になる
    Call fillXtoY("", 0)
End Sub
 
Sub fillXtoY(x, y)
    For i = Selection(1).Row To Selection(Selection.Count).Row
       For j = Selection(1).Column To Selection(Selection.Count).Column
            If Cells(i, j) = x Then
                Cells(i, j) = y
            End If
        Next
    Next
End Sub

https://gist.github.com/pogin503/5150808
VBAだとサブルーチンはCallで呼ぶといいみたい。

追記 2017/03/22
もっと簡単な書き方があるっぽい。

Sub test()
    ' この場合、セルが空白なら0で埋める
    Call fillXtoY("", 0)
End Sub
 
Sub fillXtoY(x, y)
    Dim i As Long, j As Long
    With Selection
        For i = 1 To .Rows.Count
            For j = 1 To .Columns.Count
                If .Cells(i, j) = x Then
                    .Cells(i, j) = y 
                End If
            Next
        Next
    End With
End Sub