[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.