ExcelのVBAで、Wordを操作する際に画面内にExcelとWordを並べて表示の基本事例です。
Excelの画面を二つ並べて処理したいときは、【Excel VBA】Excelで画面を分割表示のサンプル に基本事例を掲載しています。
内容:
必要な背景
ExcelのVBAで、処理状況を確認しながらWordを操作する際に
- Excelの画面と重ならないように画面を分割したい場合
- メッセージボックス等の表示がアクティブでないために、マクロが停止しているような誤解を避けたい場合
などに使用します。
VBAサンプル
VBAのサンプルは次のとおりです。
Function ExcelとWordで画面を分割表示のサンプル() '===動作確認用でWordの起動===' Dim wrdApp As Object Dim wrdDoc As Object Set wrdApp = CreateObject("Word.Application") ' Word文書を開く' Set wrdDoc = wrdApp.Documents.Add wrdApp.Visible = True '====ここまで動作確認用のWord起動===' ' 画面の幅と高さを取得' Dim screenWidth As Long Dim screenHeight As Long Application.WindowState = xlMaximized screenWidth = Application.Width screenHeight = Application.Height ' Wordウィンドウを画面の左半分に配置' With wrdApp .WindowState = xlNormal .Top = 0 .Left = 0 .Width = screenWidth / 2 .Height = screenHeight End With ' Excelウィンドウを画面の右半分に配置' With Application .WindowState = xlNormal .Top = 0 .Left = screenWidth / 2 .Width = screenWidth / 2 .Height = screenHeight End With End Function
VBAの補足説明
- 上記コードで、冒頭のWord起動部分は動作確認用なので、実際の対象に修正します。
- 次のコード部分については、Excelの画面を最大化してサイズを取得しています。
Application.WindowState = xlMaximized
screenWidth = Application.Width
screenHeight = Application.Heightこの箇所は、
screenWidth = Application.UsableWidth
とすることも可能ですが、私の動作環境では期待するサイズが取得できなかったので、上述のとおりとしています。
screenHeight = Application.UsableHeight
以上、Excel VBAを利用し、ExcelとWordで画面を分割表示するサンプルでした。