📊

上司から催眠術をくらった場合(Excel VBA)

2022/03/23に公開

お久しぶりです。みはるです。
ただの備忘録です。

上司「このエクセルの全角数字があるセルを色塗りしてくれ!!」

ワイ「えwいいんすかwwこんなタスクでお賃金もらっちゃってwww」
エクスプローラー「ブック300個あるやで」
ワイ「はい」

上司が催眠術!ワイはどうする?

vba 書きます。

' 主要ロジック抜粋
Sub add_background_color()
    Dim i
    Dim j
    Dim row_num
    Dim col_num
    Dim chars()

    row_num = 400
    col_num = 12
    chars = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0")

    For i = 1 To row_num
        For j = 1 To col_num
            For Each char In chars
                If InStr(cells(i, j).Value, char) <> 0 Then
                    cells(i, j).Interior.Color = RGB(255, 255, 0)
                End If
            Next
        Next
    Next

    MsgBox ("finish")
End Sub

なんてことない。言われたことをそのままコードにするだけです。
はじめは Range() で範囲指定してましたが、その後のループでうまくいかず。
Cellsを使えば解決できたが、二重ループが前提になりとてもきしょい。

そして今回のやりたいことだと、For 文が3重になってしまいめちゃくちゃきしょい。 (ループ用変数も宣言しないといけないし)
どうにかならんかなぁ。。。

Discussion