以下は知人に作ってもらったマクロで、100×100セルという範囲の
各セル内の値に応じて色を塗り分けるものです。
素人ながらふと気になった点として、3カ所ほど「Sheet1」という
記述がありますが、Sheet1をそのままコピーしたシート名
(例:Sheet1のコピー)などで実行するとエラーになる
(或いは'Sheet1のコピー'上には塗ってもらえない)
のではないでしょうか?
なので、Sheet1を「ActiveSheet」などの記述に書き換えた方が
(必ずSheet1上で実行せずともよくなるので)汎用性が高まると
思うのですが、わたしの予想が正しければ、具体的にはどのように
書き換えればよいでしょうか?
単純にSheet1をActiveSheetに書き換えてよいですか?
Sub MyColor()
Do Until Y = 100
Do Until X = 100
mapcol = Sheet1.Cells(1 + X, 1 + Y)
Select Case mapcol
Case 1 '赤
Sheet1.Cells(1 + X, 1 + Y).Interior.ColorIndex = 3
Case 2 '黄
Sheet1.Cells(1 + X, 1 + Y).Interior.ColorIndex = 6
X = X + 1
Loop
X = 0
Y = Y + 1
Loop
End Sub
お礼
papayukaさん、早速ありがとうございました。 ご教示の内容は了解できました。 ありがとうございました。 一応、ActiveSheetにしておこうと思います。 「End Select」はコピペミスです、実際は 入ってます。ご指摘ありがとうございました。