ワード(Microsoft Word)で罫線を引く

2006/7/30更新

ワードに罫線機能がない?

どうも使い勝手の悪いワード。エクセルは好きでも、ワードは使いにくくて、ほとんど使ってきませんでしたが、ちょっとした頼まれ事で、便せん風の罫線を引くことが必要になりました。
ワードで罫線といえば、囲み線のことらしく、便せん風の罫線を引くツールは見あたりません。
マイクロソフトのサポートまでたどり着きましたが、その答えがひどい。

「Word で便箋のような文字列にそった横線を利用する場合 [表示] メニューから表示/非表示を切り替えられるグリット線を利用できます。しかし、グリット線は印刷を行うことができません。横線を含めて印刷を行いたい場合には、横線をオートシェイプとして挿入する必要があります」
「横線を含めて印刷を行いたい場合には以下の手順によって、オートシェイプの直線を挿入する必要があります。事前にグリット線と本文文字列の間隔をあわせておき、グリット線に沿ってオートシェイプの直線を挿入すれば、文字列に沿った横線を引くことができます。」とのこと!
http://support.microsoft.com/default.aspx?scid=kb;ja;906149を参照)

便せん文化の日本では、罫線好きな人が多いのに、これだけの手間を要求するとは、たいした度胸です。

腹が立ったついでに、罫線を引くマクロを作ってしまいました。

罫線を引くマクロを作る

以下のコードをワードのNormalの標準モジュールに貼り付けてください。

1,Alt + F11を押してvisual basicを開きます。(画像1を参考にしてください)
2,以下のコードをコピーし、Normalの標準モジュールに貼り付け、保存します。
3,次にツールバーにこのマクロを登録します(画像2,3を参考にしてください)

Sub 行罫線()
    Const HUTOSA = 0.25 '線の太さを指定します
    Dim start_top, start_left, start_right, gyokan, gyosu, nagasa
    Dim n&
    
    Application.ScreenUpdating = False
    
    With ActiveDocument.PageSetup
        gyosu = .LinesPage '行数
        .LinesPage = gyosu '行数から行間を再設定して、行間の誤差を修正します
        start_top = .TopMargin
        start_left = .LeftMargin
        start_right = .RightMargin
    End With
    
    Select Case ActiveDocument.Content.Orientation
        Case Is = wdTextOrientationHorizontal '横書き
            With ActiveDocument.PageSetup
                nagasa = .PageWidth - .LeftMargin - .RightMargin '線の長さを出します
                gyokan = (.PageHeight - .TopMargin - .BottomMargin) / .LinesPage '行間
            End With
            
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader '背景モード
            
            Selection.HeaderFooter.Shapes.SelectAll '以前の罫線を消します(残したいものがあれば、この2行を無効にしてください)
            Selection.Delete
            
            With Selection.HeaderFooter.Shapes
                For n = 1 To gyosu '横罫線を1本ずつ書き加えます
                    .AddLine(start_left, start_top + n * gyokan, start_left + nagasa, start_top + n * gyokan).Select
                    With Selection.ShapeRange.Line
                        .Weight = HUTOSA
                        .Visible = msoTrue
                        .Style = msoLineSingle '1本線
                        .DashStyle = msoLineRoundDot '点線
                    End With
                Next n
            End With
            
        Case wdTextOrientationVerticalFarEast '縦書き
            With ActiveDocument.PageSetup
                nagasa = .PageHeight - .TopMargin - .BottomMargin '線の長さを出します
                gyokan = (.PageWidth - .LeftMargin - .RightMargin) / .LinesPage '行間
            End With
            
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader '背景モード
            
            Selection.HeaderFooter.Shapes.SelectAll '以前の罫線を消します(残したいものがあれば、この2行を無効にしてください)
            Selection.Delete
            
            With Selection.HeaderFooter.Shapes
                For n = 0 To gyosu '縦罫線を1本ずつ書き加えます
                    .AddLine(start_left + n * gyokan, start_top, start_left + n * gyokan, start_top + nagasa).Select
                    With Selection.ShapeRange.Line
                        .Weight = HUTOSA
                        .Visible = msoTrue
                        .Style = msoLineSingle '1本線
                        .DashStyle = msoLineRoundDot '点線
                    End With
                Next n
            End With
    End Select
    
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument '元の編集モードに戻ります
    Options.DisplayGridLines = False 'グリッド線は不要になってくるので消します
End Sub



画像1(上のコードをNormalの標準モジュールに貼り付けます)



画像2、3(マクロボタンに登録します)

メニューバー(ツールバー)を右クリックし、



ユーザー設定をクリック



コマンド、マクロから「行罫線」を選択して、ツールバーにドラッグします。

文書を開いて、このボタンをクリックすると、罫線が引かれます。