下記のVBA【2】のコードでエラーが出なくなるようにする方法を教えてください。


【1】操作をマクロ登録し、ツールバーにボタンを置いて使用。正常動作。
Sub Macro1()
' Macro1 Macro
' 幅を100%にする
ActiveWindow.ActivePane.View.Zoom.PageFit = wdPageFitBestFit
End Sub

【2】ファイルを開いたとき自動で実行されるが、エラーが出る。
Private Sub Document_Open()
ActiveWindow.ActivePane.View.Zoom.PageFit = wdPageFitBestFit
End Sub
実行時エラー '91':
オブジェクト変数または With ブロック変数が設定されていません。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/01/18 14:45:01
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kodairabase No.2

回答回数661ベストアンサー獲得回数80

ポイント400pt

以下のようにしてみてください。

Private Sub Document_Open()
    With ActiveDocument.ActiveWindow
        .ActivePane.View.Zoom.PageFit = wdPageFitBestFit
    End With 
End Sub
id:sample2

できました! ありがとうございます!

2012/01/18 14:44:07

その他の回答1件)

id:taroe No.1

回答回数1099ベストアンサー獲得回数132

ポイント100pt

http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200607/06070012.txt
おそらく、この問題と同じだと思います。

ファイルを開いたときに、
ActiveWindow.ActivePaneが不定になるためエラーになります。
ファイルを開いたときというのは自身を開くときなので、環境によってはエラーになるのかもしれません。

明示的にオブジェクトを指定してください。

id:sample2

ありがとうございます。リンク先を読んでみましたが、私にはわかりませんでした。

2012/01/18 14:51:20
id:kodairabase No.2

回答回数661ベストアンサー獲得回数80ここでベストアンサー

ポイント400pt

以下のようにしてみてください。

Private Sub Document_Open()
    With ActiveDocument.ActiveWindow
        .ActivePane.View.Zoom.PageFit = wdPageFitBestFit
    End With 
End Sub
id:sample2

できました! ありがとうございます!

2012/01/18 14:44:07
  • id:taknt
    環境は office2000 Wordですね。

    私の環境は 2003・・・と書いたところで 2000の環境があったのを思い出したので 試してます。

    2003では エラーになりませんでした。

  • id:taknt
    別のマシン(2000)の環境で試しましたが、エラーは 発生しませんでした。

    ほかの要因のような感じがします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません