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で画面を分割表示するサンプルでした。