エクセル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
No.1ベストアンサー
- 回答日時:
ヘルプのColorIndex プロパティには、
「xlColorIndexNone 塗りつぶしを行わない場合に指定します。」
とあります。
「0」ではなくて、「xlColorIndexNone」として下さい。
If Cells(行番号, 9).Interior.ColorIndex = xlColorIndexNone Then
早速プログラムを組んでみました。
上手くいきました!
ありがとうございました。
プログラミングは始めたばかりで分からない事だらけです。
今後も質問させていただくと思いますが
その節は宜しくお願いいたします
ありがとうございました。
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です
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
ということが判ると思います。
回答ありがとうございます。
背景色なし(透明色) と 白色の違いが理解できました。
大変勉強になりました。ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelのプルダウンで2列分の情...
-
特定のセルが空白だったら、そ...
-
【Excel】指定したセルの名前で...
-
【Excel VBA】指定行以降をクリ...
-
特定の文字を条件に行挿入とそ...
-
VBAでセルをクリックする回...
-
エクセルVBAでコピーして順...
-
【VBA】指定したセルと同じ値で...
-
ExcelのVBAで数字と文字列をマ...
-
【VBA】シート上の複数のチェッ...
-
DataGridViewの各セル幅を自由...
-
Excel VBA、 別ブックの最終行...
-
Excel vbaで特定の文字以外が入...
-
セル色なしの行一括削除
-
Excelで指定した日付から過去の...
-
連続する複数のセル値がすべて0...
-
セルの結果でマクロ実行
-
EXCELのVBA-フィルタ抽出後の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
連続する複数のセル値がすべて0...
-
Excel VBA、 別ブックの最終行...
-
VBAを使用した時間管理
-
エクセルVBAでコピーして順...
-
セル色なしの行一括削除
-
【EXCEL VBA】Range("A:A").Fi...
-
VBA コピーして次の値まで貼り...
-
VBA初心者です。結合セルを保持...
おすすめ情報