• ベストアンサー

EXCELのセルの罫線を自動で引く

EXCELであるセルに数字を入力するとその数の個数だけ自動で罫線(太線でセルを囲む)を引くようにすることはできますでしょうか? 例)3と入力する。 口口口 という感じに。

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

  • ベストアンサー
  • stones
  • ベストアンサー率40% (88/218)
回答No.9

#3です。 セルA1に数字が入り、その下A2から条件付き書式にするのであれば、 A2に =A$1>=ROW()-1 と入力し、A3からした方向に向かってセルをコピーすればOKです。 >=$A1>=ROW()-1でいいのでしょうか? $A1だと参照セルがずれてしまいますのでA$1にする必要があります。

kevinsan
質問者

お礼

うまくいきました。たいへん便利ですね。ありがとうございます。

その他の回答 (8)

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.8

#7です。 回答の途中で送信してしまいました。 これが終わったら、 VBEを閉じて、Excelの画面に戻ります。 A1セルに、何か数字を入力してみてください。 B1から右のセルに、太線が引かれると思います。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.7

kevinsanさん こんばんは。 マクロを使うことでクリアできます。 わからないという方でもわかるように書いてみましたので、 説明の通りにやってみてください。 また、参考URLも参照してみてください。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=572180 Excelを新規作成で開いた状態にしてください。 開いているブックはすべて閉じておいてください。 Excelの画面で、Alt + F11キーを押してください。 「Microsoft Visual Basic」 という画面が立ち上がります。 (以下、この画面を「VBE」と略します) VBE画面左側に、「プロジェクト - VBAProject」というツリー状の画面があると思います。 この中に、[Sheet1(Sheet1)]という項目がありますので、 これを右クリックして、「コードの表示」を選択してください。 画面右半分に、白い画面が現れると思います。 ここに、以下の「ここから」「ここまで」の間のコードをコピーしてみてください。 '=========ここから========= Private Sub Worksheet_Change(ByVal Target As Range) Dim varValue As Variant 'セルA1の値の取得 If Target.Address <> "$A$1" Then Exit Sub 'A1以外のイベントは無視 varValue = Range("A1").Value Cells.Borders.LineStyle = xlLineStyleNone '罫線クリア '数値変換 If IsNumeric(varValue) = False Then Exit Sub '数値以外の時は処理を抜ける varValue = Int(CLng(varValue)) '強制的に整数に変換しています。 'エラーチェック If varValue > 255 Then MsgBox "数値が大きすぎます。", vbCritical Exit Sub ElseIf varValue = 0 Then Exit Sub ElseIf varValue < 0 Then MsgBox "数値が小さすぎます。", vbCritical Exit Sub End If '罫線処理 With Range(Cells(1, 2), Cells(1, varValue + 1)).Borders .LineStyle = xlContinuous .Weight = xlMedium End With End Sub '=========ここまで=========

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.6

#4のご回答と類似で (1)B1:K30とかを範囲指定する。    10X30のセルを対象にすることになります。 (2)書式-条件付き書式の設定-数式が-で数式を 「=$A1>COLUMN(B1)-2」とし、書式-罫線-外枠-OK とする。 (3)これで一遍に10X30のセルに書式を設定できる。A列に数字を入れると、その数だけのセルに外枠罫線が引かれる。

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

VBAで ALTを押しつつF11を押す。 VBE画面が出て、左のVBAProjectのSheet1をダブルクリック。 GeneralのWorksheet、DeclarationはChangeをクリックし Private Sub Worksheet_Change(ByVal Target As Range) End Sub がでるので、下記のIfからEndIfまでをコピーし 貼りつける。 Sheet1のA列に数字を入力すると、数だけの セルの回りに罫線を引きます。 訂正・変更には対応していません。 線種はMediumですが結構太く見えます。 xlThickもあります。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then For i = 2 To Target + 1 Cells(Target.Row, i).Borders.LineStyle = xlContinuous Cells(Target.Row, i).Borders.Weight = xlMedium Next i End If End Sub

  • gura_
  • ベストアンサー率44% (749/1683)
回答No.4

 例えば、A1に数値を入れ、B1からK1を枠が込みの対象として、B1に条件付書式設定をすれば、罫線は掛けます。(ただし線の種類は指定できますが、太さは指定出来ません)  手順は、B1の「書式」→「条件付き書式の設定」で「数式が」「=$A1>COLUMN(B1)-2」のとき「書式」「罫線」「外枠」「OK」とした後、  B1をK1までコピーします。  A1に入力した数だけ(<10)枠が表示されます。  同じく、B1をB3からK3までコピーすると、A3の数に対応します。

  • stones
  • ベストアンサー率40% (88/218)
回答No.3

セルA1に数字を入れてセルB1で書式(O)-条件付書式(D)で、数式がを選択。 数式のところに =$A1>=COLUMN()-1 と入力し、書式ボタンを押し、罫線タブをクリック後罫線を選ぶ。 (太線はないようです。。。) そして、B1をコピーしてB2~右横に向かってセルをコピー。 こうすれば、A1に入れた数字分セルに罫線がひかれます。

kevinsan
質問者

補足

ありがとうございます。成功しました。さらに行方向に罫線を引くには =$A1>=ROW()-1でいいのでしょうか? ちょっとやってみましたがうまくいきませんでした。

  • coco1
  • ベストアンサー率25% (323/1260)
回答No.2

引きたい形状にもよりますが、条件付き書式を使えばいいでしょう。 ただし、条件付き書式では太線は使えませんので、あらかじめ太線を引いていて、それを見えなくする、という方法になります。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

多分、マクロを組まないとできないでしょう。

関連するQ&A