エクセルである条件でセルの色を変えたいのですがうまくいきません。
一つのセルを選択した場合にはうまくいくのですが、複数セルを選択するとエラー(1004)になります。
分かりずらい質問で申し訳ありませんが、アドバイスいただけるとありがたいです。
下記の構文の時はエラーにならないです。
Worksheets(KK).Cells(m, t).Interior.Color = RGB(255, 255, 255)
Worksheets(KK).Cells(m, t).Interior.Color = RGB(191, 191, 191)
複数セルを選択するとエラーになります。
下記のプログラムがエラーになるときです。
For i = 1 To 31
If InStr(Worksheets(KK).Cells(4, t).Value, Worksheets("設定").Cells(s, "G").Value) > 0 Then
Worksheets(KK).Range(Cells(m, t), Cells(m, k)).Interior.Color = RGB(255, 255, 255)
Else
Worksheets(KK).Range(Cells(m, t), Cells(m, k)).Interior.Color = RGB(191, 191, 191)
End If
s=s+1
m = m + 1
Next i
No.1ベストアンサー
- 回答日時:
>Worksheets(KK).Range(Cells(m, t), Cells(m, k)).Interior.Color
この時のRangeとCellsで示すセルを持つシートが違う場合に起きますね。
具体的にはWorksheets(KK)がループ作業を行っている際にアクティブな状態にあるかどうかです。
アクティブでなければCellsで示すセルはアクティブシートのセルを示しますから『どっちのシートの事?』とExcelはエラーになるのです。
なので纏めるならWith~End Withで
With Worksheets(KK)
For i = 1 To 31
If InStr(.Cells(4, t).Value, Worksheets("設定").Cells(s, "G").Value) > 0 Then
.Range(.Cells(m, t), .Cells(m, k)).Interior.Color = RGB(255, 255, 255)
Else
.Range(.Cells(m, t), .Cells(m, k)).Interior.Color = RGB(191, 191, 191)
End If
s=s+1
m = m + 1
Next i
End With
とピリオドを頭に付けるとWithで示す物に繋がる事となり纏めやすくなり、且つ指定が明確になります。
返答ありがとうございます。
なるほど・・・
最初に作業するシートを明確に指定してループを行えばいいんですね。
自分で書いた内容でうまくいったときがあったのですが、たまたまそのシートが選択されていただけだったのですね。
構文の先頭にシートを書いたので、それでいいと思っていました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) R列の1111/11/11以外、且つQ列の×の条件で該当行のAからAE列までオレンジに塗りつぶす 2 2022/07/02 10:18
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) 送付元、送付先が同じ大きさの複合セルのコピーがVBAで、できません。 1 2023/06/01 20:51
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) ※初心者です マクロVBAについて 3 2022/11/05 12:53
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
エクセルのマクロで複数のセルに色付する方法
Excel(エクセル)
-
VBAで特定の文字を探して隣のセルに色を付けたい
Excel(エクセル)
-
-
4
cellsで特定の離れた範囲を選択する方法は?
Visual Basic(VBA)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
EXCEL VBA 1つのセル内の文字に複数色の色指定について
Visual Basic(VBA)
-
7
別のシートから値を取得するとき
Visual Basic(VBA)
-
8
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
9
セル色を、ある条件で自動的に色分けして塗りつぶしさせたい
PowerPoint(パワーポイント)
-
10
VBA 数式を残して値をクリアについて
Excel(エクセル)
-
11
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
12
VBマクロ 色の付いたセルを含む行をコピーしたい。
Visual Basic(VBA)
-
13
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
14
EXCEL VBA で複数の特定文字に色をつけたい
その他(Microsoft Office)
-
15
「選択範囲を解除してアクティブセルを選択」をマクロで行うにはどうすればよいでしょうか
Excel(エクセル)
-
16
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
17
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
18
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
19
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
20
VBAでのリスト不一致抽出について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのチェックボックスの使い...
-
エクセルで指定したセルのどれ...
-
対象セル内(複数)が埋まった...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
エクセルのセルの枠を超えて文...
-
Excelで数式内の文字色を一部だ...
-
(Excel)数字記入セルの数値の後...
-
エクセル オートフィルタで絞...
-
複数のセルのいずれかに数字が...
-
EXCEL VBA セルに既に入...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
セルをクリック⇒そのセルに入力...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excelで住所を2つ(町名迄と番...
-
excelの特定のセルの隣のセル指...
-
枠に収まらない文字を非表示に...
-
エクセル “13ヶ月”を“1年1ヶ月...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
セルをクリック⇒そのセルに入力...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
excelのCOUNTIF関数で、『範囲=...
-
EXCEL VBA セルに既に入...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excel2003 の『コメント』の編...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
複数のセルのいずれかに数字が...
-
枠に収まらない文字を非表示に...
-
excelの特定のセルの隣のセル指...
おすすめ情報