重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

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

1本ずつマウスで罫線を引いていったシートがあるのですが、
この罫線の色を全てある別の色に変更したいです。
ちょっと量が多いので1本1本マウスを使って変更したい色で上書きしていくのは避けたいのですが、
(升目状に並んでいるわけでもないのでグリッドも使えない)
エクセルの機能として罫線の(色お)置換なんてものはありますでしょうか。

というか無いと思うので、
全セルの罫線の状態を取得して色を変更するマクロを組みたいです。
流れとしては、
 ・セルの罫線の色を取得する。
 ・その罫線の色が青の場合、赤に変更(ColorIndex変えるだけですよね)。
 ・これを決まったセル範囲分繰り返す(For文でもなんでも使えばいいかと)。
というのを考えているのですが(考えた内に入らないような)、
ここで最も重要な「セルの罫線の色を取得する」というのは、どのように記述すればよいでしょうか。

A 回答 (2件)

こんにちは。



これでどうでしょうか?

ご参考までに。

Sub test()
 Dim X As Range

 For Each X In ActiveSheet.UsedRange
  With X
   If .Borders(xlEdgeRight).ColorIndex = 5 Then .Borders(xlEdgeRight).ColorIndex = 3
   If .Borders(xlEdgeLeft).ColorIndex = 5 Then .Borders(xlEdgeLeft).ColorIndex = 3
   If .Borders(xlEdgeTop).ColorIndex = 5 Then .Borders(xlEdgeTop).ColorIndex = 3
   If .Borders(xlEdgeBottom).ColorIndex = 5 Then .Borders(xlEdgeBottom).ColorIndex = 3
  End With
 Next
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

すごいです!
今まですんごい時間かかっていた(手動)のが10秒で終わりました!

「UsedRange」という範囲指定方法があるのですね。
色んなとこで今までかなり無駄な処理してました。

お礼日時:2007/07/30 20:02

簡潔に言うと以下のようになります。



【設定】
ActiveCell.Borders.ColorIndex = (色値設定)

【取得】
(色値取得) = ActiveCell.Borders.ColorIndex
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

言われてみれば、
Range("").Borders(xlEdgeBottom).ColorIndex = 5
などという設定は散々使ってました。
取得は逆にするだけでよかったんですね。
今選択してるセルならActiveCell.とつければよい、と。

ありがとうございます。

お礼日時:2007/07/30 20:06

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