Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8710 / 13646 ツリー ←次へ | 前へ→

【31661】空白に色が付きます。 太陽 05/11/27(日) 22:49 質問[未読]
【31662】Re:空白に色が付かないようにするには かみちゃん 05/11/27(日) 22:59 回答[未読]
【31663】Re:空白に色が付かないようにするには 太陽 05/11/27(日) 23:10 質問[未読]
【31664】Re:空白に色が付かないようにするには kobasan 05/11/27(日) 23:15 回答[未読]
【31666】Re:空白に色が付かないようにするには 太陽 05/11/27(日) 23:21 お礼[未読]
【31665】Re:空白に色が付かないようにするには かみちゃん 05/11/27(日) 23:17 発言[未読]
【31667】Re:空白に色が付かないようにするには 太陽 05/11/27(日) 23:24 回答[未読]

【31661】空白に色が付きます。
質問  太陽  - 05/11/27(日) 22:49 -

引用なし
パスワード
   はじめまして、ExcelVBAでどうしてもわからないことがあるので質問させていただきます。
まず、プログラムを見ていただいたほうが早いと思うので、プログラムをお見せします。これは例なのですが、

Sub 色付け()

  Sheets("色付け").Select
  Rows("1:24").RowHeight = 12
  Columns("A:Z").ColumnWidth = 2
  Cells.Interior.ColorIndex = xlNone

  Set MyRange = Range("A1:Z24")
  For Each r In MyRange
    v = r.Value
    Select Case v
     Case 0, 1
      r.Interior.ColorIndex = 5
     Case 1, 2
      r.Interior.ColorIndex = 4
     Case 3, 4
      r.Interior.ColorIndex = 6
     Case 5, 6
      r.Interior.ColorIndex = 1
     Case Else
      r.Interior.ColorIndex = 8
    End Select
  Next r

End Sub

色付けというシートに("A1:Z24")の範囲でランダムに数字
を打ち込んだとします。
そして、上記のプログラムを実行すると、確かに色は付く
のですが、空白の部分にまで色が付いてしまいます。
そこで、Case Speace でColorIndex=0としてみたところ、
確かに空白の部分はクリアな色になったのですが、次は0
までクリアになってしまいました。ちなみに、0は上記の
通り、"5"つまり青色を指定しています。
どうすれば、空白がクリアになって、0は指定した通りの
色になるのでしょうか。お願いします。

【31662】Re:空白に色が付かないようにするには
回答  かみちゃん  - 05/11/27(日) 22:59 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>そして、上記のプログラムを実行すると、確かに色は付く
>のですが、空白の部分にまで色が付いてしまいます。

それは、Interior.ColorIndex = 8
つまり、水色が付くということでしょうか?
Case Else
 If r.Value <> "" Then
  r.Interior.ColorIndex = 8
 End If
とすれば、0〜6以外でかつ空白以外の場合、水色になると思います。

なお、
>     Case 0, 1
>      r.Interior.ColorIndex = 5
>     Case 1, 2
って、1の場合、何か変なのでは?

【31663】Re:空白に色が付かないようにするには
質問  太陽  - 05/11/27(日) 23:10 -

引用なし
パスワード
   ▼かみちゃん さん:
はじめまして、ありがとうございます。


>>そして、上記のプログラムを実行すると、確かに色は付く
>>のですが、空白の部分にまで色が付いてしまいます。
>
>それは、Interior.ColorIndex = 8
>つまり、水色が付くということでしょうか?

違います。空白の部分はCase0,1で指定した5の色、つまり青色になります。
一度、1を抜いてCase0だけにしてみたところ、やはり空白の部分が青色でした。
恐らく、空白の部分が0で指定した色に上から塗りつぶされている気がします。

>なお、
>>     Case 0, 1
>>      r.Interior.ColorIndex = 5
>>     Case 1, 2
>って、1の場合、何か変なのでは?

すみません。上記はこちらのミスです。本当は、

    Case 0
      r.Interior.ColorIndex = 5
    Case 1, 2

と、打ちたかったのですがミスしました。

【31664】Re:空白に色が付かないようにするには
回答  kobasan E-MAIL  - 05/11/27(日) 23:15 -

引用なし
パスワード
   皆さん 今晩は。

これでどうですか。

    Select Case r.Text
      Case ""
        r.Interior.ColorIndex = 0
      Case "0", "1"
        r.Interior.ColorIndex = 5


      Case Else
        r.Interior.ColorIndex = 8
    End Select
  Next r

【31665】Re:空白に色が付かないようにするには
発言  かみちゃん  - 05/11/27(日) 23:17 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>違います。空白の部分はCase0,1で指定した5の色、つまり青色になります。
>一度、1を抜いてCase0だけにしてみたところ、やはり空白の部分が青色でした。

「空白」というのは、何をさしていますか?
もしかして、A1:Z24には、数式が設定されているのでしょうか?
その値が0になっていませんか?
「空白」と「0」と「△」(△はスペースの意味)では意味が全く違います。

そのあたりのことが、はっきりしないと正しいコードは提示できません。

【31666】Re:空白に色が付かないようにするには
お礼  太陽  - 05/11/27(日) 23:21 -

引用なし
パスワード
   ▼kobasan さん:
できました!0にもきちんと指定した色が付きましたし、
空白の部分もクリア(xlNone)になりました。ずっと解け
なかったので、とても嬉しいです。やっとスッキリして
寝れます(笑)
本当に有難うございました。

【31667】Re:空白に色が付かないようにするには
回答  太陽  - 05/11/27(日) 23:24 -

引用なし
パスワード
   ▼かみちゃん さん:

再度有難うございます。

>>違います。空白の部分はCase0,1で指定した5の色、つまり青色になります。
>>一度、1を抜いてCase0だけにしてみたところ、やはり空白の部分が青色でした。
>
>「空白」というのは、何をさしていますか?
>もしかして、A1:Z24には、数式が設定されているのでしょうか?
>その値が0になっていませんか?
>「空白」と「0」と「△」(△はスペースの意味)では意味が全く違います。

説明が悪くてすみません。空白というのは数字も文字も入力していないセル
のことです。ちなみに、A1:Z24には数式は設定されておりません。ランダム
に数字を打ち込んだだけのものです。

>そのあたりのことが、はっきりしないと正しいコードは提示できません。

お手数おかけしました。もう少し説明が上手く出来るように勉強します。
今回はなんとか解けましたが、またお世話になることがありましたら宜しく
お願いいたします。
ありがとうございました。

8710 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free