電子書籍の厳選無料作品が豊富!

表のA1:E4が表示される場合はA6:E9を表示しない、逆にA6:E9を表示する場合はA1:E4を表示しない(文字を含めて)。表示しない範囲の罫線の色とフォントの色を白に指定します。
現在、マクロの記録で記録して使用していますが、かなりの長文になってしまいます。
簡単な構文で処理できないでしょうか?
よろしくお願いいたします。

「罫線とフォントの色付けを一括して切り替え」の質問画像

質問者からの補足コメント

  • tom04 様
    回答ありがとうございます。
    質問の仕方が不適切でした。
    A1:E4が表示されているときは、A6:E9は表示されていない(罫線、フォントは存在するが白のため見えなくなっている)
    A1:E4を見えなくして、A6:E9を見えるようにするマクロと逆にA6:E9を見えなくしてA1:E4が見えるようにする二つのマクロがほしいのです。
    説明が下手で分かりにくいかもしれませんが、よろしくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/02/05 17:24

A 回答 (2件)

No.1です。



>A6:E9を見えなくしてA1:E4が見えるようにする二つのマクロがほしいのです。

余計なお世話と焼いてしまったようですね?
前回は一つのマクロにしていました。
それぞれを別のマクロにしたいのですね?

Dim c As Range, r As Range 'この行から//
Dim myRng1 As Range, myRng2 As Range
Sub A1からE4()
Set myRng1 = Range("A1:E4")
Set myRng2 = Range("A6:E9")
myRng1.Font.ColorIndex = xlAutomatic
myRng2.Font.ColorIndex = 2
For Each c In myRng1
c.Borders.ColorIndex = xlAutomatic
Next c
For Each r In myRng2
r.Borders.ColorIndex = 2
Next r
End Sub
Sub A6からE9()
Set myRng1 = Range("A1:E4")
Set myRng2 = Range("A6:E9")
myRng1.Font.ColorIndex = 2
myRng2.Font.ColorIndex = xlAutomatic
For Each c In myRng1
c.Borders.ColorIndex = 2
Next c
For Each r In myRng2
r.Borders.ColorIndex = xlAutomatic
Next r
End Sub 'この行まで//

今度はどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

tom04 様
マクロの記録で145行になったVBAが28行で収まりました。
画面表示の切り替えでほかの場面でも活用できそうです。
本当にありがとうございました。

お礼日時:2017/02/06 11:07

こんにちは!



一例です。

Sub Sample1()
Dim c As Range, r As Range, myFlg As Boolean
Dim myRng1 As Range, myRng2 As Range
Set myRng1 = Range("A1:E4")
Set myRng2 = Range("A6:E9")
If Range("A1").Font.ColorIndex = xlAutomatic Then
myFlg = True
End If
If myFlg = True Then
myRng1.Font.ColorIndex = 2
myRng2.Font.ColorIndex = xlAutomatic
For Each c In myRng1
c.Borders.ColorIndex = 2
Next c
For Each r In myRng2
r.Borders.ColorIndex = xlAutomatic
Next r
Else
myRng1.Font.ColorIndex = xlAutomatic
myRng2.Font.ColorIndex = 2
For Each c In myRng1
c.Borders.ColorIndex = xlAutomatic
Next c
For Each r In myRng2
r.Borders.ColorIndex = 2
Next r
End If
End Sub

こんな感じではどうでしょうか?m(_ _)m
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!