• ベストアンサー

エクセル2003 VBAマクロにて 背景色 白色の抽出

エクセル2003のマクロでセル背景色にて抽出したいのですが 背景色が白色(空白)の抽出ができません。 背景色別に 他セルに文字を自動記入したいのですが、 背景色が白(collorindex=0)の認識をしてくれません。 カラーインデックスでは、白は「0」か「2」になっているので その値でマクロを組んでも認識してくれないようです。 どのようにすればよいのでしょうか? 以下に私(素人)のマクロ文(一部)です。ご指摘お願い致します。 Dim 行番号 As Integer 行番号 = 7 Do Until Cells(行番号, 1).Value = "" If Cells(行番号, 9).Interior.ColorIndex = 5 Then Cells(行番号, 14).Value = "3号機"   ElseIf Cells(行番号, 9).Interior.ColorIndex = 7 Then Cells(行番号, 14).Value = "4号機" ElseIf Cells(行番号, 9).Interior.ColorIndex = 0 Then Cells(行番号, 14).Value = "未加工" End If 行番号 = 行番号 + 1 Loop

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

ヘルプのColorIndex プロパティには、 「xlColorIndexNone 塗りつぶしを行わない場合に指定します。」 とあります。 「0」ではなくて、「xlColorIndexNone」として下さい。 If Cells(行番号, 9).Interior.ColorIndex = xlColorIndexNone Then

fu1974
質問者

お礼

早速プログラムを組んでみました。 上手くいきました! ありがとうございました。 プログラミングは始めたばかりで分からない事だらけです。 今後も質問させていただくと思いますが その節は宜しくお願いいたします ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

何もセルのパターン色を設定してないセルのことが考慮されていなくて、見た目で「白色」と考えているのではないですか。 書式ーセルーパターンー色なし これはセルのパターン色の初期状態です。 Sub test01() i=1 MsgBox Cells(i, "a").Interior.ColorIndex End Sub を実行すると、-4142になります。 定数では xlColorIndexNone Sub test01() MsgBox Cells(1, "a").Interior.ColorIndex If Cells(1, "A").Interior.Color = vbWhite Then MsgBox "白です" End If End Sub というのもできます。 です。 白色は2です

fu1974
質問者

お礼

ご回答ありがとうございます。 背景色なし と 白色の違いが理解できました。 大変勉強になりました。ありがとうございました

noname#140971
noname#140971
回答No.2

Private Sub CommandButton1_Click()   Dim I As Integer   For I = 1 To 8     Cells(I, 2).Value = Cells(I, 1).Interior.ColorIndex   Next I End Sub 一度、A1~A7を白を含む7色に塗ってから上記コードを試して下さい。 白=2 透明色=-4142 ということが判ると思います。

fu1974
質問者

お礼

回答ありがとうございます。 背景色なし(透明色) と 白色の違いが理解できました。 大変勉強になりました。ありがとうございました

関連するQ&A