プロが教える店舗&オフィスのセキュリティ対策術

ExcelのVBAでWordを読み取り専用で開いて、見たいページに自動で移動する方法を教えて頂きたいです。

読み取り専用じゃなければページ移動できるんですが、読み取り専用で開くとWordにカーソルが乗らないため?ページ移動できないようです。

A 回答 (4件)

こんにちは。



Excel VBA から Word で指定した文書を読み取り専用で開いて、3ページ目に移動するサンプルです。今回はレイトバインドでサンプル書いてます。

Sub sampleProc()

  '参照設定してないので WORD の組み込み定数
  Const wdGotoPage As Long = 1
  Const wdGoToFirst As Long = 1

  Dim wd_app As Object 'Word.Application
  Dim wd_doc As Object 'Word.Document

  'Word を起動して表示
  Set wd_app = CreateObject("Word.Application")
  wd_app.Visible = True

  '文書を読み取り専用で開く
  Set wd_doc = wd_app.Documents.Open(FileName:="C:\temp\test.docx", _
                    ReadOnly:=True)
  '3ページ目へ移動
  wd_doc.Parent.Selection.GoTo What:=wdGotoPage, _
                 Which:=wdGoToFirst, _
                 Count:=3
  'Wordにフォーカスを移す
  wd_app.Activate

  '後始末
  Set wd_doc = Nothing
  Set wd_app = Nothing

End Sub
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
書いていただいた内容でできました!

何がだめだったのか会社のPCで確認してみます。
両方の質問に答えて頂き、とても助かりました!お陰様でなんとかなりそうです。

お礼日時:2022/07/28 01:08

こんにちは



WordのVBAは全く存じませんけれど・・

試してみたところ、ScrollIntoView メソッドを利用すれば問題なく表示できるようです。
(該当ページの先頭を探す必要がありますけれど)

https://docs.microsoft.com/ja-jp/office/vba/api/ …
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
そういったメソッドもあるんですね!
参考にさせて頂きます。

お礼日時:2022/07/28 01:06

こんにちは。



>読み取り専用じゃなければページ移動できる

差し支え無ければ、現状のソースを見せて下さい。
    • good
    • 1
この回答へのお礼

ありがとうございます。

お礼日時:2022/07/28 01:09

こんにちは。



直接の回答ではありませんが、自分のPCにそのwordをVBAでコピーして、
そのコピーしたwordを普通に開くでは、ダメなのでしょうか?
読み取り専用だと、wordは編集しないと思いますし、Excelから文字などを
取り込みたい?という事かと思いましたので。
    • good
    • 2
この回答へのお礼

回答ありがとうございます!
元のファイルを不要に弄らないようにしたかったので確かにその手もありますね!

お礼日時:2022/07/28 01:04

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

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


このQ&Aを見た人がよく見るQ&A