
No.4ベストアンサー
- 回答日時:
#3です
コードは良く見えませんが、上からループ条件式が1つだけのような感じでしょうか
上からループする場合(条件をべたに考えると)
書き方は色々ありますが
初めに色を付ける対象の範囲の色をクリアーする
(色を付けるのだから下準備が必要です)
範囲.interior.Colorindex= xlNone (カラーインデックスの場合)
範囲はRange(cells(2, 列), cells(rows.count, 列).end(xlup))などで
対象の範囲をループする(ループカウント変数 i の場合 )
for i= 2 to cells(rows.count, 列).end(xlup).row
セルの値が数字でない場合を想定して
if isNumeric(cells(i,列).value) then 数値になる値のみに対して
if cells(i,列).value=cells(i+1,列).value-1 then 連番ならば色を付ける
*この時に組となるセル両方に色を付ける(ポイント)
cells(i,列).interior.Colorindex =3
cells(i+1,列).interior.Colorindex =3
end if
end if
next 繰り返し
実行を1つ1つ追うと少し問題があるようです。
*ステップ実行などで自身でデバッグすると判ります。
また、1色の場合は、#3でも上げましたが12.13.14.15.17.18.19 の場合、すべてに色が付くと思います。
cells(i,列).interior.Colorindex =3 を考える
cells(i+1,列).interior.Colorindex =3で色を付けているので
繰り返し処理の中で重複して実行されてしまいます。
連番グループの初めだけ実行するようにする
範囲の色をクリアーしているので、色が付いていなかったらと条件設定し
先頭(連番の始まりを示す為、色を変える)
If cells(i,列).interior.Colorindex = xlNone then
cells(i,列).interior.Colorindex = 17
End If
cells(i+1,列).interior.Colorindex =3を考える
ループの最後に範囲の外に色が付く可能性があります。
ループの最後のひとつ前まで実行する条件を付ける
先頭に属する連番を示す為、先頭色と色を変える
If i < cells(rows.count, 列).end(xlup).row then
cells(i,列).interior.Colorindex = 24
End If
条件など参考になりますでしょうか?
No.3
- 回答日時:
こんにちは
申し訳ないのですが、回答ではありません
ロジックを考えてみましたが、目的を達成できない(判り難い)処理になると思います。(コードが見えないのと、目的を明確に理解していませんが)
一色で色を付ける場合、続いている(連番であるセル)を対象にすると
12.13.14.15.17.18.19 グループは2つですが、すべてに色が付く事になりますね。つまりどこが区切りなのか分かりません。
色を変えるのならわかりますがね。(一色とは書いていませんが)
グループごとに色を変えるか、逆に抜けている番号を書き出すとかにした方が良いのではないかと思いました。
要 考察と思いますよ
ちなみに、コード添削やチェックの場合は図ではなく文字列で投稿するようにしましょう。(出来るだけ環境やバージョンもね)
再現の為のデバッグや回答の為の検証を図を見ながらコードをローカルに打つ人はなかなかいないと思います(面倒でしょう?スマホなら特にね)
ざっくりで回答をしてやり取りを何度かして、、これも面倒ですしね
まぁ、やり取りのタイミングが合えば良いでしょうけれど、なかなかですよね。
この回答へのお礼
お礼日時:2022/02/09 18:50
アドバイスありがとうございます。
たしかに区切りをつけた方がいい場合もあると思うので
グループごとに色を塗るようにしたいと思います、
No.1
- 回答日時:
おはようございます。
すみませんが、コードが見えないのと、下記の理由もよく分かりません。
>例) 12.13.14.15.17.18.19 の場合だと12-15、18,19に色を塗りたいです。
→17もでしょうか? 記載で抜けただけでしょうか?
あと、色を塗るのは、F列になるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のExcelファイルをマージす...
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
エクセルの改行について
-
【マクロ】並び替えの範囲が、...
-
【ExcelVBA】値を変更しながら...
-
Vba FileSystemObject オブジェ...
-
VBA ユーザーフォーム ボタンク...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
Vba セルの4辺について罫線が有...
-
[Excel VBA]特定の条件で文字を...
-
エクセルVBAのブックを開く方法...
-
Excel VBA 選択範囲の罫線色の...
-
vbsでのwebフォームへの入力制限?
-
【マクロ】変数を使った、文字...
-
改行文字「vbCrLf」とは
-
ダブルクリックで貼り付けた画...
-
VBAの「To」という語句について
-
算術演算子「¥」の意味について
-
Excel マクロについて詳しい方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java、配列の問題を教えて欲し...
-
splitを使ってスペース位置で文...
-
VBAについて質問。別シートに転...
-
上書き保存されない
-
VBAで連番に色を付けたい
-
VBA SubTotalで集計を出そうと...
-
VBAでIEを最小化したい
-
ImageIOクラスでの画像入出力時...
-
Caps Lockキーの解除
-
リース初心者です 利子率の計...
-
VBA 条件が一致した場合の...
-
プルダウンで選択すると隣のセ...
-
Excelでカーソルが逆に動く
-
Excel2010の並べ替えで行の高さ...
-
エクセルで作った書類に、パン...
-
エクセルで複数の勤務時間ごと...
-
60進法で複数セルの足し算、引...
-
エクセル関数で {=TABLE(,セル...
-
エクセルシートを重ねることは...
-
WORDで先頭ページを追加するには?
おすすめ情報
はい。
ロットの抽出に関しては完了しています。