
No.2
- 回答日時:
そうですか? 不思議ですね。
短いコードなら提示するといいでしょうが
何をどうしているのか読む側にはわからないので
VBAコード以外に、一般機能で使っている関数も書いてみるといいかもしれません。
あと、Worksheet_SelectionChangeイベントだとしたら、
多量のデータの書き換えなどのためには使わないほうがいいかと。
CommandButtonクリックで開始するのでは都合が悪いのですか?
この回答への補足
ご回答ありがとうございます。
今回の処理内容を簡単に説明に説明すると、
複数のセルに入っている値を空白セルと重複セルを除外して、
全てつなぎ合わせて別セルに表示するといった内容です。
CONCATENATEや&でつなぐにはセル数が多すぎまるため、
VBAで処理をしています。
そのほか、
VLOOKUPで他シートからデータを引っ張るというセルが7000個ほどあります。
再計算に時間がかかっているのはおそらくこれが原因だと思っています。
ただ、今回の処理で再計算が自動でかからなくて困るということは無いので、
今回の処理をするときだけ再計算をしないようにしたかったのです。
ちなみにWorksheet_SelectionChangeではなくWorksheet_Changeです。
CommandButtonも考えましたが、あくまで最終手段ということで、
なるべくChangeイベント時に処理したいと思っています。
No.1
- 回答日時:
こんにちは。
イベント無効の
Application.EnableEvents = False
を入れてみては。
参考URL
http://vba.ti-da.net/e2482933.html
http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vb …
デバック、戻し忘れの回避策
http://d.hatena.ne.jp/tiri_tomato/20110910/13156 …
Changeイベントで
with Application
.EnableEvents = False 'イベント無効
.Calculation = xlCalculationManual '←再計算の設定を手動
.ScreenUpdating = False '←画面の再描画をOFFにする
end with
~処理~
with Application
.Calculation = xlCalculationAutomatic '←再計算の設定を自動
.ScreenUpdating = True '←画面の再描画をONにする
.EnableEvents = True'イベント有効
end with
この回答への補足
ご回答ありがとうございます。
Application.EnableEventsも試してみてはいました。
しかしながら、処理の一番頭にブレークポイントを設定して試してみたところ、
セルの値を変更(Worksheet_Changeイベント発生)
↓
再計算がかかる。
↓
Worksheet_Change内の処理が始まる。
(Application.EnableEvents = falseやApplication.Calculation = xlCalculationManualが走る)
なので、どうにもこうにもいかない状態です。
セルの値を変更するときは、あらかじめ再計算を手動にしておけばいいんでしょうが、
いちいちオプションや別のボタンを押して手動にしておくというのも、
あまり実用的ではないかなと思いまして・・・。
やはりCommandButtonをトリガーにするしかないのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シートモジュールを複数作成す...
-
ASP(VBScript)でDBのテキス...
-
UWSCのTHREADについて
-
VB6にてネットワーク上にある共...
-
マクロで、次のコードへ行く前...
-
アクセスからエクセルファイル...
-
StatusStripの表示が更新されな...
-
n88 Basic に関して(ループ)
-
【VBA】エラー処理で別プロシー...
-
VBとSQLServerのセッションが切...
-
ドリブン??
-
IF文に時間(何時から何時ま...
-
【C#/Java?】try-catchでcatch...
-
Excel住所録でアルファベットの...
-
Functionで戻り値を複数返す方法
-
パソコンの処理能力
-
どうやってもFor文を抜けてしま...
-
エクセルVBAでプロシージャ名を...
-
途中で処理を中断させたい (ア...
-
VBA ユーザーフォーム上にテロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
private subモジュールを他のモ...
-
シグナル 6(SIGABRT)とは?
-
vbaのエラー対応(実行時エラー...
-
特定の名前のオートシェイプの...
-
IF文に時間(何時から何時ま...
-
Excel VBA セルの名前があるか...
-
どう増強すべきか
-
【C#】Page_Loadさせない方法に...
-
StatusStripの表示が更新されな...
-
【Vb.net】プリンタジョブの取得
-
シェルスクリプトでファイル内...
-
マクロで、次のコードへ行く前...
-
途中で処理を中断させたい (ア...
-
Word VBA。各マクロの間に待ち...
-
Functionで戻り値を複数返す方法
-
特定のファイルを他のプロセス...
-
【VBA】エラー処理で別プロシー...
-
ExcelのVBAで、選択したファイ...
-
VB.NET SPRED(チェックボック...
おすすめ情報