[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Ecel からワードドキュメントを開くとき』(Sinko)
前略
始めましてご指導お願いします。
ExcelのVBAでワードドキュメントを開くコードを書きました。
コードは必要ならば次回掲載します。
Windows7,つまりOffice2007まではドキュメントを編集モードで開いたところ,ドキュメントが画面全体に開きます/開きました。全画面です。しかし、Windows10つまり、Office2019;64ビットではドキュメントのアイコンがタスクトレイに表示されるまでで、それ以上発展しません。
これは私の考えですが、32ビットまでは開いて最大化されるが、64ビットでは、それができない。という結論に至りましたが、これは間違いでしょうか。もし私の想定が、間違っていたら、次回コードを掲載しますので、修正していただければ。うれしいです。。
以上
< 使用 アプリ:2000及び2007、使用 OS:Windows7XpWindows7及びWindows10 >
(マナ) 2021/03/07(日) 08:43
Sub test()
With CreateObject("word.application") .Visible = True MsgBox .WindowState .Activate End With
End Sub
(マナ) 2021/03/07(日) 22:23
ということは、ワードは最大化された状態のはずですが、
期待する結果は、こういうことでは違うのですか?
>アイコンがタスクトレイに表示されるまでで、それ以上発展しません。
発展しません の意味がわからないので、コードを見せてください
(マナ) 2021/03/08(月) 16:59
Option Explicit Sub Test_練習Open() Dim Tagdir As String, Tagbook As String
Tagdir = "C:\Test2019\" Tagbook = "Test1.doc" CP_正しい語句検索 Tagdir, Tagbook End Sub Public Sub CP_正しい語句検索(ByVal Tagdir, ByVal Tagbook) Const wdWindowStateNormal = 0 Const wdWindowStateMaximize = 1 Const wdWindowStateMinimize = 2 Const wdStory = 6
Dim wdapp As Word.Application Dim wddoc As Word.Document Dim Sword As String Dim Fpath As String Dim waitTime As Variant
'Inisial
Sword = "in作業中" Fpath = Tagdir & Tagbook 'Openするドキュメントをパス名付きで設定する waitTime = Now + TimeValue("0:00:01") 'エラー回避のために1秒待つ設定
'ここでワードを開く
Set wdapp = CreateObject("Word.Application") '何もないWordが立ち上がる wdapp.Visible = True
Set wddoc = wdapp.Documents.Open(Fpath)
'見える化
Application.Wait waitTime '1秒後経過(待つ) wdapp.Visible = True wdapp.Activate Application.Wait waitTime '1秒後経過(待つ) 'in作業中 検索**** With wdapp .Selection.Find.ClearFormatting .Selection.HomeKey Unit:=wdStory ' 検索する方向文末方向 .Selection.Find.Text = Sword ' 検索するキーワードを指定する .Selection.Find.Forward = True If .Selection.Find.Execute Then '見つかったらここでならないけれど全画面です With .Selection End With Else End If End With wdapp.Visible = True wdapp.Activate
'最大化
If wdapp.WindowState = wdWindowStateMinimize Then wdapp.WindowState = wdWindowStateMaximize ElseIf wdapp.WindowState = wdWindowStateNormal Then wdapp.WindowState = wdWindowStateMaximize Else wdapp.WindowState = wdWindowStateMaximize End If Application.Wait waitTime '1秒後経過(待つ) wdapp.WindowState = wdWindowStateMaximize wdapp.Visible = True wdapp.Activate
Set wddoc = Nothing Set wdapp = Nothing End Sub
(Sinko) 2021/03/08(月) 21:14
Option Explicit
Sub Test_練習Open() Dim Tagdir As String, Tagbook As String Dim Sword As String
Tagdir = "C:\Test2019\" Tagbook = "Test1.doc" Sword = "in作業中"
CP_正しい語句検索 Tagdir & Tagbook, Sword
End Sub
Private Sub CP_正しい語句検索(ByVal Fpath As String, ByVal Sword As String) Const wdWindowStateMaximize = 1 Dim wdapp As Object Dim wdrng As Object
Set wdapp = CreateObject("Word.Application") wdapp.Visible = True Set wdrng = wdapp.Documents.Open(Fpath).Content
With wdrng.Find .ClearFormatting .Text = Sword If .Execute Then
End If End With
wdapp.Activate wdapp.WindowState = wdWindowStateMaximize
Set wdrng = Nothing Set wdapp = Nothing
End Sub
(マナ) 2021/03/08(月) 22:20
(Sinko) 2021/03/09(火) 14:08
全画面表示とは、最大化ではなく
↓のことでしょうか。
https://docs.microsoft.com/ja-jp/office/vba/api/word.view.fullscreen
(Sinko) 2021/03/08(月) 21:14 のコードには
それに相当するものがないので違うとは思いますが
念のため確認します。
(マナ) 2021/03/09(火) 17:24
Sub test() With CreateObject("word.application") .Visible = True .Activate End With End Sub
(マナ) 2021/03/09(火) 21:39
Sub test2() With CreateObject("word.application") .Visible = True .documents.Add .Activate End With End Sub
Sub test3() With CreateObject("word.application") .Visible = True .documents.Open "C:\Test2019\Test1.doc" .Activate End With End Sub
(マナ) 2021/03/09(火) 21:49
Sub test4() With CreateObject("word.application") .Visible = True AppActivate .Caption End With End Sub
(マナ) 2021/03/09(火) 23:51
「Wordがアイコン化したまま開かない」でネット検索して得られる記事が、
参考になりませんか?
コードの問題というより、環境面の問題かもしれませんね。
https://docs.microsoft.com/ja-jp/office/troubleshoot/word/issues-when-start-or-use-word
(γ) 2021/03/10(水) 18:27
Sub test5() Dim wd As Object Dim p As String Dim s As String
p = "C:\Test2019\Test1.doc" s = "in作業中"
CreateObject("wscript.shell") .Run """" & p & """", 3
Do While wd Is Nothing Application.Wait Now + TimeSerial(0, 0, 1) On Error Resume Next Set wd = GetObject(, "word.application") On Error GoTo 0 Loop
wd.Selection.Find.Execute findtext:=s
End Sub
(マナ) 2021/03/10(水) 20:54
前略
ご指摘のサイトの内容は現象としては同じと思います。しかし、そこでのご指導の内容は私には
再現できませんでした。多分、このことをコードに盛り込めばよいと思いまがそれが、できません。
環境ですか、確かにその様な気がいたします。
ただ、VBAの参照設定であれな、VBAから指示なり指摘がありますよね。
それで私が最初に申し上げました,32ビットと64ビットの違いでできないのかなと思いました。
それに、このコードをF8によるステップ バイ ステップで行えば、希望通りの最大化します。
さらに、一度、最大化すれば、それ以降は、コードをフォームボタンから行っても必ず最大化します。
しかし、Excelを一度閉じてしまえば、やはりもう最大化しません。
また、環境と言われれば、気になることがあります。
実は、このブックの親ブック呼び出しブックはWSHによりデスクトップから起動しています。
理由は以前のバージョンではセキュリティ上開く時点で忠告が出るからです。
Excel2019では親ブックのショートカットをデスクトップに直接置いて開いてもセキュリテイの
忠告が出ません。それで、親ブックのショートカットを直接デスクトップに置き、そこから起動して
みましたが、全く関係ないようで、希望通りのことが実現できません。
以上
(Sinko) 2021/03/11(木) 15:00
今回の色々なテストと関係ある話ですか?
(γ) 2021/03/11(木) 17:27
https://koroko.hatenablog.com/entry/2019/11/10/191337
(N) 2021/05/10(月) 16:30
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.