質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

230閲覧

VBAでやりたいことがあります。

zuzu1984

総合スコア31

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2018/06/27 11:14

VBAで以下のことがやりたいです。

添付画像のようなシート"AAA"があるとします。

  1. 範囲はI8:T17
  2. 上記の範囲の中で、セルに色がついている場合は無視
  3. セルに色がついておらず、尚且つ文字(データ)が入っているセルを赤くする
  4. ただし、3)の条件でもセル[00][56]と並んでいるデータに関してはセルを赤くしない

  テーブル内には色のついていないセルで[00]単体のものもあるが、単体の場合はセルを赤くする
5) 1)の範囲に1つでも赤いセルがあればU5に×、赤いセルがない場合は〇と記載する

VBAの勉強を少しづつ進めてはいるのですが、なかなか習得できず、困っています。
実際は添付画像のようなテーブルが下へ数個連なっている状態です。
何卒ご教授ください。
宜しくお願いします。

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

例えばこういう感じとか。。。
読んで意味解りますかねー?

VBA

1Sub test() 2 Dim rngFind As Range 3 Dim c As Range 4 Dim rngTarget As Range 5 Dim flg As Boolean 6 7 8 With Range("B7").CurrentRegion 9 Set rngFind = Intersect(.Cells, .Offset(1), .Offset(, 7)) 10 End With 11 12 For Each c In rngFind 13 flg = False 14 Select Case True 15 Case Not c.Interior.ColorIndex = xlNone 16 Case c.Value = "00" And c.Offset(, 1).Value = "56" 17 Case c.Value = "56" And c.Offset(, -1).Value = "00" 18 Case Len(c.Value) = 0 19 Case Else: flg = True 20 End Select 21 If flg Then 22 If rngTarget Is Nothing Then 23 Set rngTarget = c 24 Else 25 Set rngTarget = Union(rngTarget, c) 26 End If 27 End If 28 Next 29 30 If Not rngTarget Is Nothing Then 31 rngTarget.Interior.Color = vbRed 32 End If 33End Sub

投稿2018/06/27 13:51

mattuwan

総合スコア2136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ExcelVBAer

2018/06/28 00:20

後学の為に、空判定を「Cstr(c.Value)=""」や「IsEmpty(c)」ではなく、「Len(c.Value) = 0」とする理由を教えて頂いてもよいでしょうか?
mattuwan

2018/06/28 03:37

単なる癖です。特に意味はありません。まぁ、対象が一応文字列なんだろうということで、そういう書き方をしたかなぁ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問