【コード】Wordファイルを左右に並べるWordマクロ

追記
後日、このマクロをブラッシュアップしました。あわせてご覧ください。
【コード】選択したファイルだけを左右に並べる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

トップへ戻る