プロが教える店舗&オフィスのセキュリティ対策術

任意の4つのセルを選択状態にして実行すると、左上と右下のセルが罫線で囲まれるようにしたいのですが。


 □

どのようなマクロになるでしょうか? おわかりの方がいましたら教えて下さい。
尚、4つのセルは常に一つの四角形を形成し、かつ2つの列を使用します。

A 回答 (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が必ず左上にくるとは限らないからです。

以上です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/04/23 04:28

質問の意味が、例えば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

ではどうですか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/04/23 04:29

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

    • good
    • 0

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