Word VBA

ワード・マクロ(VBA)の活用10


■ 法文基本設定のマクロ組込みのWord文書ファイル

(1) これまで法律文書の「ページ(書式)設定」と「ページ番号記入」のマクロ(VBA)の仕組みと作り方を説明してきた。
 そのマクロ(VBA)の保存場所は「Normal.dot」としてきたが,ここでは,Word文書の中に仕込んで,その機能を発揮させる方法を考えたい。
 「Normal.dot」は,Wordの基本を支えるものであるが,操作ミスやWord自体の想定外の事情で機能障害が生じ,新たに作り替えの必要が生じることがあるので,ここに多くを詰め込み過ぎない方がよい。


(2) これまで説明してきた「ページ(書式)設定」と「ページ番号記入」のマクロ(VBA)をまとめて再掲すれば,下記のとおりである(実行時にメッセージを出すように,若干の修正をしている。)。
 これをWord文書自体の標準モジュール内に置き,ツールバーを設置して,そのボタンから「ページ(書式)設定」あるいは「ページ番号記入」のマクロ(VBA)を呼び出して機能させることにする。


(3) その作り方は,これまで説明してきた方法を参考にして行えば,難しいことはない。興味のある人は,自分で作ってみると,そのプログラムの内容や仕組みが分かってきて,一層興味が湧くのではないかと思う。
 しかし,法律実務家のほとんどは,面倒な操作を繰り返さなくてもボタン一つで処理ができることには関心を示すが,そうしたマクロ(VBA)の仕組みや作り方にまで関心や興味を持つことは少ないと思う。法律実務家に限らないが,まずは,実務にすぐ使える道具(ツール)か否か,すぐ入手でき簡単に使えて役立つか否かで,判断されることが多い。
 

(4) このサイトの目的は,「法律実務家のためのWord マクロ(VBA)の活用」であって,マクロの作り方を詳細に紹介するものではないので,ここでは,「ページ(書式)設定」と「ページ番号記入」のマクロ(VBA)を標準モジュール内にセット済みの,出来上がりのWord文書ファイル「JPWord1.doc」を紹介したい。


(5) ダウンロードし,実際に,メニューから「ツール」−「マクロ」−「Visual Basic Editor」を起動し,「標準モジュール(Module1)の内容を見ると,下記のマクロ(VBA)の内容を確認することができる。
 「Visual Basic Editor」を終了してWordの画面に戻り,表示されているツールバーの「ページ(書式)設定」,「ページ番号記入」のボタンをクリックすれば,それぞれの機能が実現される。


(6) ここでダウンロードした文書ファイルは,A4判の用紙,横書き,文字はMS明朝体であるが,1行の文字数40,1ページの行数は36行,文字サイズは10.5となっている。
 法文基本設定のツールバー上のボタン操作により,法律文書として標準的な書式として自動設定ができる。一度試してみると,Word VBAの威力が分かる。
   なお,Windows Vista,Windows 7 の場合は,メニューの「アドイン」をクリックして,「ユーザー設定のツールバー」上のボタンを利用する。Word2010を利用するが,ここで使用するファイルは,「ファイルの種類」を「Word97-2003文書(*.doc)」としている。
 法文のページ(書式)設定,ページ番号記入ができる
「JPWord1.doc」をダウンロードする


 
JPWord
JPWord
 左ボタンで「ページ(書式)設定」,右ボタンで「ページ番号記入」ができる。


法律文書の「ページ(書式)設定」と「ページ番号記入」のマクロ(VBA)

Option Explicit

'変数の宣言
Dim WD As String
Dim Res As String


Sub 法文ページ設定()

'メッセージの作成
WD = ""
WD = WD & "次のとおり標準設定にしますか。" & vbCr
WD = WD & vbCr & "[ok]ボタンにより,自動設定します。"
WD = WD & vbCr & "-----------------------------------"
WD = WD & vbCr & "A4判横書き"
WD = WD & vbCr & " 1行37文字  行数26"
WD = WD & vbCr & " フォント MS明朝" & " 12ポイント" & vbCr
WD = WD & vbCr & " 余白 上端35o,下端27o"
WD = WD & vbCr & "     左側30o,右端20o" & vbCr

'メッセージの表示,実行か否か
Res = MsgBox(WD, vbOKCancel, "書式設定")

'Canselの場合 実行しない。
If Res = vbCancel Then
Exit Sub
End If

'OKの場合 書式設定を実行する
' 文字の種類,サイズ等の設定

With ActiveDocument.Styles(wdStyleNormal).Font
.NameFarEast = "MS 明朝"
.NameAscii = "MS 明朝"
.NameOther = "Century"
.Name = "MS 明朝"
.Size = 12
.Bold = False
.Italic = False
.Underline = wdUnderlineNone
.UnderlineColor = wdColorAutomatic
.StrikeThrough = False
.DoubleStrikeThrough = False
.Outline = False
.Emboss = False
.Shadow = False
.Hidden = False
.SmallCaps = False
.AllCaps = False
.Color = wdColorAutomatic
.Engrave = False
.Superscript = False
.Subscript = False
.Spacing = 0
.Scaling = 100
.Position = 0
.Kerning = 1
.Animation = wdAnimationNone
.DisableCharacterSpaceGrid = False
.EmphasisMark = wdEmphasisMarkNone
End With

'余白の設定
With ActiveDocument.PageSetup
.LineNumbering.Active = False
.Orientation = wdOrientPortrait
.TopMargin = MillimetersToPoints(35)
.BottomMargin = MillimetersToPoints(27)
.LeftMargin = MillimetersToPoints(30)
.RightMargin = MillimetersToPoints(20)
.Gutter = MillimetersToPoints(0)
.HeaderDistance = MillimetersToPoints(15)
.FooterDistance = MillimetersToPoints(17.5)
.PageWidth = MillimetersToPoints(210)
.PageHeight = MillimetersToPoints(297)
.FirstPageTray = wdPrinterDefaultBin
.OtherPagesTray = wdPrinterDefaultBin
.SectionStart = wdSectionNewPage
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.VerticalAlignment = wdAlignVerticalTop
.SuppressEndnotes = False
.MirrorMargins = False
.TwoPagesOnOne = False
.GutterPos = wdGutterPosLeft
.CharsLine = 37
.LinesPage = 26
.LayoutMode = wdLayoutModeGrid
End With

End Sub



Sub ページ番号()

'メッセージの作成
WD = ""
WD = WD & "ページ番号を記入しますか。" & vbCr
WD = WD & vbCr & "[ok]ボタンにより,ページ番号を記入します。"

'メッセージの表示,実行か否か
Res = MsgBox(WD, vbOKCancel, "ページ番号")

'Canselの場合 実行しない。
If Res = vbCancel Then
Exit Sub
End If

'OKの場合 ページ番号記入の設定をする
' ページ真下中央に「 - 0 - 」の書式とする

With Selection.Sections(1).Headers(1).PageNumbers
.NumberStyle = wdPageNumberStyleNumberInDash
.HeadingLevelForChapter = 0
.IncludeChapterNumber = False
.ChapterPageSeparator = wdSeparatorHyphen
.RestartNumberingAtSection = True
.StartingNumber = 1
End With
Selection.Sections(1).Footers(1).PageNumbers.Add PageNumberAlignment:= _
wdAlignPageNumberCenter, FirstPage:=True

End Sub




2010.7.24 〜 2012.3.11
|
TOP
|

[ HOME ]