アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル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

A 回答 (3件)

ヘルプのColorIndex プロパティには、


「xlColorIndexNone 塗りつぶしを行わない場合に指定します。」
とあります。

「0」ではなくて、「xlColorIndexNone」として下さい。

If Cells(行番号, 9).Interior.ColorIndex = xlColorIndexNone Then
    • good
    • 0
この回答へのお礼

早速プログラムを組んでみました。
上手くいきました!

ありがとうございました。

プログラミングは始めたばかりで分からない事だらけです。
今後も質問させていただくと思いますが
その節は宜しくお願いいたします

ありがとうございました。

お礼日時:2007/08/31 19:55

何もセルのパターン色を設定してないセルのことが考慮されていなくて、見た目で「白色」と考えているのではないですか。


書式ーセルーパターンー色なし
これはセルのパターン色の初期状態です。
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です
    • good
    • 0
この回答へのお礼

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

大変勉強になりました。ありがとうございました

お礼日時:2007/08/31 19:51

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

ということが判ると思います。
    • good
    • 0
この回答へのお礼

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

大変勉強になりました。ありがとうございました

お礼日時:2007/08/31 19:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!