none
Excelでワードドキュメントを開くとドキュメントが最大化いたしません RRS feed

  • 質問

  •  前略
    以下のコードは、Office2019/64BitのExcelによりワードドキュメントを開くコードです。
    しかし、このコードでは、ドキュメントを開くには開きますが、ドキュメントがタスクトレイにアイコンの状態です。全画面の編集状態で開きません。
    32bitのOffice2007バージョンまでは、編集状態で開いて全画状態で開いておりました。
    何が悪いのでしょうかご指導、修正していただけないでしょうか?

     Option Explicit
    Sub Test_練習Open()
        Dim Tagdir As String, Tagbook As String
        
        Tagdir = "C:\Test2019\"
        Tagbook = "Test1.doc"
        CP_正しい語句検索 Tagdir, Tagbook
    End Sub

    Public Sub CP_正しい語句検索(ByVal Tagdir, ByVal Tagbook)
        Const wdWindowStateNormal = 0
        Const wdWindowStateMaximize = 1
        Const wdWindowStateMinimize = 2
        Const wdStory = 6
        
        Dim wdapp As Word.Application
        Dim wddoc As Word.Document
        Dim Sword As String
        Dim Fpath As String
        Dim waitTime As Variant
     
    'Inisial
        Sword = "in作業中"
        Fpath = Tagdir & Tagbook  'Openするドキュメントをパス名付きで設定する
        waitTime = Now + TimeValue("0:00:01")          'エラー回避のために1秒待つ設定

    'ここでワードを開く
        Set wdapp = CreateObject("Word.Application")   '何もないWordが立ち上がる
        wdapp.Visible = True
        
        Set wddoc = wdapp.Documents.Open(Fpath)

    '見える化
        Application.Wait waitTime                      '1秒後経過(待つ)
        wdapp.Visible = True
        wdapp.Activate
        Application.Wait waitTime                      '1秒後経過(待つ)
    'in作業中 検索****
        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
        wdapp.Visible = True
        wdapp.Activate

    '最大化
        If wdapp.WindowState = wdWindowStateMinimize Then
           wdapp.WindowState = wdWindowStateMaximize
        ElseIf wdapp.WindowState = wdWindowStateNormal Then
           wdapp.WindowState = wdWindowStateMaximize
        Else
           wdapp.WindowState = wdWindowStateMaximize
        End If
        Application.Wait waitTime                      '1秒後経過(待つ)
        wdapp.WindowState = wdWindowStateMaximize
        wdapp.Visible = True
        wdapp.Activate
       
        Set wddoc = Nothing
        Set wdapp = Nothing
    End Sub
    2021年3月14日 1:55

すべての返信

  • sinko_74さん、こんにちは。

    VBAのコードに間違いはないようです。当然、参照設定で「Microsoft Word  xx.x Object Library」(xx.xはバージョンによって異なる数値となる)が設定されていると思います。

     「このコードでは、ドキュメントを開くには開きますが、ドキュメントがタスクトレイにアイコンの状態です。」とのことですが、ご呈示のコードをそっくりそのままコピペして実行した小生の試行では、再現できませんでした(正常に最大表示され、正常に文字列検索が出来ました)。したがって、その原因は皆目分かりません。念のためにお尋ねしますが、「タスクトレイに」とのことですが、「タスクバーに」ではないのでしょうか? また、何らかのエラーメッセージは表示されないのでしょうか?

    こういう訳の分からない状況の場合、パソコンを再起動してみると正常に表示されるようになったりするものですが、その程度のことはおやりになっての話かと思いますので、バージョンによるのかと思います。

    ちなみに、小生の試行した環境は、Windows10_Home_64bit + Excel2016MSO_32bit + Word2016MSO_32bit です。なお、その後、Windows10_Pro_64bit + Excel2019MSO_64bit + Word2019MSO_64bit でも試行しましたが、同じ結果(正常に最大表示されました。)でした。

    2021年3月14日 8:28
  • sinko_74さん、こんにちは。

    問題は解決しましたか?

    まだであれば、困りましたね。一応、ご提示されたコードを見る限り、VBA自体には、コードミスなどはないと思います。したがって、VBA以外の要因を探るしかないと思われます。

    Test1.docのサイズはどれくらいでしょうか? 手動では問題なく開くんですよね?
    VBAをステップバイステップ(F8キー)で動作させてみてどのような動作になるかを確認してみましたか?
    また、最大画面表示されないときに、タスクマネージャを起動してみて、アプリやパフォーマンスの状況はどんな具合になっているでしょうか?
    システムは、Windows10_64bit+Office2019/64BitのExcelとWordですよね?

    2021年3月15日 9:26
  • 環境がないので試してませんが、以下で無理やりいけませんか?

    '最大化
    'If wdapp.WindowState = wdWindowStateMinimize Then
    '   wdapp.WindowState = wdWindowStateMaximize
    'ElseIf wdapp.WindowState = wdWindowStateNormal Then
    '   wdapp.WindowState = wdWindowStateMaximize
    'Else
    '   wdapp.WindowState = wdWindowStateMaximize
    'End If
    'Application.Wait waitTime'''''  '1秒後経過(待つ)
    'wdapp.WindowState = wdWindowStateMaximize
    'wdapp.Visible = True
    'wdapp.Activate

    ↓↓↓↓↓↓

    wdapp.Visible = True

    Do
        wdapp.Activate
        wdapp.WindowState = wdWindowStateMaximize
        DoEvents
    Loop Until wdapp.WindowState = wdWindowStateMaximize

    2021年3月15日 17:41
  • sinko_74さん、こんにちは。

    最初の返信の冒頭で「VBAのコードに間違いはないようです。」と記しましたが、どうやら間違いがあるようです。

    小生の環境ではエラーも出ずに動きましたので、ざっとVBAのコードに目を通して「VBAのコードに間違いはないようです。」と記しましたが、間違いというか、無意味なコードが記されていて、それが、小生の環境では問題が無いのですが、sinko_74さんの環境では問題があるのかもしれません。

    というのは、当初より不思議に感じておりましたが、「1秒後経過(待つ)」というコメントが付されたコードです。小生の環境では、この行を削除しても全く問題なく動きますので、何でこれが必要なのか?と疑問に感じたものの、特にその点を追及せずにおりました。しかし、sinko_74さんの環境では、これ(1秒後経過(待つ)という処理)がとても大事で必要不可欠であるとすれば、実は、記されているコードは全く役に立っていないのです。ですので、3か所に「Application.Wait waitTime」が記されていますが(3か所本当に必要かどうかは疑問ながら、必要であるという前提で修正案を提示します。)、その3か所についてそれぞれ次の様に修正すべきです。というのは、最初の「'Inisial」の3行目で記されている「waitTime = Now + TimeValue("0:00:01") 」によって、この行が実行された時点でwaitTimeの値が取得されますが、この後、wdappが立ち上がり、addocが開かれてセットされる間に1秒前後の時間が経ってしまうので、このwaitTimeを使いまわすと、その後の3か所の「Application.Wait waitTime」はかっきり1秒経過を待つことにはなりません。

    もう少し正確に言うと、「'見える化」の直後の最初の「Application.Wait waitTime 」では、wdappが立ち上がり、addocが開かれてセットされる間に1秒未満の時間しかかからなければ、1秒の残りの僅かな時間だけ「Application.Wait waitTime 」が実行されますが、1秒以上の時間がかかってしまったら、既にwaitTImeを徒過してしまっているので「Application.Wait waitTime 」は素通りしてしまいます。

    次の「Application.Wait waitTime 」では、既にwaitTimeを徒過していることは明らかですから、やはり、「Application.Wait waitTime 」は素通りしてしまいます。

    3番目の「Application.Wait waitTime 」も同様です。

    したがって、「Application.Wait waitTime」を
    「waitTime = Now + TimeValue("0:00:01")
     Application.Wait waitTime                    」の様に、直前でWaitTimeの値を取得するように修正してください。

    なお、最初の「'Inisial」の3行目で記されている「waitTime = Now + TimeValue("0:00:01") 」は無意味ですので、削除すればよろしいのではないかと思います。

    以上、ご確認ください。

    2021年3月16日 3:00
  • 前略

    もう、あきらめていました。できなければ、そんな機能は無いものと処理します。

     >Microsoft Word  xx.x Object Library」設定しています。問題があればその注意が指摘されます。特に指摘はありません。

     「このコードでは、ドキュメントを開くには開きますが、ドキュメントがタスクトレイにアイコンの状態です。」ご呈示のコードをそっくりそのままコピペして実行した小生の試行では、再現できませんでした(正常に最大表示され、正常に文字列検索が出来ました)。したがって、その原因は皆目分かりません。

    > 原因は、再現できる人とそうでない人があるということは、多分、環境による部分が大だと思います。よって解決には、Office開発者でないと分からないかもしれません。

    >「タスクトレイに」とのことですが、「タスクバーに」ではないのでしょうか?

    名前はよくわかりませんが、最下段の帯です。他にiconを置いているところ、スタートやコルタナがある右横です。

    >何らかのエラーメッセージは表示されないのでしょうか?

    エラーは出ません。

    >Windows10_Home_64bit + Excel2016MSO_32bit + Word2016MSO_32bit です。

     ほぼ同じと思います。Windows10 64Bit Office2019です。Windows10は20H2にアップされても同じです。

     ご指導ありがとうございます。

    2021年3月27日 10:07
  •  ご指導ありがとうございます。

     >問題は解決しましたか?

     未解決です。

    >VBA以外の要因を探るしかないと思われます。

     以前環境が原因であろうとのご指摘を受けました。

    >Test1.docのサイズはどれくらいでしょうか? 50KB以下ですが、あまりサイズとは関係ないと思っています。 

    >手動では問題なく開くんですよね?

     手動で開きます。

     さらに申し上げますと、F8によるステップバイステップでは目的通り開きます。

    ただ、不思議なことに一度、それで開くと、以降は、このコードをフォームボタンから行っても毎回、目的通り開きます。

    しかし、一度、Excelを閉じると、また元の木阿弥?二度と開きません。

     こんなことってありますか。Office開発者もびっくりでしょう。

     ただ、タスクトレイにあるアイコンをクリックすると、最大化して目的を達していることは確認できます。

    >VBAをステップバイステップ(F8キー)で動作させてみてどのような動作になるかを確認してみましたか?

    また、最大画面表示されないときに、タスクマネージャを起動してみて、アプリやパフォーマンスの状況はどんな具合になっているでしょうか?

     タスクマネジャのようすは見ていません。私の知識がありません。。

    >システムはシステムは、Windows10_64bit+Office2019/64BitのExcelとWordですよね?

     どこかに記載しました通りです。

      以上

    2021年3月27日 10:28
  •  前略

     ご指導ありがとうございます。

     コード作成当時は、うまう機能しないので、試行錯誤した結果のコードが残っていました、

     加えたものです。どちらにしても結果は、同じでした。

     以上

    2021年3月27日 10:52
  • sinko_74さん、今晩は。

    本日の書き込みは余り良く分かりませんけれど、3月16日の小生の返信はご覧になって試して見られたでしょうか。

    取り敢えず、3月16日の小生の返信内容でsinko_74さんが最初にご提示されたコードを修正したものを以下に掲載します。空行は削除していますので、見にくいかもしれませんが、一応、まっとうに動くのではないかと思います。

    Option Explicit
    Sub Test_練習Open()
        Dim Tagdir As String, Tagbook As String
        Tagdir = "C:\Test2019\"
        Tagbook = "Test1.doc"
        CP_正しい語句検索 Tagdir, Tagbook
    End Sub
    Public Sub CP_正しい語句検索(ByVal Tagdir, ByVal Tagbook)
        Const wdWindowStateNormal = 0
        Const wdWindowStateMaximize = 1
        Const wdWindowStateMinimize = 2
        Const wdStory = 6
        Dim wdapp As Word.Application
        Dim wddoc As Word.Document
        Dim Sword As String
        Dim Fpath As String
        Dim waitTime As Variant
    'Inisial
        Sword = "in作業中"
        Fpath = Tagdir & Tagbook  'Openするドキュメントをパス名付きで設定する
    '    waitTime = Now + TimeValue("0:00:01")          'エラー回避のために1秒待つ設定
    'ここでワードを開く
        Set wdapp = CreateObject("Word.Application")   '何もないWordが立ち上がる
        wdapp.Visible = True
        Set wddoc = wdapp.Documents.Open(Fpath)
    '見える化
        waitTime = Now + TimeValue("0:00:01")          'エラー回避のために1秒待つ設定
        Application.Wait waitTime                      '1秒後経過(待つ)
        wdapp.Visible = True
        wdapp.Activate
        waitTime = Now + TimeValue("0:00:01")          'エラー回避のために1秒待つ設定
        Application.Wait waitTime                      '1秒後経過(待つ)
    'in作業中 検索****
        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
        wdapp.Visible = True
        wdapp.Activate
    '最大化
        If wdapp.WindowState = wdWindowStateMinimize Then
           wdapp.WindowState = wdWindowStateMaximize
        ElseIf wdapp.WindowState = wdWindowStateNormal Then
           wdapp.WindowState = wdWindowStateMaximize
        Else
           wdapp.WindowState = wdWindowStateMaximize
        End If
        waitTime = Now + TimeValue("0:00:01")          'エラー回避のために1秒待つ設定
        Application.Wait waitTime                      '1秒後経過(待つ)
        wdapp.WindowState = wdWindowStateMaximize
        wdapp.Visible = True
        wdapp.Activate
        Set wddoc = Nothing
        Set wdapp = Nothing
    End Sub

    2021年3月27日 11:23
  • 前略

    お世話になります。

     Application.Wait waitTime については,ワードドキュメントを準備するのに必要な時間ですね、下方の2か所は、もともとなかったのですが、うまく開かないので試行錯誤しているうちに追加したわけです。何かゆっくりすれば希望通りになるのではと、はかない希望でした。ご指摘が有ったのでワードの準備だけにして、それ以外のものは、削除しました。しかし、やはり希望通りになりません。

    とりあえず報告です。

     以上

    2021年3月27日 11:29
  • sinko_74さん、今晩は。

    >Application.Wait waitTime については,ワードドキュメントを準備するのに必要な時間ですね、下方の2か所は、もともとなかったのですが、うまく開かないので試行錯誤しているうちに追加したわけです。何かゆっくりすれば希望通りになるのではと、はかない希望でした。ご指摘が有ったのでワードの準備だけにして、それ以外のものは、削除しました。しかし、やはり希望通りになりません。

    何か誤解していますね。3月16日の返信では、そのようなこと(「ワードの準備だけにして、それ以外のものは、削除」)は言っていないと思いますが。

    今回ご提示したコードをよく見て、見比べてください。今回ご提示したコードは、3月16日の返信でご指摘した修正点を修正したものです。

    また、今回ご提示したコードを丸ごとコピペして、稼働させてみて下さい。

    それをやった上で、どんな具合か、ご返事を頂けないでしょうか。

    2021年3月27日 11:42
  • 前略

     お世話になります。

     ご指摘のコードをコピーぺして試しましたが、やはり希望通りになりません.

     私の考え方が間違っているかもしれません。つまり、ワードを準備するだけにwaitするだけでよい。他の部分はwaitしない。

     と思いました。

      以上

    2021年3月28日 3:08
  • sinko_74さん、こんにちは。

    昨日返信でご提示したコードを丸ごとコピーして実行しても最大表示にならないとのこと。もともと、小生の環境では、Waitをしなくても最大表示されるので、原因究明しようがありません。ただ、こちらでもうまくいかないことが有ったのは、その直前又はそれ以前にエラーで、Wordアプリが残ってしまっている場合に、うまく動作しなかった、ということがあります。ですので、パソコンを再起動して、丸ごとコピーしたVBAを実行してみる、ということで、解決するかもしれない、という気もします。

    なお、sinko_74さんもご指摘の通り、「’見える化」のコメント行直後の

        waitTime = Now + TimeValue("0:00:01")          'エラー回避のために1秒待つ設定
        Application.Wait waitTime                      '1秒後経過(待つ)

    の2行は必要だと思いますが、それ以降の2か所の

        waitTime = Now + TimeValue("0:00:01")          'エラー回避のために1秒待つ設定
        Application.Wait waitTime                      '1秒後経過(待つ)

    の2行、合計4行は、必要ないかもしれません。

    そのほか、「'最大化」のコメント行直後の

        If wdapp.WindowState = wdWindowStateMinimize Then
           wdapp.WindowState = wdWindowStateMaximize
        ElseIf wdapp.WindowState = wdWindowStateNormal Then
           wdapp.WindowState = wdWindowStateMaximize
        Else
           wdapp.WindowState = wdWindowStateMaximize
        End If

    については、その直後に無条件に最大化するコードが記されていますから、必要ないでしょう。

    以上、ご参考まで。

    2021年3月28日 5:43
  • ご指摘ありがとございます。

    何らかの、条件が変われば、うまく機能することもあるだろうと思っています。昔、どなたかが指摘してくださいましたが環境が関係している。信じています。

    ずいぶん長く悩みました。if文による画面サイズの変更はExcelの構文ですが、何か起きないかと思い試行錯誤の結果記載したものです。どなたかに説明したように有ってもなくても関係ないと思います。とにかく正しく機能するコードになりましたらそれぞれ不要なコードは削除していくことにします。Officeの開発者に理由が聞きたいものです。

    以上

    2021年3月28日 12:54
  • sinko_74さん、今晩は。

    今さらではありますけれど、お役に立てないでいろいろご注文して恐縮ですが、次のリクエストに対応していただけませんか?

    1.C:\Test2019\Test1.doc が手動で開くかどうか確認して、結果を教えていただけませんか。(ワードファイルが壊れていたら、動かないのは当たり前ですので、確認です。)

    2.sinko_74さんが困って悩んでいる最新のコードを、改めてアップしていただけませんか。

    3.Windows10+Office2019_64bit ですよね。cpuは何でしょうか? ストレージはHDDでしょうか、SSDでしょうか? メモリの容量は?(環境のせいかもしれないとすれば、確認しておくに越したことはないと思いますので。)

    以上、よろしくお願いします。

    2021年3月28日 13:17
  • sinko_74さん、こんにちは。

    前の返信へのご返事をいただいていないので、畳みかけるようで申し訳ありませんが、いろいろ試行錯誤してみたところ、全画面表示されずに途中で止まってしまう状況を再現できました。sinko_74さんと同じ症状であるかどうかは、確認できませんけれど。

    こちらの症状の原因は、本件のマクロを実行する前に、"Test1.doc"を閲覧モードで表示して閉じた場合、本件マクロを実行すると"Test1.doc"が閲覧モードで開かれるのですが、閲覧モードでは文字検索を実行するとエラーが発生するのです。ですので、閲覧モードでは文字検索を実行してはいけません。

    そこで、「'in作業中 検索****」の直後、文字検索を実行する前に、次の1行を挿入して、表示モードを印刷レイアウトモードに変えてから文字検索を実行するようにします。

    wddoc.ActiveWindow.View = wdPrintView

    小生の症状と同じ原因であれば、これで問題は解決できるはずですが、どうでしょうか?

    2021年3月29日 3:17
  • 前略

    >1.C:\Test2019\Test1.doc が手動で開くかどうか確認して、結果を教えていただけませんか。(ワードファイルが壊れていたら、動かないのは当たり前ですので、確認です。)

    問題なく開けます。

    >2.sinko_74さんが困って悩んでいる最新のコードを、改めてアップしていただけませんか。

    多分何も変わらないと思います。今、混乱していますので後日掲載します。

    複数のコードを試していたので分からなくなっています。

    3.Windows10+Office2019_64bit ですよね。cpuは何でしょうか? ストレージはHDDでしょうか、SSDでしょうか? メモリの容量は?(環境のせいかもしれないとすれば、確認しておくに越したことはないと思いますので。)

    CPU;インテル®Corei7-8565Uプロセッサ-64Bit @ 1.80GHz  メモリ;8MG15.6Hard;1T

     以上


    2021年3月29日 9:13
  • 前略

    閲覧モードで開く意味が分らなくなりました。

    普通、編集モード以外は不要と思います。閲覧モードは、開いてみるだけでしすょね。

    2021年3月29日 9:18
  • 前略

    コードです。かなり余計な部分を削除しましたが、変わりありません。なお、プロシージャ名や対象ブックを変えていますが、それぞれ問題は無いです。

    Sub Test_練習Open2()
        Dim Tagdir As String, Tagbook As String
        Tagdir = "C:\Test2019\"
        Tagbook = "Test2.doc"
        CP_正しい語句検索2 Tagdir, Tagbook
    End Sub

    Public Sub CP_正しい語句検索2(ByVal Tagdir, ByVal Tagbook)
       Const wdWindowStateNormal = 0
        Const wdWindowStateMaximize = 1
        Const wdWindowStateMinimize = 2
        Const wdStory = 6
        Dim wdapp As Word.Application
        Dim wddoc As Word.Document
        Dim Sword As String
        Dim Fpath As String
        Dim waitTime As Variant

    'Inisial
        Sword = "in作業中"
        Fpath = Tagdir & Tagbook  'Openするドキュメントをパス名付きで設定する
    'ここでワードを開く
        Set wdapp = CreateObject("Word.Application")   '何もないWordが立ち上がる
        wdapp.Visible = True
        Set wddoc = wdapp.Documents.Open(Fpath)
    '見える化
        wdapp.Visible = True
        wdapp.Activate
        waitTime = Now + TimeValue("0:00:02")          'エラー回避のために1秒待つ設定
        Application.Wait waitTime

    'in作業中 検索****
        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
        wdapp.Visible = True
        wdapp.Activate

    '最大化
        wdapp.WindowState = wdWindowStateMaximize
        wdapp.Visible = True
        wdapp.Activate
        Set wddoc = Nothing
        Set wdapp = Nothing
    End Sub

    2021年3月29日 9:43
  • sinko_74さん、今晩は。

    逐一、ご回答を頂き、恐縮です。ありがとうございました。どうやら、パソコンのスペックは申し分ないように思います。

    やはり、表示モードの問題かと思います。

    しかし、小生がお示しした「wddoc.ActiveWindow.View = wdPrintView」は、その時は(Office2019_64bit)申し分なく動いていたのですが、今、Office2016ですが、動かすと、必ずしも万全ではなくて、最大表示出来たりエラーになったり(この場合は検索の段階でエラーが発生)して、原因と回避策を模索するのに時間がかかってしまいました。と言う訳で、ご返事が遅くなり、申し訳ありません。

    ネット上の情報では、あのような1行で良いような話なのですが、Office2016_32bitでは、うまくいかないので、次の様なちょっと数行にまたがるので冗長ではありますが、これを検索に関するコードの直前('in作業中 検索****の直前)に入れると、今のところ小生の環境ではうまくいきます。なお、waitTime~~waitTime の2行の〇秒待つ処理は必要ありません。なくても問題なく動きます。sinko_74さんのパソコンでも問題なく動くと思うのですが…。

        If wdapp.ActiveWindow.View.ReadingLayout = True Then
          wdapp.ActiveWindow.View.ReadingLayout = Not wdapp.ActiveWindow.View.ReadingLayout
        End If
        If wdapp.ActiveWindow.View.SplitSpecial = wdPaneNone Then
          wdapp.ActiveWindow.ActivePane.View.Type = wdPrintView
        Else
          wdapp.ActiveWindow.View.Type = wdPrintView
        End If

    それから、ワードの定数については、以前、別途定義しないといけない旨ご教示したところですが、本日、エクセル上で、特にConstで定義しないで wdWindowStateMinimize とか wdPrintView とかの値をMsgBoxで表示させたところ、きちんと値が表示されました。ちょっと、小生も混乱しております。以前も MicrosoftWord16.0ObjectLibrary を参照設定していて別途Constで定義が必要と判断したのでしたが、どうやら小生の勘違いで、参照設定してあれば別途定義する必要はないようです。以前、異なるバージョンのOfficeがインストールされているパソコンで使う際に参照設定を変更しなくても動くように対応したことを、誤って記憶してしまっていたようです。大変失礼しました。sinko_74さんも、Constで定義せずにエクセルのVBE上で「MsgBox wdPrintView」というコードを実行して、値が表示されるかどうか確認してください。なお、念のため、以下に別途定義する場合の定数の値のコードを記しておきます。

        Const wdPrintView = 3
        Const wdPaneNone = 0

    これでsinko_74さんの全面表示問題が解決すればよいのですが。


    2021年3月29日 12:37