こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel-VBA でSheet1という記述はActiveSheetに書き換えた方が良いか?

以下は知人に作ってもらったマクロで、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

投稿日時 - 2006-06-18 01:18:52

QNo.2222401

暇なときに回答ください

質問者が選んだベストアンサー

ここで言うSheet1はCodeNameなので、明示的にCodeNameを変えてない限り、大抵の場合はエラーにならないと思います。
ただ、おっしゃるように汎用性を持たせるなら ActiveSheet に単純に置き換えれば良いと思います。

例では End Select が抜けてるけど。

投稿日時 - 2006-06-18 01:27:03

お礼

papayukaさん、早速ありがとうございました。

ご教示の内容は了解できました。
ありがとうございました。
一応、ActiveSheetにしておこうと思います。

「End Select」はコピペミスです、実際は
入ってます。ご指摘ありがとうございました。

投稿日時 - 2006-06-18 01:38:01

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問