• ベストアンサー

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

Word2007でファイルを開いたときに文末に飛ぶにはどういうマクロを書けばいいのでしょうか? Word2002まではAutoOpenという名前のマクロに Selection.EndKey Unit:=wdStory と書くだけだったのですが、このマクロではWord2007では一度 文末までいってまた最初に戻ってきてしまいます??? ご教授よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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 で、保存してしまってください。

Jhonny99
質問者

お礼

ありがとうございます!! できました! Wordでマクロを使うことは無いので勉強不足で。。。助かりました。 ありがとうございました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 割り込み失礼します。 >調査中とあるので、マイクロソフトに早く対応してほしいなあ。 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
質問者

お礼

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 これらもどこに書くのでしょうか? すみません。ご教授いただけると助かります。

回答No.1

Word2007を使用していないので対処方法を示せませんが、参考情報だけ 載せておきます。 Word マクロ有効文書 (.docm) 形式の Word 文書を開くときに Open イベントの Bookmarks.Select で指定したページが表示されない http://support.microsoft.com/kb/942482/ja おそらく、これと同じことが文末へのジャンプで起きているのではない かと思います。

Jhonny99
質問者

お礼

enunokokoroさま ありがとうございます。 おそらくこれと同じ症状だと思います。 文頭に戻るとあるので。 このマクロ、私には難しすぎて手が出ませんでした。 ここにあるということはバグの一種なんですね。 調査中とあるので、マイクロソフトに早く対応してほしいなあ。

関連するQ&A

  • WORDのマクロについて質問です

    WORDのマクロで質問です。 WORDでテキストファイルを読み込み、整形する作業があるのですが、 テキストファイルの行数を判断して、その回数だけマクロを実行さ せるようにするには、どうすればよいのでしょうか。 具体的には、 Sub 整形() Selection.Delete Unit:=wdCharacter, Count:=1 Selection.Delete Unit:=wdCharacter, Count:=1 Selection.Delete Unit:=wdCharacter, Count:=1 Selection.MoveRight Unit:=wdCharacter, Count:=5 Selection.TypeText Text:=" " Selection.MoveDown Unit:=wdLine, Count:=1 Selection.MoveLeft Unit:=wdCharacter, Count:=8 End Sub この作業を行数分だけ行うマクロを作成したいのですが、Webで調べて みても、ピンと来るものが見つかりませんでした。 どうかお助けください。

  • Wordのマクロの繰り返しと停止

    Wordで"XX"の場所に"★"の後にある文字列を挿入、という以下のマクロを記録したのですが、この作業を★がなくなるまで繰り返したいと思っております。どのように記入すればよいでようか? Selection.HomeKey Unit:=wdStory Selection.Find.ClearFormatting With Selection.Find .Text = "★" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = False End With Selection.Find.Execute Selection.Delete Unit:=wdCharacter, Count:=1 Selection.Delete Unit:=wdCharacter, Count:=1 Selection.EndKey Unit:=wdLine, Extend:=wdExtend Selection.Cut Selection.HomeKey Unit:=wdStory Selection.Find.ClearFormatting With Selection.Find .Text = "XX" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = False End With Selection.Find.Execute Selection.Paste Selection.TypeBackspace End Sub

  • ワード2002で「 Selection.ShapeRange.Left 」 が設定できない

    こんにちは。 OSはWinXP Pro、OfficeXPを使用しています。 1ページ目にあるグループ化された図形をページを 追加して貼り付けていくマクロを以前質問したので すが、ShapeRange.Leftの代入がうまくいきません。 ******************************************** Sub 図形追加() Dim siTop As Single Dim siLeft As Single Selection.HomeKey unit:=wdStory ActiveDocument.Shapes("Group 1478").Select siTop = Selection.ShapeRange.Top siLeft = Selection.ShapeRange.Left Selection.Copy Selection.EndKey unit:=wdStory Selection.InsertBreak Type:=wdPageBreak Selection.GoTo What:=wdGoToPage, _ Which:=wdGoToNext Selection.Paste Selection.ShapeRange.Top = siTop Selection.ShapeRange.Left = siLeft Selection.HomeKey unit:=wdLine End Sub ******************************************** 上述の値を追っていくと、 siTop=40.25、siLeft=46が入っているのですが、 下から2段目のShaperange.Leftを実行すると そこには-785.05 という数値が入ってしまいます。 (どこからその数値がでてきたのか????) Shaperange.Topはうまくいくのですが、ステートメント の実行順を変えてもうまくいきません。 どなたか解決策のご教授をお願いします。

  • Wordを開いたとき文末を表示したい

    Wordで日記を書いていますが、続きを書くためファイルを開くと文頭が表示されます。このため、CtrlキーとEndキーを押して文末を表示しています。 ファイルを開いたとき文末を表示することは出来ませんか。 よろしくお願いします。

  • Word:文書ファイルを開くたび、末尾に自動的に日付を挿入したい

    ご覧いただきありがとうございます。 Wordでマクロを使い、文書ファイルを開くたびにカーソルが文書末尾に飛んで、その位置にファイルを開いた日の日付が挿入されるようにしたいと思っています(Windows付属のメモ帳で、先頭行に.LOGと書いたファイルを編集するときのようなイメージです)。 Webで調べたところ、カーソルを末尾に飛ばすには、ThisDocumentに  Private Sub Document_Open()   Selection.EndKey Unit:=wdStory  End Sub と登録すればよいことがわかりました。また、手動でマクロを呼び出して日付を挿入するなら、  Private Sub AddFieldAsConst(Field As String)   With Selection    .Fields.Add(Range:=.Range, Type:=wdFieldEmpty, Text:=Field).Unlink   End With  End Sub  Public Sub AddDate()   AddFieldAsConst "TIME \@ ""ggge年M月d日(aaa)"" "  End Sub というコードを標準モジュールに登録すればよいということもわかりました。 しかし、これらのコードをどのようにいじれば日付の挿入が自動で行われるのかがわかりません。 どなたかおわかりになられる方、ご教授よろしくお願いいたします。 なお、OSおよびソフトのバージョンは、WindowsXP + Word2002です。

  • Wordの文章中の一致した文字のある段落を削除する

    MS-Wordの文章を検索して行頭に一致した文字がある段落を削除するマクロを作りたいと思いチャレンジしています。 たとえば,文章を頭から順に検索して,行頭にある文字が検索文字と一致した場合,その段落を削除して,次の行を検索し続け,文書が終わったら終了するようなマクロです。 小生,WordVBAを2日ほど前から学び始めたばかりで,ネットや参考書を探しまして,"@"マークが行頭にある段落を削除するというサンプルを作るところまでは何とかできたのですが,これを文章全体に一括して実行できるマクロにするにはどうすればよいかに手こずっています。 このマクロがあると仕事の効率がぐんとアップしますので,何とかしたいと思っています。 是非ご教いただければ大変ありがたく思います。 <サンプル> Sub test_DeleteParagraph() Selection.HomeKey Unit:=wdStory, Extend:=wdMove With Selection.Find .Forward = True .ClearFormatting .MatchWholeWord = True .MatchCase = False .Wrap = wdFindContinue If .Execute(FindText:="@", Forward:=True, Format:=True) = True Then Selection.HomeKey Unit:=wdLine, Extend:=wdMove Selection.MoveDown Unit:=wdParagraph, Extend:=wdExtend lVal = Selection End If Selection.Delete End With Selection.Find.ClearFormatting End Sub

  • Wordで脚注を文末注に

    Wordのファイルをセクション区切りして、縦置き(テキスト)のあとに横置き(図表)の文書を入れています テキスト文書に脚注を入れて文末注に変換すると、注が横置きファイルの最後(文書全体の最後)に表示されます 文末注を縦置きファイルの最後(横置きファイルの直前)に表示させることは可能でしょうか

  • ワードで文書を結合しようとすると”描画オブジェクトを(中略)脚注、文末脚注に挿入することはできません”と表示される

    よろしくお願いします。 ワード2000を使っています。 ワードの複数のファイルを、 挿入⇒ファイル でファイルを選び結合しようとしているのですが、 最後に文末脚注がついている文書を改ページして上記の 作業をしたところ、 ”描画オブジェクトを、テキストボックス、吹き出し、コメント、脚注、文末脚注、またはマクロに挿入することはできません” と表示されます。 最後に文末脚注がある文書を改ページすると、ページの一番 上に横線が表示される状態になります。 どうすれば挿入⇒ファイルから結合できるようになるでしょうか? 教えてください。 よろしくお願いします。

  • docxファイルを開くと文頭文末に改行が入る

    ワード2016です。 ワードを立ち上げて開くと正しく開けるのですが、ファイルをWクリックで開くとなぜか文頭文末に改行が入り、ページ構成が狂ってしまいます。 Wクリックでも正しく開けるようにはどうすればいいでしょうか?

  • Wordファイルから別Wordファイルのマクロを起動したい

    Word2003でマクロを作成しました。 WordファイルAにはマクロを保存したくないので、 WordファイルBに保存しています。 このマクロをWordファイルAから起動したいのですができません。 WordファイルAを開き「マクロの実行」ダイアログボックスから WordファイルB内のマクロを選択して 「実行」ボタンを押して実行したいのですが、 一覧にマクロ名が表示されないのです。 Excelの場合は、ExcelファイルAからExcelファイルBのマクロを 呼び出すことができるのですが、 (例えばブック名!モジュール名.マクロ名) Wordではできないのでしょうか? 何か設定が必要でしょうか? ご存知の方がいらっしゃいましたら、 よろしくお願いいたします。

専門家に質問してみよう