• ベストアンサー
  • 困ってます

Word2007でファイルを開いたときに文末に飛ぶには

  • 質問No.3450741
  • 閲覧数546
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 84% (11/13)

Word2007でファイルを開いたときに文末に飛ぶにはどういうマクロを書けばいいのでしょうか?

Word2002まではAutoOpenという名前のマクロに
Selection.EndKey Unit:=wdStory
と書くだけだったのですが、このマクロではWord2007では一度
文末までいってまた最初に戻ってきてしまいます???

ご教授よろしくお願いします。

質問者が選んだベストアンサー

  • 回答No.3
  • ベストアンサー

ベストアンサー率 57% (3570/6233)

こんばんは。

>Microsoft Word Object
>の中にはThis Documentという欄があります。
>標準モジュールは普段マクロを書くのに使っている場所ですよね。

Wordの場合は、Excelのように、基本的に、それほど多く、標準モジュールを使うことはありません。使っていけないようなことはありませんが、多少の使い分けはあります。それぞれには、特色があって、ThisDocument というのは、そのファイルの玄関のようなものです。言い換えると、開いたときに、一番先に、対応するものです。

Dim myClass As New Class1
Private Sub Document_Open()
  Set myClass.objApp = Application
End Sub

は、This Document に書くものです。


標準モジュールに書くと、

Dim myClass As New Class1
Sub Auto_Open()
  Set myClass.objApp = Application
End Sub

となります。多少、違いはあります。今まであったものは、削除してください。どちらに書いてもかまいませんが、どちらかというと、This Document のほうが反応が速いはずです。

>Class1というのは

メニューから、挿入-クラスモジュールです。
画面(ペイン)が出てきますから、そこに貼り付けてください。
貼り付け終わったら、Ctrl+ S で、保存してしまってください。
お礼コメント
Jhonny99

お礼率 84% (11/13)

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

Wordでマクロを使うことは無いので勉強不足で。。。助かりました。

ありがとうございました。
投稿日時:2007/10/22 22:25

その他の回答 (全2件)

  • 回答No.2

ベストアンサー率 57% (3570/6233)

こんばんは。

割り込み失礼します。

>調査中とあるので、マイクロソフトに早く対応してほしいなあ。

enunokokoroさんのご紹介になった文面は、英語情報がないようですね。それは、日本版だけなのかな?とりあえず、Classイベントに書き換えてみました。いずれ、マクロはこういうスタイルになるのは間違いないのですが……。人によっては、すごく難しくなったように感じるでしょうね。

ジャンプが一回きりでよければ、下のようにすればよいです。
MSのサポートの内容は、Activate を含めているので、ややこしい内容になっています。


'VBEから挿入 Class1

Public WithEvents objApp As Application

Private Sub objApp_DocumentOpen(ByVal Doc As Document)
'  On Error Resume Next ''エラーが発生したら、ここと下をはずしてください。
  Selection.EndKey Unit:=wdStory
'  On Error GoTo 0
End Sub

'------------------------------------------
'ThisDocument
Dim myClass As New Class1

Private Sub Document_Open()
  Set myClass.objApp = Application
End Sub
お礼コメント
Jhonny99

お礼率 84% (11/13)

Wendy02さま

回答ありがとうございます。
すみません。VBがそれほど詳しくなく、普段は
Subプロジージャでセルや行列に対して加工しているレベルです。

'VBEから挿入 Class1

Public WithEvents objApp As Application

まず、この2文がよくわかりません。

Class1というのはどこに作るのですか?
プロジェクトには
Microsoft Word Object

標準モジュール

参照設定
の3つがあり、
Microsoft Word Object
の中にはThis Documentという欄があります。
標準モジュールは普段マクロを書くのに使っている場所ですよね。

あと
Private Sub objApp_DocumentOpen(ByVal Doc As Document)
'  On Error Resume Next ''エラーが発生したら、ここと下をはずしてください。
  Selection.EndKey Unit:=wdStory
'  On Error GoTo 0
End Sub

'------------------------------------------
'ThisDocument
Dim myClass As New Class1

Private Sub Document_Open()
  Set myClass.objApp = Application
End Sub

これらもどこに書くのでしょうか?

すみません。ご教授いただけると助かります。
投稿日時:2007/10/22 20:43
  • 回答No.1

ベストアンサー率 74% (3543/4732)

Word2007を使用していないので対処方法を示せませんが、参考情報だけ
載せておきます。

Word マクロ有効文書 (.docm) 形式の Word 文書を開くときに Open
イベントの Bookmarks.Select で指定したページが表示されない
http://support.microsoft.com/kb/942482/ja

おそらく、これと同じことが文末へのジャンプで起きているのではない
かと思います。
お礼コメント
Jhonny99

お礼率 84% (11/13)

enunokokoroさま

ありがとうございます。
おそらくこれと同じ症状だと思います。
文頭に戻るとあるので。

このマクロ、私には難しすぎて手が出ませんでした。

ここにあるということはバグの一種なんですね。
調査中とあるので、マイクロソフトに早く対応してほしいなあ。
投稿日時:2007/10/22 13:30
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ