ワードドキュメントをExcelコードで開いて最大化できない

信行 伊藤 40 評価のポイント
2026-02-04T13:18:56.4+00:00

ネット上に公開されているコードを利用してもどうしても最大化しない大方の事を行って見たが最大化しない.

 ツールの参照指定; ☑Microsoft Office16.0 ObjectLibrary

   ☑同 Word16.0 ObjectLibrary 

wordApp.WindowState = wdWindowStateNormal

wordApp.WindowState = wdWindowStateMaximize

等色々変更して見たが最大化しない.

ネット上では,環境によるのではないかと言う意見もありました.環境として考えられることをアドバイスください.ファイルの大きさも色々試した結果,

30kb位なら最大化するが20,000kbでは最大化しない.同じフォルダ内のファイル数が関係するかはわからない.

アドバイス,出来れば短いサンプルコードをお願いします.


<モデレーター注>
質問内容をもとにタグを「Microsoft 365 と Office | Excel | その他 | その他」→「開発者テクノロジー」に変更しました。
サブタグは不明な為、仮設定しています。

開発者テクノロジ | Visual Basic for Applications

質問作成者が受け入れた回答
Makapu 92,280 評価のポイント ボランティア モデレーター
2026-02-04T15:53:16.04+00:00

こんにちは。

Copilot にコードを書いてもらって試した所、2台のパソコンでどちらもWord は最大化しました。

サンプルのWord のファイルサイズ:約65,000kb

・ポイント:Word の読み込み中に最大化すると無視されるため、

ActiveWindow が Nothing でなくなるまで待つ。

Sub OpenWordMaximized()
    Dim wordApp As Word.Application
    Dim doc As Word.Document
    Dim f As String
    f = "C:\test\bigfile.docx"    ' ★パスを差し替え
    Set wordApp = New Word.Application
    wordApp.Visible = True
    ' ドキュメントを開く
    Set doc = wordApp.Documents.Open(f)
    ' Word がウィンドウを作るまで待つ
    Do While wordApp.ActiveWindow Is Nothing
        DoEvents
    Loop
    ' 最大化
    wordApp.WindowState = wdWindowStateMaximize
    ' Word を前面に出す(最重要)
    AppActivate wordApp.Caption
    ' 念のため Word 内部のアクティブ化も行う
    doc.Activate
    wordApp.Activate
End Sub

この回答は役に立ちましたか?

2 人がこの回答が役に立ったと思いました。

モデレーターによって推奨された回答
信行 伊藤 40 評価のポイント
2026-03-04T00:34:21.2433333+00:00

ご指摘のオブジェクトの取り扱いが入り混じったエラーがありました.

あまり理解できていない私なりに修正して不要な行を削除して多分ですが一応希望通り処理できました汚いコードですが,使える状態になりましたのでコードを掲載して解決といたします.最初に重要なコードを提供して下さった方ありがとうございました.

Public Const pathn13 As String = "C:\Myi Family2019" & "Noriyuki29"

Public Const pathn10 = "C:\練習場所Test2019"

Public Const pathn15 As String = "C:\Myi Family2019" & "Yukiko29"

'ExcelからWordを開いて最大化するVBAコード

Sub Sample10open_wordMS() '正しい

Dim Tagdir As String, Tagbook As String

Tagdir = pathn15

Tagbook = "印刷NEC再インストール印刷.doc"

OpenWordMaximizedMS Tagdir, Tagbook

End Sub

Sub OpenWordMaximizedMS(Tagdir, Tagbook) '正しい

Dim wordApp As Word.Application, doc As Word.Document, f As String

Dim filePath As String

Dim Sword As String



waitTime = Now + TimeValue("0:00:02")



Sword = "in作業中"

filePath = Tagdir & Tagbook

Set wdApp = CreateObject("Word.Application")  'Wordを表示起動,Wordが立ち上がる



Set wordApp = New Word.Application

wordApp.Visible = True



' ドキュメントを開く

Set doc = wordApp.Documents.Open(filePath)



' Word がウィンドウを作るまで待つ

Do While wordApp.ActiveWindow Is Nothing

    DoEvents

Loop



' 最大化

wordApp.WindowState = wdWindowStateMaximize

' Word を前面に出す(最重要)

' AppActivate wordApp.Caption '一時停止

' 念のため Word 内部のアクティブ化も行う

doc.Activate

wordApp.Activate

'ドキュメントの全体を選択し,in作業中検索 ****************************************

doc.StoryRanges(wdMainTextStory).Select

With wordApp ' With wdApp

    .Selection.Find.ClearFormatting

    .Selection.HomeKey Unit:=wdStory  ' 検索する方向文末方向

    .Selection.Find.Text = Sword      ' 検索するキーワード

    .Selection.Find.Forward = True

    If .Selection.Find.Execute Then  '見つかったら全画面

        With .Selection

        End With

    Else

    End If

End With

Set wordDoc = Nothing

Set wordApp = Nothing

End Sub

この回答は役に立ちましたか?

0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. simo-k 92,475 評価のポイント ボランティア モデレーター
    2026-02-04T13:39:22.8466667+00:00

    Wordをアクティブにしていますか?
    Window.WindowState プロパティ (Word)

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません

お客様の回答

質問作成者は回答に "承認済み"、モデレーターは "おすすめ" とマークできます。これにより、ユーザーは作成者の問題が回答によって解決したことを把握できます。