- ベストアンサー
Excel2007VBAの質問です
Excel2007のマクロを利用してセルの色を変更しようと思います Range("茶色範囲").Interior.ColorIndex = 9 としてA2セルからA10セルまた、A2セルからG2セルまでを一度に変更したい場合 茶色範囲というのを、どこかに 指定する必要があるのですが、 これは一般的にどこに指定すればいいでしょうか? 富士通の緑の本がわかりやすいので勉強しているのですが、 その範囲指定がどこで行っているのかがわからず質問しました。 ご存知の方いらっしゃいましたら、教えてください。 よろしくお願いします
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! >A2セルからA10セルまた、A2セルからG2セルまでを一度に変更したい場合・・・ 名前定義しての方法が出ていますので、 A2~A10 を 範囲1 と名前定義 A2~G2 を 範囲2 と名前定義した場合は Sub 名前定義() Range("範囲1").Interior.ColorIndex = 9 '★名前定義されている範囲をダブルクォーテーションでくくる。 Range("範囲2").Interior.ColorIndex = 9 End Sub とか Sub Sample1() Union(Range("範囲1"), Range("範囲2")).Interior.ColorIndex = 9 End Sub といった方法で「範囲1」「範囲2」の範囲に色が付きます。 他の方法としては、コードで直接範囲指定する方法もあります。 Sub コードで範囲指定() Dim myRng1 As Range, myRng2 As Range '★範囲の変数を宣言 Set myRng1 = Range("A2:A10") Set myRng2 = Range("A2:G2") myRng1.Interior.ColorIndex = 6 '★←黄色 myRng2.Interior.ColorIndex = 6 End Sub または Sub Sample2() Dim myRng1 As Range, myRng2 As Range Set myRng1 = Range("A2:A10") Set myRng2 = Range("A2:G2") Union(myRng1, myRng2).Interior.ColorIndex = 6 End Sub といった具合です。 もっと簡単にやろうとすれば Sub Sample3() Range("A2:A10,B2:G2").Interior.ColorIndex = 3 '★赤にしています End Sub だけでも大丈夫です。 ※ 名前定義の場合、列・行を削除した場合その数だけ範囲が少なくなります。 コードで範囲指定している場合は列・行を削除や挿入してもその範囲のままです。m(_ _)m
その他の回答 (3)
- mar00
- ベストアンサー率36% (158/430)
名前の定義で付けた名前をマクロでも使うことができます。
お礼
回答いただきどうもありがとうございます。 名前の定義でうまくいきました。 とても参考になりました
- mar00
- ベストアンサー率36% (158/430)
やり方は色々あると思いますが 選択している範囲の色を変更したいのなら Selection.Interior.ColorIndex = 9 A2からA10の場合 Range("A2:A10").Interior.ColorIndex = 9 A2からG2の場合 Range("A2:G2").Interior.ColorIndex = 9 名前を定義した場合(茶色範囲) Range("茶色範囲").Interior.ColorIndex = 9 など。
お礼
回答どうもありがとうございます 回答いただいた内容にあります「名前を定義した」 というのが近いと思っているのですが、 もうすでに練習問題としてあるマクロを見ても書いて無いようなのですが、 マクロ(module1)以外に範囲指定する方法があるのでしょうか?
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
Excelのマクロは組んだことがない門外漢ですが・・・。 Sub Macro1() Range("B5:H5").Interior.ColorIndex = 9 End Sub でOKなようですよ。 【回答に至った経緯】 マクロを記録させて、それを編集にて参照し、もって書き方を知りました。
お礼
回答いただきどうもありがとうございました。 また調べてもらってありがとうございます。 参考になりました。
お礼
回答いただきどうもありがとうございます。 名前の定義でうまくいきました。 教えていただいたプログラムの書き方も理解できまして、勉強になりました。 とても参考になりました