- ベストアンサー
OfficeExcel2003:マクロを用いた特定行のセル毎の条件判定
- Microsoft Office Excel 2003を用いて、特定列の各セルに格納された値が条件を満たした場合、セルの設定を変更するマクロを実装したいと考えています。
- データ管理表で、B列のセルに格納された数値データが条件に合致する場合、セルの背景色を変更するマクロの作成方法を知りたいです。
- 結合セルでも問題なくデータ入力されている最後のセルまで順に検索していく方法や、VBAの書籍についての情報を教えていただけると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >自分なりに組んでみたマクロはセルの走査がうまくいかず、オーバーフロウ なぜ、そのオーバーフロー(英語では、フロウと発音しますが)するのか、コードをみないと分かりませんね。 オーソドックスな書き方なら、こんなコードになりますね。 'なるべく標準モジュール '------------------------------------------------ Sub TestMacro1() Dim c As Range Application.ScreenUpdating = False For Each c In Range("A1", Range("A65536").End(xlUp)) '値が数字であることを限定とする If VarType(c.MergeArea.Item(1)) = vbDouble Then If c.MergeArea.Item(1).Value > 99 Then c.MergeArea.Interior.ColorIndex = 5 '青 ElseIf c.MergeArea.Item(1).Value < 0 Then c.MergeArea.Interior.ColorIndex = 3 '赤 Else c.MergeArea.Interior.ColorIndex = xlNone '色戻し End If End If Next c Application.ScreenUpdating = True End Sub >逆引き事典的に扱える、良いVBAの書籍がありましたら教えて頂けるとありがたいです。 事典として扱えるものですと、単に、『Excel VBA逆引き大全集』というような書名になっているものしか思いつきません。ただ、VBAは、VBEditor 自身が教えてくれるようなものだと思います。
お礼
丁寧な回答ありがとうございます。 実行してみたところ、正常に動作しました。 なるほど、MergeAreaプロパティで結合セル範囲を取得して そのセル範囲の最上段のセルをItemプロパティで取得するということですよね。 色々と応用が利きそうなプロパティですね。参考になります。 >ただ、VBAは、VBEditor 自身が教えてくれるようなものだと思います。 分かりました。もうちょっとヘルプと睨めっこしながら色々やってみようと思います。