
No.1ベストアンサー
- 回答日時:
試してください。
(例)
Dim wdapp As Object
Dim wddoc As Object
Dim wdpath As String
Dim wdname As String
wdname = "abc.docx"
On Error Resume Next
Set wdapp = GetObject(, "Word.Application")
Set wddoc = wdapp.Documents(wdname)
On Error GoTo 0
If wddoc Is Nothing Then Set wdapp = Nothing: Exit Sub
wdpath = wddoc.FullName
wddoc.Save
wddoc.Close
wdapp.Documents.Open FileName:=wdpath, ReadOnly:=False
Set wdapp = Nothing: Set wddoc = Nothing
この回答への補足
素早いご対応ありがとうございます。
試してみたのですが、
なぜか開いていても、なくてもExit Subで終了してしまいます。。。
wordデータのディレクトリはエクセルとは違う場所なんですが、それが原因なんでしょうか?
ちなみにExcelは2003、VBAは6.5です。
自分でも調べてみます。
No.3
- 回答日時:
立ち上げているワード(WINWORD)が一つだけなら
#1 さんの考えの方向で良いかと思いますが、
複数のWINWORDを立ち上げている場合には
GetObject は一つのインスタンスしか返しません。
http://support.microsoft.com/kb/288902/ja
タスクマネージャのプロセスタブで見た時に
一番目のWINWORD
二番目のWINWORD
が有った時に二番目が欲しくても一番目が消えてくれないことには
二番目をGetできません。
Getobject(,"word.application") で欲しい方が得られたらラッキーです。
すべてのWINWORDを閉じるのなら比較的簡単に出来るでしょうけど
開いているかもしれないワードファイルを狙い撃ちして
保存・終了するのは、APIを駆使してやることになるので
大変だと思います(私にはそこまでのスキルは有りません)。
開いていたら警告するだけでしたら
ファイルを同名でリネームしてそのエラー内容によって判断すれば・・と思います。
Name "e:\あのワード.doc" as "e:\あのワード.doc"
エラーが返ってこなければ誰も使用していません。
ファイルを開いていた時に
当方のWindows7 & Office2010 では
『実行時エラー75 パス名が無効です』
不適切・不親切なエラーメッセージが出ました。
ファイルが無い・Pathが間違っている場合などにはチャンと
エラー53 ファイルが見つかりません
となるのですけどねー。
ありがとうございます!
教えていただいた内容を取り入れ、しっかり動くようになりました!
リネームで判断する方法は知らなかったので
勉強になりました!
ありがとうございます!
No.2
- 回答日時:
>No.1 この回答への補足
補足になっていません。
どんな状況で動かしましたか?
Wordドキュメントは開いていますか?
取りあえず
abc.docx
としていますが
正しい名前に書き変えましたか?
回答したコードそのままで動かしましたか?
一部書き換えましたか?
テストするときは
On Error Resume Next
を外してテストしてみてください。
エラーが出たら内容と発生行を教えてください。
返信が遅くなりすいませんでした。
そして、無事に動くことができました。
私のミスでした。
wordの拡張子が.docと.docxで違っていた為、
開いていても、閉じていても終了していました。
本当に申し訳ありません!!
ありがとうございました!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
EXCELのVBAでWORDが開いてあるかチェック
Excel(エクセル)
-
ExcelのVBAでWordを読み取り専用で開いて、見たいページに自動で移動する方法を教えて頂きたい
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
Access VBA [リモートサーバーがないか使用できる状態ではありません]
Access(アクセス)
-
5
CreateObjectとGetObjectの違い
Excel(エクセル)
-
6
ワードからエクセルへ貼り付けるマクロ
Excel(エクセル)
-
7
【VBA】エクセルの指定セルの値を、Wordの指定場所に貼る方法
Excel(エクセル)
-
8
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
9
エクセルマクロでワードの一ページ目をコピーして新たに二ページを追加して、一ページ目の内容を貼り付ける
Visual Basic(VBA)
-
10
Excel VBA でファイルが開かれているか確認する
Excel(エクセル)
-
11
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
12
エクセルのマクロでワードの任意のテキストボックスへ文字列を書き込む方法を誰か教えていただけませんか
Visual Basic(VBA)
-
13
vba クリップボードクリアについて教えてください
その他(プログラミング・Web制作)
-
14
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
15
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
16
エクセルのVBAとワードを使った差し込み印刷
Word(ワード)
-
17
エクセルマクロでボタン一つでWordにテキスト貼りつけしたいです
Excel(エクセル)
-
18
Wordのマクロでクリップボードの内容を取得する方法
Visual Basic(VBA)
-
19
ExcelVBAでPDFを閉じるソース
その他(Microsoft Office)
-
20
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「パス名が無効です」の発生原因
-
gccを行ってもexeファイルが生...
-
Returnに対するGoSubがありません
-
エクセル2000のマクロにつ...
-
【関数】同じ関数なのに、エラ...
-
VB6 Dir関数で52エラー発生
-
エクセルで質問です。 ハイパー...
-
エクセル2010 VBAのサウ...
-
エクセル Fill.UserPictureで...
-
排他ロックが掛かっているファ...
-
ASP.NET 2.0にてアプリが動作し...
-
VBA★ブックがactivateできま...
-
fgets関数のEOFの扱い方について
-
PCにmicroSDカードを(USBで)差...
-
エクセルマクロでエラーの原因...
-
【COBOL】read文でエラー
-
ExcelVBAで既に開いてるwordを...
-
Request.BinaryReadでのエラー
-
アクセスのクエリでコンパイル...
-
ISOファイルとMDSファイル
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【関数】同じ関数なのに、エラ...
-
access テキストボックスの値取得
-
エクセルで質問です。 ハイパー...
-
「パス名が無効です」の発生原因
-
PowerShellを使って関連付けら...
-
NAS上のファイルの使用中が解除...
-
gccを行ってもexeファイルが生...
-
アクセスのクエリでコンパイル...
-
ExcelVBAで既に開いてるwordを...
-
Returnに対するGoSubがありません
-
VB6 Dir関数で52エラー発生
-
VBでファイルが開かれているか...
-
データベースソフトのアクセス2...
-
エクセルマクロでエラーの原因...
-
fcloseで発生するエラーについて。
-
batファイルでレジストリキーの...
-
FORTRANの実行エラーについて
-
VBから参照できないCのDLLを使...
-
【COBOL】read文でエラー
-
DisplayAlertsブロパティで ”実...
おすすめ情報