アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

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

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

A 回答 (3件)

こんばんは。



>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 で、保存してしまってください。
    • good
    • 0
この回答へのお礼

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

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

ありがとうございました。

お礼日時:2007/10/22 22:25

こんばんは。



割り込み失礼します。

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

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
    • good
    • 0
この回答へのお礼

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

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


載せておきます。

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

おそらく、これと同じことが文末へのジャンプで起きているのではない
かと思います。
    • good
    • 0
この回答へのお礼

enunokokoroさま

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

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

ここにあるということはバグの一種なんですね。
調査中とあるので、マイクロソフトに早く対応してほしいなあ。

お礼日時:2007/10/22 13:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています