こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel VBA:リンクの更新

いつもお世話になっています。

Excelでセルに他のブックのリンクを貼ってある場合、
ブック起動時に『更新しますか?』と聞いてきますよね(メニューバーの編集→リンクの設定→起動時の設定で聞いてこないようにもできますが)。

(1)VBAでリンクの更新をさせるには、どのように書けばよろしいでしょうか?

(2)また、『値の更新』ボタンがグレーアウトされていてクリックできないのですが、理由(原因)は何でしょうか?

教えてください、よろしくお願いします。

投稿日時 - 2007-01-18 13:14:16

QNo.2675672

すぐに回答ほしいです

質問者が選んだベストアンサー

こんばんは。

(1) 特定のブックならば、Open メソッドの中の引数の、UpdateLinks を3にすればよいけれども、設定はそのままで、開いた時に操作する方法は、

たぶん、ThisWorkbook のOpenイベントに、以下のようなものを入れておけばよいと思います。
ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways

この方法はやったことがないので、確実にできるか分かりませんが。
というのは、ダイアログが先か、Openイベントが先かは、分かりません。

(2)『値の更新』ボタンがグレーアウト というのは、確か、更新元のファイルがなくなって、値だけが残っている場合だったと思います。

投稿日時 - 2007-01-18 19:42:46

お礼

Webdy02さん、いつもありがとうございます。
私もネットや参考書で調べてはいるのですが、どうしてもこちらのサイトの方が早く確実なのでつい頼ってしまいます。

>ダイアログが先か、Openイベントが先かは、分かりません
なるほど、これは確かめてみないとわかりませんね。

今は自宅なので教えていただいたことを試す環境にはないのですが、明日出社後早速試してみます。
本当にありがとうございました!

投稿日時 - 2007-01-18 20:37:24

ANo.1

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

補足:
#1 のWendy02です。

Private Sub Workbook_Open()
On Error Resume Next
 ThisWorkbook.UpdateLinks = xlUpdateLinksAlways
On Error Goto 0
End Sub

としてください。もちろん、個人用マクロブックに入れるときは、

ThisWorkbook を ActiveWorkbook
に読み換えてください。試してみたら、リンクのないブックには、オブジェクト・エラーが発生しました。

投稿日時 - 2007-01-18 22:56:46

お礼

何度もすみません、本当にありがとうございます。

試してみましたが、
openイベントよりもダイアログが先に出てきちゃいました。
しかし、どちらかというとopen時よりも
処理途中で使用したかったので特に問題はありません。
ActiveWorkbookに読み換えて使用させていただきます。

私事ですが、
現在の仕事はExcelやAccessでツール作成がメインなので、
またこのように質問させていただくことが多々あるかもしれませんが、
その際はWendy02さんをはじめ皆様よろしくお願いします。

投稿日時 - 2007-01-19 11:09:08

あなたにオススメの質問