プロが教えるわが家の防犯対策術!

ファイル名 aaaa.xlsmというExcelファイルに登録しているマクロで
任意のExcelファイルの再計算を実行したいと考えております。

※aaaa.xlsmのファイルの重さの都合上、通常、数式の計算方法の設定は「手動」にしています。

任意のExcelファイルは、aaaa.xlsmと共に開いた状態にします。
aaaa.xlsmの指定されたセル(「設定」シートのA1セルとします)に
任意のExcelファイル名(ここではbbbb.xlsmとします)を記載します。


aaaa.xlsmのマクロを動かすと、bbbb.xlsmが再計算されるといった動きを
実現したいです。

お助け頂けないでしょうか?

質問者からの補足コメント

  • >VBAマクロの言い方で言えば、aaaa.xlsm 側のマクロで、bbbb.xlsmを再計算させたい、という意味なのだと思います。

    はい、その通りです。

    このケースではbbbb.xlsm全体を再計算したいです。
    aaaa.xlsmの「設定」シートのA1セルに記載されたファイル名のBOOK全体を再計算する場合はどのように書けば宜しいでしょうか?
    素人質問で申し訳ありません。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/05/23 22:20

A 回答 (2件)

> aaaa.xlsmの「設定」シートのA1セルに記載されたファイル名のBOOK全体を再計算する場合はどのように書けば宜しいでしょうか?



目のつけどころが鋭いです。
ヘルプをみれば分かるはずですが、ヘルプには、個別のブックに対する命令が出てきません。実は、私も同様に疑問に思ったのです。ピンポイントで再計算ができるのに、ブックにはできないのは変だなって思いました。

やむを得ず、Application.Calculate とするか、個別にシートをループして命令を走らせるかどちらかだと思います。

例:
Sub Allsheets_Calculate()
Dim sh As Worksheet
For Each sh In Workbooks("bbbb.xlsm").Worksheets
  sh.Calculate
Next
End Sub
    • good
    • 0

こんな方法が定番です。



>aaaa.xlsmのマクロを動かすと、bbbb.xlsmが再計算される
VBAマクロの言い方で言えば、aaaa.xlsm 側のマクロで、bbbb.xlsmを再計算させたい、という意味なのだと思います。

'ピンポイントで再計算させるなら、
Sub TestCalculation1()
 Workbooks("bbbb.xlsm").Worksheets("Sheet1").Range("A1").Calculate
End Sub

'UsedRange(データのある場所のA列からC列)
Sub TestCalculation2()
Workbooks("bbbb.xlsm").Worksheets("Sheet1").UsedRange.Columns("A:C").Calculate
End Sub
'シート
Sub TestCalculation3()
 Workbooks("bbbb.xlsm").Worksheets("Sheet1").Calculate
End Sub

当然、全体なら、Application.Calculate を使います。
この回答への補足あり
    • good
    • 0

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