エクセルのマクロの超初心者です。
今、こんな事をしたくていろいろ調べながら遣っていますが、上手くいきません。どなたか方法を教えて下さい。
ド素人ですので出来るだけ簡単な方法がありがたいです。
1.エクセルシート上の”釦”を押すと指定したワードの文書を開く。
2.開いたワード文書は”閲覧レイアウト”に自動的に変更して表示。
今、エクセルから、ワードの文書は開けるようになりましたが、
次のワード側で表示を自動的に”閲覧レイアウト”に変更出来ません。
ワード側(または、エクセル側)でマクロをどんな風に記述すれば良い
のか、ご教授を宜しくお願いします。
No.1ベストアンサー
- 回答日時:
Wordにもマクロ記録がありますからそれが参考になるはずです。
それとWordVBAの[ReadingLayout プロパティ]のヘルプを確認してください。
>今、エクセルから、ワードの文書は開けるようになりました...
どういうコードか不明ですが、簡易なサンプルで
With GetObject("C:\temp\test.doc")
.Application.Visible = True
.ActiveWindow.View.ReadingLayout = True
End With
この回答への補足
end-u様
早速のご回答をありがとうございました。
ご教示の通り、ワード側のマクロ記録で作成しました。
このマクロを実行すると”閲覧レイアウト”に変更が出来ます。
が、出来ればこの操作を手動でするのではなく、エクセルから、
ワードの文書を開いたとき自動でやりたいのですが・・・。
このマクロを自動で実行するのは可能でしょうか。
Sub 閲覧レイアウトに変える()
Set wrd = CreateObject("Word.Application")
Documents("ワードの文書.doc").Activate
ActiveWindow.View.ReadingLayout = Not ActiveWindow.View.ReadingLayout
End Sub
No.2
- 回答日時:
ExcelVBAからWordでdocファイルをOpenするところからで良いのですよね?
先に書いたのはExcelVBAだったんですが、追加もしておきます。
"ワードの文書.doc"が、(例えば)"C:\documents"というフォルダに保存されている場合、
Sub test1()
With GetObject("C:\documents\ワードの文書.doc")
.Application.Visible = True
.ActiveWindow.View.ReadingLayout = True
End With
End Sub
Sub test2()
Dim wrd As Object
Set wrd = CreateObject("Word.Application")
wrd.Visible = True
With wrd.Documents.Open("C:\documents\ワードの文書.doc")
.Windows(1).View.ReadingLayout = True
End With
Set wrd = Nothing
End Sub
...な感じでどうでしょうね。
すでにWordが起動中だった場合、test1のGetObjectで開くと既存Wordのプロセスで開きます。
起動していなければ起動して開きます。(関連付けされてれば)
test2のCreateObjectで開くと起動の有無に関わらず、Wordを新規プロセスで起動して開きます。
もしtest1がうまくいかなくて、「起動中のWordで開きたい、起動してない場合は起動させたい」場合は
Sub test3()
Dim wrd As Object
On Error Resume Next
Set wrd = GetObject(, "Word.Application")
On Error GoTo 0
If wrd Is Nothing Then
Set wrd = CreateObject("Word.Application")
End If
wrd.Visible = True
With wrd.Documents.Open("C:\documents\ワードの文書.doc")
.Windows(1).View.ReadingLayout = True
End With
Set wrd = Nothing
End Sub
こんな感じでどうでしょうか。
ExcelVBA側からWordを操作したい場合は"Word.Application"をObject型変数に格納して、
その変数内で処理をするようにすれば良いです。
WordVBA特有の文字列定数を使いたい場合は[ツール]-[参照設定]で
Microsoft Word XX.X Object Library
を参照追加すれば良いです。
end-u様
ありがとうございました。
早速test1で試して見ましたところ
思い通りの結果を得る事が出来ました。
test1で充分ですが、test2、test3もやって見て
勉強させていただきます。
ありがとうございました。
超初心者に対してご親切なご指導を感謝します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- Word(ワード) Microsoft Word2023で、修正箇所を表示させたい 1 2023/02/09 10:07
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/22 11:43
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/21 16:01
- その他(Microsoft Office) EXCEL2007 右クリックに「値を貼り付け」がない プライベートのパソコンを購入し(window 3 2022/04/13 23:10
- PDF ワードで作った文書のPDF化 5 2023/04/10 16:56
- Word(ワード) ワードの文書を開き、校閲→全ての変更履歴/コメント をすると過去の修正履歴が全部出てきます。 校閲→ 2 2022/11/08 22:36
- Excel(エクセル) エクセルの数式で教えてください。 3 2023/04/17 09:25
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Word(ワード) 差し込み印刷 4 2022/07/19 20:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アウトルックが起動しているか...
-
リムーバブルディスクのフォー...
-
VBAでOutlookを終了させたい Ex...
-
Internet Explorer にURLを引...
-
VBSから別のVBS起動するとき変...
-
Windows上のプログラム。「予め...
-
wordのマクロからexcelの起動
-
WinSCPで画像のように puttyを...
-
VBで別のプログラムを起動し他...
-
ダブルコーテーションで3度も...
-
キー操作 (WSH:コピー&ペー...
-
フォームの最前面が効かない
-
Internet ExplorerをC言語プロ...
-
別アプリの起動、終了について
-
VB6で呼び出し元の情報を取得す...
-
Shellで起動したプログラムのウ...
-
VBSで起動したアプリが前面表示...
-
exeファイルを実行するとすぐに...
-
VBAでSeleniumからChromeを起動...
-
vba 時間の引き算 例えば 15:00...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アウトルックが起動しているか...
-
VBAでOutlookを終了させたい Ex...
-
VBSから別のVBS起動するとき変...
-
Windows上のプログラム。「予め...
-
VBSで起動したアプリが前面表示...
-
VBで実行中のEXEファイルの情報...
-
キー操作 (WSH:コピー&ペー...
-
EXCEL VBAから他アプリケーショ...
-
Process.Startで起動したアプリ...
-
VBAでSeleniumからChromeを起動...
-
64bitで作ったEXEを32bitで起動...
-
ACCESS VBAで別のACCESS(mdb)を...
-
「FindWindow」、ウィンドウハ...
-
VBAでIEが起動しているか...
-
Shellで起動したプログラムのウ...
-
VBSでExcelのUserFormをエクス...
-
Vba アプリケーションが立ち上...
-
exeファイルを実行するとすぐに...
-
フォームの最前面が効かない
-
別アプリの起動、終了について
おすすめ情報