プロが教える店舗&オフィスのセキュリティ対策術

現在VBAを勉強中の者です。分からない事がありましたので助言お願い致します。

複数のBOOKから集計を1枚のシートで行おうと思っています。
提出者(可変)名.XLS の中の月度シート(1~12)の指定セル(Z1)の
数値を回収したいと思い、回収シートを作りました。
     1 2 3 4 5
提出者A
提出者B
提出者C
のようなイメージです。
提出者のシートは毎月の月度で1枚ずつシートが増えてゆきます。
1月分を更新するマクロを作り、ボタンを押せば回収シート1月度分のA・B・Cが更新されるというの目指しています。

表の各セルに「リンク貼り付け」を行い数値を回収するイメージなのですが、BOOKを開いた時の「リンク更新の問い合わせ」は
Private Sub Workbook_Open()
ActiveWorkbook.UpdateLinks = xlUpdateLinksNever
で止めました。しかし問題があり、
・提出月以降の月はシートが作られていない
・提出者の誰かが更新していない場合、リンクを探しに行くときにエラーになる
と双方とも「どのファイル開きますか?」と聞かれます。
リンク先が無い場合に無視する記述などあるのでしょうか?
また、こういう複数ファイルからの集計をVBA上で行う時に
参考になるマクロや解説ページなどがありましたら
合わせて教えて頂きたいです。

A 回答 (4件)

書き方が逆ではないでしょうか。



DoEvents
Application.SendKeys "{ESC}"
Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR('\\リンク先\[担当者A.xls]1月'!R1C20),"""",'\\リンク先\[担当者A.xls]1月'!R1C20)"
    • good
    • 0
この回答へのお礼

お返事が遅れまして申し訳ありません。

イメージしていた通りに動きました!
これでなんとか作成出来そうです。
リンク貼り付けで行うのは色々と無理があると
勉強にもなりました。VBAも少しずつ勉強し、
年内にはVBAで処理できるようにシートを作り直そうと思います。
本当にありがとうございました。

お礼日時:2007/05/14 11:44

数式では無理があるのでは・・・


マクロで集計した方がいいと思いますが、如何でしょうか。

以下に似たような質問があったので、参考になるかも知れません。

http://okwave.jp/qa211677.html
http://dell-support.okwave.jp/qa2987583.html
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。

上のお礼に書いたとおりVBAで年内くらいに
シートを作り変えれるように勉強したいと思います。
色々と助言ありがとうございました。

お礼日時:2007/05/14 11:52

それでは、以下を試してみてください。



DoEvents
Application.SendKeys "{ESC}"

この回答への補足

以下の式を試してみましたがダメでした。
マクロの記録で作成しております。

Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR('\\リンク先\[担当者A.xls]1月'!R1C20),"""",'\\リンク先\[担当者A.xls]1月'!R1C20)"
DoEvents
Application.SendKeys "{ESC}"

該当シートが無い場合「値の更新」と出ます。
集計のやり方自体をリンク貼り付けでは無く
VBAでがんばった方がよいのでしょうか?

補足日時:2007/05/11 16:51
    • good
    • 0

以下を試してみましたか?



Application.DisplayAlerts = False

この回答への補足

お返事ありがとうございます。

上記を試してみましたが無理でした。
私の書き方がまずかったと思うのですが、リンクの更新の際に
リンク先が無ければ「値の更新」ダイヤログが出て、ファイルの選択(参照)するように言われます。
この作業を自動でキャンセルするような物を作りたいと思い、お知恵を借りたい次第です。

現状まだ5月ですので殆どがリンク切れの状態となっており、
見た目にエラーが出まくりだったのですが、そこはISERRORで
対応しました。 他になにか良い方法があればご教授下さい。

補足日時:2007/05/11 13:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!