[[20071211151536]] 『罫線を引くマクロについて』(てつ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『罫線を引くマクロについて』(てつ)
 お世話になってます。
 罫線を引くマクロの根本的なことを教えてください。
 いろんな書き方があると思うのですが,
 格子状に引くにはどうすればいいのでしょうか?
 できれば一番簡単で覚え安いのがいいですが・・・
 ネットで調べようとしてもなかなかうまいこと出てきません。

     With Range(Cells(max_r + 1, 2), Cells(max_r + 1, 4)).Borders
           .Weight = xlThin
    End With


 >一番簡単で覚え安いのがいいです
 ならば、マクロの記録で取得したコードが一番だと思います。
 (1or8)

 確かに!
 でもマクロの記録は不要なこともいっぱいしていると聞いたので
 上のコードだと。BORDERSのあとに(括弧)でどこに
 線を引くかを指定しなくちゃいけないと言うことでしょうか?
 (てつ)

 > 格子状に引くにはどうすればいいのでしょうか?
 / なやつ?

 xlDiagonalUp または Down
 (seiya)

 田んぼです。
 (てつ)

 記録を取ると↓が得られます。
 Sub Macro1()
    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

 線の太さや色、種類はそのままの場合、まとめると↓
 Sub Macro1()
    With Selection
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    End With
 End Sub

 提示のセルにあてはめると↓
 Sub Macro1()
    With Range(Cells(max_r + 1, 2), Cells(max_r + 1, 4))
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    End With
 End Sub

 線の太さや色を変える場合は、記録のコードが意外と簡潔だったりします。

 (1or8)

 >  田んぼです。
 なら、もとのコードそのままでいいんじゃないの?
 Range(Cells(max_r + 1, 2), Cells(max_r + 1, 4)).Borders.Weight = xlThin
 (seiya)

 .Borders.Weight = xlThin
 なるほど! これだけでいいんですね!
 勉強になります。
 (1or8)

 cellsと言う記述に慣れておられないとか・・・?
 Range("B" & max_r + 1 & ":D" & max_r + 1).Borders.Weight = xlThin

 変数が入っているから、今一わかりにくい とか・・・?
 max_r=1 の時に罫線が引かれる範囲
 Range("B2:D2").Borders.Weight = xlThin

 (HANA)

 cellsは大丈夫なんですが,ネットで線を引く解説が出てこなかったので・・・
 どこか詳しいサイトなどありましたらご教示ください。
 ただ 
 Range(Cells(max_r + 1, 2), Cells(max_r + 1, 4)).Borders.Weight = xlThin
 でエラーになります。
 BordersクラスのWeightプロパティを設定できません。
 (てつ)
 ----
 Range(Cells(max_r + 1, 2), Cells(max_r + 1, 4)).Borders.Weight = xlThin
 cellsの前にws2を入れるのを忘れてました。
 すいません 
 (てつ)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.