追記 後日、このマクロをブラッシュアップしました。あわせてご覧ください。 【コード】選択したファイルだけを左右に並べるWordマクロ
先日のWordマクロセミナー(プログラミング編) にてご質問をいただきまして、作ってみました。
あまり試運転していませんが、ひとまず動くと思います。どうぞご利用ください。
このマクロでできること
開かれているWordファイルを左右に並べます。
マクロの解説
現在開かれている文書の数に従って、横幅を計算して配置するマクロです。
処理していることはわかりやすいと思いますので、ご覧ください。
19行、20行の数値は、パソコン環境にあわせて適宜修正してみてください。
なお、Word 2010は、現在開かれている文書を正確に取得できないことがございます。
このマクロを作成してみて気づきました。怖いですねぇ。
Word 2010だと上記の理由にて、適切な場所に配置されない文書が存在することがあります。
バグについては、こちらの記事をご覧ください。
Word 2010 Documents collection corrupted if work with several documents
Word 2003/2007では動作確認いたしました。
マクロ
Sub ウィンドウを左右に並べるマクロ() Dim ttlHeight As Integer 'Word画面の横幅 Dim ttlWidth As Integer 'Word画面の縦幅 Dim indivWidth As Integer '個別のファイルの横幅 Dim i As Integer Dim nDoc As Integer '開かれているファイルの数 '開かれているファイルの数を取得 nDoc = Documents.Count If nDoc < 1 Then Exit Sub 'ファイルの1つを最大化(Word画面のサイズを計測するため) Documents(1).Activate ActiveWindow.WindowState = wdWindowStateMaximize 'Word画面のサイズの取得 ttlWidth = Application.Width - 10 '調整してください。 ttlHeight = Application.Height - 16 '調整してください。 '個別ファイルの横幅の設定(縦幅はWord画面のサイズを採用) indivWidth = ttlWidth / nDoc For i = 1 To nDoc Documents(i).Activate With ActiveWindow .WindowState = wdWindowStateNormal .Width = indivWidth .Height = ttlHeight .Top = 0 .Left = indivWidth * (i - 1) End With Next i End Sub