• ベストアンサー

エクセルで自動的にセルの外枠を囲むには

あるシートの中で、複数のセルを選択状態にします。 選択状態になっているセルは、文字が入力されているものとされていないものがあります。 文字が入力されているセルのみ、セルの外枠を罫線で囲むようにしたいのですが。 一括して処理したいのですが、やり方をおわかりになる方がいましたら教えて下さい。

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

  • ベストアンサー
noname#123709
noname#123709
回答No.1

こんな感じでしょうか? 範囲を選択してから実行すればOKです。 因みに空白以外の場合に罫線が引かれます。 文字列のみと言うのであれば、下記の「If i.Value <> "" Then」の部分を 「If VarType(i.Value) = vbString Then」に変えればいいです。 Sub test() Dim MyRag As Range, i As Range Set MyRag = Selection For Each i In MyRag If i.Value <> "" Then i.Borders(xlEdgeLeft).LineStyle = xlContinuous i.Borders(xlEdgeTop).LineStyle = xlContinuous i.Borders(xlEdgeBottom).LineStyle = xlContinuous i.Borders(xlEdgeRight).LineStyle = xlContinuous End If Next End Sub

naruue
質問者

お礼

ご回答ありがとうございました。 うまくいきました。

その他の回答 (5)

  • 134
  • ベストアンサー率27% (162/600)
回答No.6

もしかして…ですけど、条件付き書式でも、罫線の有無を選択できるので、対応が可能かもしれない… なんて、思ったりしました。 相対&絶対参照とかの指定次第ですけど

naruue
質問者

お礼

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

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.5

こんな方法もあります。 複数のセルを選択状態にします。 「編集」-「ジャンプ」で「セル選択」ボタンを押し、 [定数]を選びます。[文字]以外のチェックをはずしOKボタンを押します。 文字の入ったセルのみ選択されます。今状態で罫線の設定をします。

naruue
質問者

お礼

ご回答ありがとうございました。 うまくいきました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 >複数のセルを選択状態にします。 という条件になると、どうしても、マクロになってしまいますね。 '場所は、一般モジュールならどこでも可 Sub CirclingValuedCells()   Dim c As Range   Dim i As Variant   Dim j As Variant   Dim r As Range   Set r = Selection   If TypeName(r) <> "Range" Then Exit Sub   Application.ScreenUpdating = False   For i = 5 To 12    r.Borders(i).LineStyle = xlNone   Next i   For Each c In r    If Not IsEmpty(c.Value) Then      For j = 7 To 10       With c.Borders(j)         .LineStyle = 1         .Weight = 2 ' 線の太さ 2 以上         .ColorIndex = 1 '色 black       End With      Next j    End If   Next c   Application.ScreenUpdating = True   Set r = Nothing End Sub なお、この種のマクロは、Weight と ColorIndex は、省略すると他人の環境ではうまくいかないことがありますから、省略することは出来ません。

naruue
質問者

お礼

ご回答ありがとうございました。 うまくいきました。

  • chiwa-CF
  • ベストアンサー率51% (36/70)
回答No.3

条件付き書式を使う方法もあります。 (1)複数のセル(今回は例としてA1~C4とする)を選択状態にする。 (2)メニューバー「書式(O)-条件付き書式(D)」をクリック (3)左側のプルダウンメニューから「数式が」を選択 (4)右側のテキストボックスに「=NOT(ISBLANK(A1)」と記述する(複数選択したうちの一番左上のセルを(A1の代わりに記述する))。 (5)「書式(F)」ボタンをクリック (6)「罫線」タブをクリックし、「外枠」をクリックし、OKボタンをクリック (7)もう一度OKボタンをクリック これでもできます。 ただ、これですと(1)で選択状態にしたセルに文字を書き込むと罫線が表示され、 消すと罫線が消えるようになります。 ですので、要望のものとは違うかもしれません。

naruue
質問者

お礼

ご回答ありがとうございました。 うまくいきました。

  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

以下のマクロを実行すれば出来ると思います Sub Macro1() Selection.SpecialCells(xlCellTypeConstants, 3).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With End Sub

naruue
質問者

お礼

ご回答ありがとうございました。 うまくいきました。