• ベストアンサー

VBAのDirtyについて

マクロ実行中に、セルに入っている式を再計算させたいのですが、Excel2003で作成したときには、 Dirtyを言うものを使用し、マクロの実行中に式を再計算させることができました。 しかし、Excel2000で実行すると、Dirtyの箇所でとまってしまい、再計算ができません。 Excel2000でマクロの途中で任意のセルの式を再計算させるためにはどのようにすればよいでしょうか? よろしくお願いします。 (再計算させたい式はCOUNTA関数でユーザー定義関数ではありません)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Culculateメソッドのオブジェクトに(1)Application (2)Range(3)Worksheetとあるので Rangeを指定してCulculateしてはどうでしょう。ヘルプでは 指定されたセル範囲 Worksheets(1).Rows(2).Calculate の例が載っています。

omusupa
質問者

お礼

御礼が遅くなり申し訳ありません。 無事解決ができました。ありがとうございます。

その他の回答 (1)

  • gooqgooq
  • ベストアンサー率30% (3/10)
回答No.1

あまり自信がありませんが Application.CalculateFull だったような気がします。 試してみてください。 違ってたらすみません。

omusupa
質問者

お礼

御礼が遅くなり申し訳ありません。 無事解決ができました。ありがとうございます。

関連するQ&A

  • エクセル VBA セル範囲を指定

    functionプロシージャを作ろうとしてます。いわゆるユーザ定義関数です。 エクセルの関数でSUMが用意されており、SUM(セル範囲)のように書けば合計を返します。 同じようにセル範囲の指定を受けて計算結果を返すfunctionを作りたいのです。 function example(セル範囲 As double,・・・) As double 任意の範囲を指定して、その値を使って計算したいのです。 ・セル範囲の書き方というか、フォーマットの書き方 ・プロシージャ内で計算に使うために配列に読み込む方法

  • エクセルでのセル自動クリア

    こんにちは。エクセル2000の質問です。 特定セル(以後項目セル)の入力を消した時に、関連するすべてのセル(同じ行のセル)の入力を自動的に消したいのです。 関数で自動的に計算するセルは、項目セルがブランクだったら時は「0」になるようにし、ユーザー定義で0を非表示にすることはできています。 入力する人が記入する箇所のみ、項目セルの入力を消すことでクリアしたいのです。 できればマクロを使わずに実現したいのですが、できますか? マクロ以外では不可能の場合はマクロでどうしたらよいでしょうか? よろしくお願いいたします。

  • 数式の計算結果により表示されたセルを数える関数を教えてください

    Excel2003です。 「=COUNTA(範囲)」で文字や数値、式などのデータが入力されているセルを数えることができますが 数式の計算結果により表示された文字や数値の入ったセル(数式の計算結果で空白のセルを数えない)を数える関数を教えてください  

  • VBA Private Sub Worksheet_Calculate()

    「ユーザー定義関数」で計算されるセルがセルB2にある場合、シートモジュールの Private Sub Worksheet_Calculate()で、他の再計算は無視し、そのユーザー定義関数が計算されたことを判断するためにはどのような記述をすればいいのでしょうか?

  • VBAで特定のセルに値を入力したい

    VBAについて教えてください. (当方初心者です) VBAでユーザー定義関数で 計算しているセルから相対的な位置に値を入力したいのです. より具体的に言うと、例えば B3のセルでユーザー定義関数を用いて計算します。 その関数で計算した結果である一定の条件を満たした時にだけ その関数で計算しているセルから2行2列隣のセルに 特定の値を入力したい場合にはどうすればよいのでしょうか? 試しに簡単に書いてみたのが以下です。 ------------------------------------------- Sub test1() ActiveCell.Offset(2, 2).Value = 100 End Sub Function test2() test1 End Function ------------------------------------------- これだとtest1を単体で実行した場合は上手く動作するのですが test2でtest1を呼び出した場合はエラーになります。 これをどう直せばtest2内でtest1の動作を実行できるのでしょうか? ご教授のほどよろしくお願いいたします。

  • VBAのプログラムとシートでの計算の速度

     現在、エクセルVBAでマクロを組んでいます。 マクロで算出した値を、セルを指定して、シートに代入しています。シートの代入する理由は、途中の計算結果の確認とエクセル関数を利用し、マクロの簡便化を図りたいためです。  代入した値を基にして、エクセル関数を使った結果の値を、他のセルに表示(代入)していますが、VBAで、その結果の値を、利用しています。  お聞きしたいのは、最初にシートに代入してから、エクセル関数の結果を得られる前に、VBAが、値を取得しないかどうか心配です。  素人考えでは、同じエクセル上で動作しているので、エクセル関数の計算終了後に、VBAが動くと思いますが。どうでしょうか?

  • GET.CELL関数を使ったら、警告画面が出る

    Excel2003です 式が入っているセルに色を塗りたいと思い、 GET.CELL関数を用いました(挿入→名前→定義の参照範囲に使用)。 しかし、ブックを開くたびに、マクロの警告画面が出てしまいます(Excel4.0がどうしたこうした‥‥)。 これの回避は不可能なのでしょうか? ※複数のPCで使うファイルであり、Excelのセキュリティを(中)以下に設定することは出来ません。 GET.CELL関数を外せば、当然警告画面は出ませんが、式が入っているセルを塗りつぶさなければならない以上、現状では、使わざるをえない状態です。 「式が入っているセルを塗りつぶす」 GET.CELL関数関数を使わずに行うことは可能でしょうか?

  • Excel2000 関数でセルに色をつけたい。

    Excel2000を利用しています。 セルの計算結果によってそのセルに色をつけたい(塗りつぶし)と思っています。 関数のみでセルに色をつけることは可能でしょうか? ユーザー関数(マクロやVBAを利用する?)を使わないと無理なのでしょうか。

  • エクセル マクロのFunctionプロシージャについて

    エクセルでユーザー定義関数を使う時にセル範囲を任意に指定して参照したいのですがやり方がよく分かりません。 たとえば、以下のマクロを記述して Function test(a,b) test=a+b End Function エクセルのシート上で =test(A1,A2) とすれば、計算結果が出てくると思いますが、この A1、A2と参照していたのを A1:A3 というように参照できるようにマクロを変更したいです。 どなたか教えてください。

  • エクセルで特定のセルのみを任意のタイミングで更新

    エクセルのRANDBETWEEN関数についての質問です。 再計算するたびに,新しい整数の乱数を返すと思いますが, 再計算のたびに,整数を返すのでなく自分のタイミング(マクロでフォームボタンを押したときなど)で実行されるようにしたいです RANDBETWEEN関数が設定されているセルだけを任意のタイミングで更新するのは,どのようにしたら良いでしょうか?

専門家に質問してみよう