• ベストアンサー

Excelで自動的に罫線を引く

任意の4つのセルを選択状態にして実行すると、左上と右下のセルが罫線で囲まれるようにしたいのですが。 □  □ どのようなマクロになるでしょうか? おわかりの方がいましたら教えて下さい。 尚、4つのセルは常に一つの四角形を形成し、かつ2つの列を使用します。

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

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.3

こんばんは。 下記コードでは選択範囲により罫線が引かれるセルは以下のようになります。 ひとつ選択(B5)なら、B5 複数行1列選択(B5:B9)なら、B5とB9 1行複数列選択(B5:F5)なら、B5とF5 複数行複数列選択(B5:C6)なら、B5とC6 ---------------------------------------------- Sub Test()  With Selection    .Cells(1).Borders.LineStyle = xlContinuous    .Cells(.Cells.Count).Borders.LineStyle = xlContinuous  End With End Sub ----------------------------------------------- それからちょと一言。 こういった場合には、No2さんの回答にあるActiveCellを使うと拙い場合があります。 それは範囲選択の仕方によりActiveCellが必ず左上にくるとは限らないからです。 以上です。

naruue
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

質問の意味が、例えばa1:b2を選択したときに、a1とb2の二つのセルに枠線を描画するということであれば Sub Wakusen() Dim RnA As Range Set RnA = ActiveCell RnA.Borders(xlEdgeLeft).Weight = xlThin RnA.Borders(xlEdgeTop).Weight = xlThin RnA.Borders(xlEdgeRight).Weight = xlThin RnA.Borders(xlEdgeBottom).Weight = xlThin RnA.Offset(rowOffset:=1, columnOffset:=1).Borders(xlEdgeLeft).Weight = xlThin RnA.Offset(rowOffset:=1, columnOffset:=1).Borders(xlEdgeTop).Weight = xlThin RnA.Offset(rowOffset:=1, columnOffset:=1).Borders(xlEdgeRight).Weight = xlThin RnA.Offset(rowOffset:=1, columnOffset:=1).Borders(xlEdgeBottom).Weight = xlThin End Sub ではどうですか。

naruue
質問者

お礼

ありがとうございました。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

セルを選択した状態から、その動作をマクロ記録して出来ませんか?

関連するQ&A