0

Word has a very convenient gridlines feature which enables you to view gridlines of any size you like, and align elements in your document with them. You can enable it in Layout-tab>Align>View gridlines.

These gridlines are not present when printing however, yet an option to enable their printing seems like an obvious feature to have.

I have looked far and wide and found no way to do it. There are many solutions online claiming to work, yet they simply don't. This MS Support article offers a solution (with an error in it- "Page Setup" is under the Layout tab and not the Design tab). But it simply falls flat on its second step, since a "Print Setup" tab doesn't exist in the "Page Setup" dialog box.

This superuser question doesn't contain a satisfying answer either. The first reply is linking an article that offers taking a screenshot of the page as a solution, which seems extremely archaic and worsens quality. The second reply offers to circumvent the grindlines feature itself and just stick a background on the Word document that looks like a grid, yet lacks all the great features and settings.

I've tried looking for solutions on both google and youtube, yet got none. Does anyone know how to do this? Printing gridlines seems like an extremely simple and obvious feature to have considering MS Word already has gridlines.

Remeraze
  • 19
  • 4
  • 2
    Which grid "great features and settings" would you expect while printing? You can't edit the document from the print dialog. – harrymc Aug 06 '22 at 16:11
  • 2
    `[MS Support article][1]`, states: > Visio Plan 2 Visio Professional 2021 Visio Standard 2021 Visio Professional 2019 Visio Standard 2019 Visio Professional 2016 Visio Standard 2016 Visio Professional 2013 Visio 2013 Visio 2007 ... so only valid for Visio, not word. – Hannu Aug 07 '22 at 12:07

1 Answers1

3

Word does not have this capability. Those gridlines are intended to be non-printing.

Those gridlines are intended to help you in placing printing items on your page. The idea is that they will not be seen in the final product.

You could create and use graph paper templates.

You can download some templates from my website. The screenshot below is from the quarter-inch template.

screenhot

Here is a link to Word MVP Bill Coan's macro to create these. A printout of my modified version the macro is included in the download package on my website and below. There are no active macros in the download.

Here my modified version of the macro:

Sub GraphPaperCreate()
'   TechTrax - Bill Coan
'   http://web.archive.org/web/20070421084938/http://pubs.logicalexpressions.com/Pub0009/LPMArticle.asp?ID=596
'   modified by Charles Kenyon to:
'       reduce margins to .25
'       lighter line weight (.3 points rather than 2 points)
'       grid is set behind text in case there is text
'
' Sets margins at .25"  Charles Kenyon
'
    With ActiveDocument.PageSetup
        .TopMargin = InchesToPoints(0.25)
        .BottomMargin = InchesToPoints(0.25)
        .LeftMargin = InchesToPoints(0.25)
        .RightMargin = InchesToPoints(0.25)
    End With

    'Declare variables
    Dim sglBeginX As Single
    Dim sglEndX As Single
    Dim sglBeginY As Single
    Dim sglEndY As Single
    Dim Interval As Single
    Dim LineCount As Integer
    Dim VerticalGridLines As Integer
    Dim HorizontalGridLines As Integer
    Dim GridWidth As Single
    Dim GridHeight As Single
    Dim UserChoice As String
    Dim oLine As Shape

    'set the line weight, in points
    Const LINE_WEIGHT As Long = 0.5   'changed from Integer = 2 by Charles Kenyon - this is the minimum

    'set whether to delete the old grid,
    '(assuming there is one)
    Const DELETE_OLD_GRID As Boolean = True

    'Delete the old grid
    If DELETE_OLD_GRID Then
       On Error Resume Next
       ActiveDocument.range.ShapeRange.Delete
       On Error GoTo 0
    End If

    'Prompt the user to specify the size of squares desired
PromptUser:
    UserChoice = InputBox _
    ("Enter size of squares in points:" & vbLf & vbLf & _
       "(Value must be between 1 and 72)" & vbLf & _
       "9 points = 1/8 inch" & vbLf & _
       "12 points = 1/6 inch" & vbLf & _
       "18 points = 1/4 inch" & vbLf & _
       "24 points = 1/3 inch" & vbLf & _
       "36 points = 1/2 inch" & vbLf & _
       "48 points = 2/3 inch" & vbLf & _
       "72 points = one inch", "Create graph paper")

    'If the size requested is outside the allowed range,
    'then go back and prompt the user again,
    'but if user has clicked cancel, then quit
    If IsNumeric(UserChoice) Then
       Interval = Val(UserChoice)
       If Interval > 72 Or Interval < 2 Then
          MsgBox "Value must be between 2 and 72.", _
            vbOKOnly + vbInformation, "Value out of range"
          GoTo PromptUser
       End If
    ElseIf UserChoice = "" Then
       GoTo EndGracefully
    Else
       GoTo PromptUser
    End If

    'Calculate beginning and ending positions
    'based on page size and margins
    With ActiveDocument.Sections.First.PageSetup
       sglBeginX = .LeftMargin
       sglEndX = .PageWidth - .RightMargin
       sglBeginY = .TopMargin
       sglEndY = .PageHeight - .BottomMargin
    End With

    'Calculate how many squares of the requested size
    'can fit in the available area
    HorizontalGridLines = Int((sglEndY - sglBeginY) / Interval)
    VerticalGridLines = Int((sglEndX - sglBeginX) / Interval)

    'Calculate the size of the finished grid, based on
    'size of the number of lines and the size of the squares
    GridWidth = VerticalGridLines * Interval
    GridHeight = HorizontalGridLines * Interval

    'draw the horizontal lines
    For LineCount = 0 To HorizontalGridLines
       Set oLine = ActiveDocument.Shapes.AddLine( _
          BeginX:=sglBeginX, _
          BeginY:=sglBeginY + LineCount * Interval, _
          EndX:=sglBeginX + GridWidth, _
          EndY:=sglBeginY + LineCount * Interval)
       oLine.line.Weight = LINE_WEIGHT
       oLine.ZOrder msoSendBehindText   'Charles Kenyon
    Next LineCount

    'draw the vertical lines
    For LineCount = 0 To VerticalGridLines
       Set oLine = ActiveDocument.Shapes.AddLine( _
          BeginX:=sglBeginX + LineCount * Interval, _
          BeginY:=sglBeginY, _
          EndX:=sglBeginX + LineCount * Interval, _
          EndY:=sglBeginY + GridHeight)
       oLine.line.Weight = LINE_WEIGHT
       oLine.ZOrder msoSendBehindText   'Charles Kenyon
    Next LineCount

    'release the oLine object from memory
    Set oLine = Nothing

    'end gracefully
EndGracefully:

End Sub

The grid produced could be placed in a header or footer to be background to ordinary text.

Charles Kenyon
  • 4,283
  • 2
  • 8
  • 19