- ベストアンサー
エクセル:罫線の置換
1本ずつマウスで罫線を引いていったシートがあるのですが、 この罫線の色を全てある別の色に変更したいです。 ちょっと量が多いので1本1本マウスを使って変更したい色で上書きしていくのは避けたいのですが、 (升目状に並んでいるわけでもないのでグリッドも使えない) エクセルの機能として罫線の(色お)置換なんてものはありますでしょうか。 というか無いと思うので、 全セルの罫線の状態を取得して色を変更するマクロを組みたいです。 流れとしては、 ・セルの罫線の色を取得する。 ・その罫線の色が青の場合、赤に変更(ColorIndex変えるだけですよね)。 ・これを決まったセル範囲分繰り返す(For文でもなんでも使えばいいかと)。 というのを考えているのですが(考えた内に入らないような)、 ここで最も重要な「セルの罫線の色を取得する」というのは、どのように記述すればよいでしょうか。
- みんなの回答 (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
その他の回答 (1)
- SAKENOSAKA
- ベストアンサー率32% (78/240)
簡潔に言うと以下のようになります。 【設定】 ActiveCell.Borders.ColorIndex = (色値設定) 【取得】 (色値取得) = ActiveCell.Borders.ColorIndex
お礼
回答ありがとうございます。 言われてみれば、 Range("").Borders(xlEdgeBottom).ColorIndex = 5 などという設定は散々使ってました。 取得は逆にするだけでよかったんですね。 今選択してるセルならActiveCell.とつければよい、と。 ありがとうございます。
お礼
回答ありがとうございます。 すごいです! 今まですんごい時間かかっていた(手動)のが10秒で終わりました! 「UsedRange」という範囲指定方法があるのですね。 色んなとこで今までかなり無駄な処理してました。