- ベストアンサー
Excel97のマクロの高速化
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
画面表示を止めるのは Application.ScreenUpdating = False でできます。これをやると結構早くなりますよ。 あとはセルに値を書き込んだり読んだりする時に セルを選択してから読み書きするのではなくて 直接指定すると早くなります。 Cells(A, 1).Select Selection.Value = hogehoge ↓ Cells(A, 1).Value = hogehoge といった感じです。
その他の回答 (4)
- arata
- ベストアンサー率49% (139/279)
皆さんのおっしゃることにプラスして、 セルの値を変更すると、自動的にエクセルの 計算が動く場合がありますので、 Application.Calculation = xlCalculationManual を行って、自動計算をとめて、 マクロ終了前に Application.Calculation = xlCalculationAutomatic で自動計算するように戻してやってください。 なお、途中で、計算をやらせたい場合は、 Calculateメソッド で、強制計算させることもできます。
- ARC
- ベストアンサー率46% (643/1383)
他の皆さんの仰ってるとおりですが、アルゴリズム面に限っていえば、とりあえずはループの中身を最適化してみるのがいいでしょう。 For ~ Next とか、Do ~ Loopの中身には、出来るだけ無駄な処理を書かない。ループの外に出せるものは出してしまう。ってことを意識しながらプログラムを書くと、そこそこ高速なものが出来上がるように思います。
- popesyu
- ベストアンサー率36% (1782/4883)
画面表示のoffは1番さんの回答通りです。 またマクロの自動記録を使うと非常に無駄の多いコードに なるので、無駄な部分はできるだけ省略しましょう。 セル等ををいちいちselectやactiveteする必要は殆ど ありません(画面の表示をoffにしてても無駄にコード を消化していくので遅くなります)。 他の一工夫としては 選択するときはifよりはselect構文で、 ループさせるときはfor each next(でしたっけ?)構文の処理が若干早いようです。
- 326
- ベストアンサー率5% (1/18)
セルを見に行く回数をできるだけ減らした方がいいみたいっすよ。 同じセルのデータを使うのに、何回も見に行くと処理が遅くなるみたいで、 a = cells(1,1).value b = cells(1,1).value * 2 c = cells(1,1).value * 3 を a = cells(1,1).value b = a * 2 c = a * 3 にしたら、処理が早くなったことがあるんだけど・・・。 これって当たり前すか?
関連するQ&A
- Excelのマクロについて
普通マクロで作成したエクセルファイルを起動すると、マクロの「有効」「無効」を選択する画面が出てきます。 会社内のネットワークで文書を共有しており、エクセル2003がはいっているパソコンは、エクセルファイルを起動すると、選択する画面が出てきますが、エクセル2000がはいっているパソコンでは、マクロで作成したエクセルファイル(同じもの)を開いても選択画面が出なく、すぐにエクセルのシートが出てきます。 エクセル2000がはいっているパソコンで、マクロで作成したファイルとして選択画面が表示されるようにするためにはどのようにしたらよろしいのでしょうか? 恐れ入りますが、よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルにマクロが!
エクセル(Excel2000)で、マクロを使っていないのにマクロが使われてしまいます。 例えば、 まず普通にスタート→プログラムと表示していき、エクセルを立ち上げる。 次にどこのセルでもいいから適当に文字を入力する。(例えば、A1にaと入力する) そして、ファイル→名前を付けて保存で保存する。 こうしてできたエクセルのファイルを普通に立ち上げると、「このファイルはマクロが使われています」と、マクロを有効にするか、無効にするかを確認する画面が出てきてしまいます。 どうしてでしょうか。直す方法はあるのですか。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- excelファイルを開いたとき、マクロを有効にする
わたしのパソコンは、マクロを含んだExcelファイルを開いて画面上の「オープン」という表示をクリックすると、マクロが有効になりますが、ファイルを開くと自動的にマクロが有効になる方法ありますか? auti_openを使ってマクロをつくってみましたがうまくゆきません。
- ベストアンサー
- Windows Vista
- Excelのマクロについて
エクセルでマクロを組んだ後、マクロが不要になったのでマクロを削除したのですが、再度立ち上げると『マクロが含まれています・・・』の警告表示がされます。 確かにマクロは削除されているのに・・・・・・。 この表示が出ないようにする方法はないものでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excelマクロについて
Excelマクロについて質問します。 Excel97で新しいマクロを登録後、削除しました。 その後、同じファイルを開こうとすると、「マクロが含まれています」 のメッセージが表示されます。 何度調べてもこのファイルにはマクロは含まれていないようです。また 「日付」等の名前も全く付けていません。 一度でもマクロを登録すると、このメッセージは必ず表示されるので しょうか? それとも表示しない方法はあるのでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのマクロについて
エクセルにてシート名タブ右クリック→「コードの表示」で開く画面に打つマクロはどういう意味(役割・機能)があるのですか? 通常、マクロ作成時の「挿入」→「標準モジュール」で開く画面に打ち込むマクロと何が違うのですか?
- ベストアンサー
- オフィス系ソフト
- excel マクロについて
こんにちは excelのマクロを使ってミニゲーム(?)を作ろうと思っていたのですが。 マクロ実行中に画面が止まってしまいます。(マクロはちゃんと動いています) 画面を見ながらやりたいので、マクロ実行より画面を優先することってできませんか
- ベストアンサー
- その他(インターネット・Webサービス)
- エクセルのマクロが動いているか知る方法
お世話になります。Windows7、Excel2010、2013です。 エクセルのマクロが現在動いているか止まっているか、エクセルブック上で知る方法があるでしょうか? 例えば、なにかの表示がチラチラ動いていたらマクロも動いているとか、マクロが動いていたらなにかが点滅とか、そういった表示です。
- ベストアンサー
- Excel(エクセル)
- エクセルのマクロ
B1をコピー⇒ブラウザの検索窓に貼り付け→エクセルに戻る B2をコピー⇒ブラウザの検索窓に貼り付け→エクセルに戻る B3を・・・という作業を自動化したいです。 B1~B?までを一括で選択してコピーという作業をマクロで自動化する方法はわかるのですが 上記の作業を簡単にする方法がわかりません。 B1→ブラウザ→B2を選択してマクロの表示ボタンをクリックして、右上にあるマクロの表示ボタンからポップアップウィンドウのマクロ画面の実行ボタンを押して~ というのをやっていたら、普通に「Ctrl+C」でコピーしたほうが早いと思います。 同じ操作を複数のセルに別々に実行したい場合、その別々を1個1個実行しているのは アホらしいです。 なにか方法はないでしょうか
- ベストアンサー
- Excel(エクセル)
- Excelのマクロ
よろしく御願い致します Excel2007でマクロを作り「個人用マクロ」PERSONAL.XLSBに登録しましたそこで質問ですが、Excel起動のたび、前には作成した名前で開いていましたが、今は必ずPERSONAL.XLSBの画面が開きその後でファイル名で開きますがマクロをPERSONAL.XLSBに保存するとこう言うものでしょうか。 出来れば、マクロを使いたい時のみPERSONAL.XLSBで開きたいのです それと、オーズEX_12 オーズカレンダー.xlsと言うソフトを使いたいのでオーズカレンダー.xlsを開くと {このアプリケーションと他のExcelブックを 同時に使用することは出来ません。 他のブックを全て閉じてからもう一度起動してください} と表示されて、OKをクリックしても使用出来ませんが何か関係が有るでしょうか。
- ベストアンサー
- オフィス系ソフト