• ベストアンサー

エクセル:罫線の置換

1本ずつマウスで罫線を引いていったシートがあるのですが、 この罫線の色を全てある別の色に変更したいです。 ちょっと量が多いので1本1本マウスを使って変更したい色で上書きしていくのは避けたいのですが、 (升目状に並んでいるわけでもないのでグリッドも使えない) エクセルの機能として罫線の(色お)置換なんてものはありますでしょうか。 というか無いと思うので、 全セルの罫線の状態を取得して色を変更するマクロを組みたいです。 流れとしては、  ・セルの罫線の色を取得する。  ・その罫線の色が青の場合、赤に変更(ColorIndex変えるだけですよね)。  ・これを決まったセル範囲分繰り返す(For文でもなんでも使えばいいかと)。 というのを考えているのですが(考えた内に入らないような)、 ここで最も重要な「セルの罫線の色を取得する」というのは、どのように記述すればよいでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.1

こんにちは。 これでどうでしょうか? ご参考までに。 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

rem_1982
質問者

お礼

回答ありがとうございます。 すごいです! 今まですんごい時間かかっていた(手動)のが10秒で終わりました! 「UsedRange」という範囲指定方法があるのですね。 色んなとこで今までかなり無駄な処理してました。

その他の回答 (1)

回答No.2

簡潔に言うと以下のようになります。 【設定】 ActiveCell.Borders.ColorIndex = (色値設定) 【取得】 (色値取得) = ActiveCell.Borders.ColorIndex

rem_1982
質問者

お礼

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

関連するQ&A

  • エクセルの罫線を変えたい

    こぴぺしてきて、罫線もコピーしてきたときに、罫線だけを青とか赤に変える方法ってないんですか?いちいち手動でセルの書式設定とかで罫線かえるしかないのですか?

  • エクセル。こんな罫線簡単に引けませんか?

    セル番号の5ピッチでセル下線に赤色の罫線を簡単に入れる方法はないでしょうか? 例えばセル番号5、10、15・・~のように5行ごとに下に赤色の罫線をいれたいのです。 今は、複写で書式貼り付けしていますが面倒です。 何かいい方法ありませんか? ver2000。 宜しく願います。

  • Excel2007 検索と置換の疑問

    Excel2007 検索と置換の疑問 Excelシートで青とピンクに塗りつぶされたセルがあります 青の塗りつぶしを赤に変えたいと検索と置換を実行しました 疑問1 青のセルのうち一部しか赤に置換できませんでした 疑問2 29セルが置換されたとのメッセージですが 数えてみると22しか置換されていません N3:AR31にはセル参照式が入っており 条件付き書式で数値のセルはピンクの塗りつぶしを設定しています(数値のないピンクは手で塗りつぶし) 罫線のせいでもなさそうだし訳がわかりません どうぞ何か手がかりでもアドバイスよろしくお願いします

  • 選択したセルに罫線を引くマクロ

    お世話になっております。 業務上必要になり(効率化が図れるので)選択したセルにバツの罫線を引くマクロを作成しています。 まだまだ自分のレベルが低いので、マクロ記録を参考に、下記のようなマクロを作りました。 Sub バツ罫線マクロ()  ActiveCell.Select   With Selection.Borders(xlDiagonalDown)     .LineStyle = xlContinuous     .Weight = xlHairline     .ColorIndex = xlAutomatic   End With   With Selection.Borders(xlDiagonalUp)     .LineStyle = xlContinuous     .Weight = xlHairline     .ColorIndex = xlAutomatic   End With End Sub 試してみると、選択したセルに対してバツの罫線が引かれました。 やった!と思ったのもつかの間、Ctrlキーでセルを複数選択してマクロを実行すると最後にアクティブにしたセルしか罫線が引かれないではありませんか・・・。 ネットなどで調べてみると、Ctrlキーで複数選択してもアクティブセルというのはそのうちの一つだけというような記述がありました・・・。 そして、ここで行き詰ってしまいました。 お伺いしたいのは2つあります。 ・どうすればCtrlキーで選択した全てのセルにこの罫線を引くマクロを適用させる事が出来ますか? ・変数などを用いたもっとレベルの高いコードの書き方だと、どのように記述されますか?後学のためにレベルの高い人の記述方法と比較させてもらって勉強させてもらいたいと思っています。 よろしくお願いします。

  • フォントの色を保持したままセルの一部の置換

    セルの一部を置換し、かつフォントの色を保持するマクロをご存知の方がいましたら教えてください。 例えば、 一つのセルに「123ABC」と入力されていて、「123」は赤、「ABC」は黒とします。ここで「123」を「1234」と置換した場合、「1234ABC」が全て赤となってしまい、困っています。「1234」を赤、「ABC」を黒としたいのです。 膨大な量を置換する必要があるため、できればマクロを使って解決したいと思っています。 どうか宜しくお願いします。

  • Excelマクロで罫線をひきたい。

    Access2000からエクスポートした結果のExcel2000のワークシートに、線をひきたいんです。 一番最初のセルはa1と決まっているけど、一番最後のセルは毎回変わってしまうのですが、 このセルを取得するためにはどんなマクロボタンを作成すればいいでしょうか? ただ本来の希望としては、マクロボタンひとつで、並べ替え>セルの変更>罫線、としたいのですけれど。 「セルの変更」というのは、エクスポートしたデータで「ランク」という項目があり、 これに「特・A・B」という項目があります。 Access上はひとつのフィールドにまとまっているのですが、Excel上では、それぞれ「特・A・B」という列を作成し、データがあったら、「○」を入れるというようにしたいのです。 (列が増えることになります。) また「備考1・備考2」がAccess上にあり、これは別フィールドとなっていますが、 今度はExcel上で「備考」としてひとつの列にしたいのです。 (列の減少) 別シートを作成してもかまいません。 このようなことはできるのでしょうか? せめて罫線だけでもひければ、と思います。 よろしくお願いします。

  • データーに合わせて罫線を引く

    よろしくお願いします。 セル(H6)を起点にデーターのある部分に罫線を引きたいのですが 計算式(関数)が、入っているセルにも罫線が引かれます。 計算式(関数)は入っているが、データーが入っていない場合は罫線を引かない 方法を教えてください。 現況の記述です。 Sub 罫線() With Range("H6").CurrentRegion.Borders .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic With .Item(xlInsideHorizontal) .LineStyle = xlDash .Weight = xlHairline .ColorIndex = xlAutomatic End With With .Item(xlInsideVertical) .LineStyle = xlDash .Weight = xlHairline .ColorIndex = xlAutomatic End With End With End Sub

  • エクセルで罫線の色変更

    エクセル2000で作った罫線入りのデータがあるのですが、罫線全ての色変更をしたいのです。 「セルの書式設定→罫線タブ→色」で変更出来ますが、いちいち選択しなければなりません。 シート全体を選択して上記操作をしても変更されませんでした。 シート内全体(もしくは選択範囲全て)の罫線の色と簡単に色変更をする方法ってあるでしょうか?

  • エクセルのセル枠の色を変更する方法は?

    エクセルの操作で、上手くいかなくて困っています。 エクセルシートのあるセルの枠線(通常は黒色)を青色とか赤色に変更 したいのですが、書式>セル>罫線 色 で変更しても枠線の色が変わ りません。どなたかご存知の方いましたら教えてください。 宜しくお願い致します。

  • セル内の一部の色と文字列の置換

    みなさんこんにちは。 質問ですが、置換したあと、置換した文字のみ青色に変えたいと思っています。 さらにその際に、変換対象外の文字に色の設定がされていた場合には、その色の設定はそのままにしておきたいのです。 たとえば、シート内に ABC123ABCあいう (但し、123だけは、フォントが赤色、他は黒色)というセルがあった場合、 ABC⇒EFG に置換すると、 EFG123EFGあいう (EFGは、青色、123は、フォントが赤色のまま)としたいです。 以上、よろしくお願いします。

専門家に質問してみよう