【WordVBA】Word 매크로로 문장에, 일자와 페이지의 헤더를 붙인다
Excel 매크로라면 헤더를 세세하게 지정할 수 있습니다만, Word 매크로라면 잘 지정할 수 없습니다・・・
그래, 테이블을 만들자.
헤더에 테이블을 만들고 그 안에 쓰면 잘 가자.
'ヘッダーを編集します
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Set mytable = ActiveDocument.Tables.Add(Range:=Selection.Range, _
NumColumns:=3, NumRows:=1)
With Selection.Tables(1)
If .Style <> "表 (格子)" Then
.Style = "表 (格子)"
End If
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = False
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = False
.ApplyStyleRowBands = True
.ApplyStyleColumnBands = False
End With
Selection.WholeStory
Selection.Tables(1).Rows.Alignment = wdAlignRowLeft
'セルの幅を%に変える
Selection.Tables(1).AllowAutoFit = True
Selection.Tables(1).Columns.PreferredWidthType = wdPreferredWidthPercent
'テーブルのスタイル 印刷するときに枠が出ないようにNoneにしておきます。
Selection.Borders(wdBorderTop).LineStyle = wdLineStyleNone
Selection.Borders(wdBorderLeft).LineStyle = wdLineStyleNone
Selection.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
Selection.Borders(wdBorderRight).LineStyle = wdLineStyleNone
Selection.Borders(wdBorderHorizontal).LineStyle = wdLineStyleNone
Selection.Borders(wdBorderVertical).LineStyle = wdLineStyleNone
Selection.Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone
'テーブルの左端に日付を挿入する 日付の記述が怪しいかもです
Selection.Font.Size = 6
Selection.Tables(1).Cell(1, 1).PreferredWidth = 33
Selection.Font.ColorIndex = wdBlack
Selection.Font.Name = "MS Pゴシック"
Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
Selection.TypeText text:=Year(Date) +"年"+ Month(Date) +"月"+ Day(Date) +"日"+ " 保存"
'テーブルの真ん中
Selection.Tables(1).Cell(1, 2).Select
Selection.Tables(1).Cell(1, 2).PreferredWidth = 33
Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
'テーブルの右
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
Selection.MoveRight Unit:=wdCell
Selection.Tables(1).Cell(1, 3).PreferredWidth = 33
Selection.Font.ColorIndex = wdBlack
Selection.Font.Size = 6
Selection.Font.Name = "MS Pゴシック"
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
'ページ番号を挿入(0/0)
With Selection
.ParagraphFormat.Alignment = wdAlignParagraphRight
.TypeText text:="("
.Fields.Add Range:=Selection.Range, Type:=wdFieldPage
.TypeText text:="/"
.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, text:="NUMPAGES", PreserveFormatting:=True
.TypeText text:=")"
End With
이 작업을 수행하면 이러한 테이블을 헤더에 만들 수 있습니다.
좋은 느낌의 녀석이 생겼습니다.
한 번 더 저장하면 테이블이 두 줄이지만 ...
테이블을 만들기 전에 지금 헤더를 삭제하는 프로세스를 추가합니다.
테이블이 있으면 삭제
Cnt = ActiveDocument.Tables.Count
If Cnt > 0 Then
WordBasic.RemoveHeader
End If
저장 이벤트에 추가
이상의 처리를 저장 이벤트에 추가하면 저장할 때마다 날짜가 업데이트되어 페이지가 붙습니다.
이 밖에도, 마지막으로 갱신한 사람의 이름이나 이 문장을 열람할 수 있는 직책, 파일명을 넣는 등, 여러가지 응용이 효과가 있다고 생각합니다.
사내의 서식을 개선해 가고 싶은 사람은, 한 번 시험해 보는 것은 어떻습니까.
Reference
이 문제에 관하여(【WordVBA】Word 매크로로 문장에, 일자와 페이지의 헤더를 붙인다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kuzira_mood/items/71b71350690a119d5603텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)