
Microsoft Office Excel 2003を用いて簡単なデータ管理表を作っています。
その中で特定列の各セルに格納された値が一定の条件を満たした際に
そのセルの設定を変更するマクロを実装したいと考えています。
ちょっと分かりづらいかもしれないので具体例を挙げます。
例えばB列の各セルに数値データが格納されているとします。
その数値データが100以上ならばそのセルの背景色を青に、-1以下ならば背景色を赤に変更する。
といった感じです。
全データ数(行数)は不定で必要があれば増やせるようにしたいです。
1データは複数行にまたがっており、判定する項目(列)はセルの結合を行っています。
また、一定行間隔で項目の見出しを記した行が挿入されています。
そのせいか、自分なりに組んでみたマクロはセルの走査がうまくいかず、オーバーフロウを起こしてしまいました。
結合セルでも問題なくデータ入力されている最後のセルまで順に検索していく方法はありますか?
どなたか御存知の方いらっしゃいましたら、ご教授お願いします。
また、ネットで調べるのにも少し限界があるようなので
逆引き事典的に扱える、良いVBAの書籍がありましたら教えて頂けるとありがたいです。
No.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 自身が教えてくれるようなものだと思います。
分かりました。もうちょっとヘルプと睨めっこしながら色々やってみようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
- Excel(エクセル) 【Excel】指定した文字列に該当する行を重複しないようにリスト 3 2022/03/30 12:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
OfficeExcel2003:マクロを用い...
-
VBAに関する質問
-
EXCELでの変数によるMacro自動...
-
VBA 変数Variantは万能??
-
vbaで指定したセルより下の行を...
-
ExcelVBAでセルの番地を変数と...
-
5桁の数字どうしの要素比較
-
A1から最下行までを選択するVBA
-
Excelマクロ セルを行頭に移動
-
CutCopyMode範囲の取得方法につ...
-
作業ブックを別のブックに移っ...
-
マクロのデータ削除
-
Excel VBAのInpuboxの文字列
-
VBA Rangeの足し算
-
EXCEL2010のマクロで、セル位置...
-
Excelでのセルに挿入するコメン...
-
複数のエクセルファイルとシー...
-
【マクロ】実行時エラー '424':...
-
「段」と「行」の違いがよくわ...
-
EXCEL VBAで教えてください。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
エクセルでセルをクリックする...
-
VBAでの SendKeysの変数指定方法
-
Excel VBA:フォーム←→セルのア...
-
エクセルマクロで「セルのサイ...
-
Excelマクロ セルを行頭に移動
-
マクロのデータ削除
-
セルをクリックしたら色を変え...
-
IF関数で違う値もTRUEになる
-
Excel VBA で色付きのセルの値...
-
excel マクロでの特殊文字入力方法
-
【EXCEL-VBA】特定の値の入った...
-
(エクセルVBA)セルを左クリッ...
-
ロックされていないセル内をクリア
-
ダブルクリックでセルに色をつ...
-
ファイルサーバー上のexcelファ...
-
Excelでプルダウンからフィルタ...
-
VBA Rangeの足し算
-
【VBA】アクティブセルだけ背景...
-
ExcelVBA コンボボックスに入力...
おすすめ情報