ここから本文です

VBAについての質問です。

ilo********さん

2020/5/2414:17:26

VBAについての質問です。

UserForm1に全てのコードを
書いてしまっている為か、
UserFormを開くのに時間が
かかってしまいます。

(TextBox等が多いのも原因かと思われます。
しかし、なるべくフォームの形は変えたくありません。)

色々自力で調べたものの、
効果的な改善案が見つけられませんでした。

とりあえず、UserForm内に書いた
コードを標準モジュールに
分割をしようかと思ったのですが、
どのように振り分けたらいいのかが
わかりません。

プロシージャの呼び出しの方法も
イマイチわからず困っています。

プロシージャの分け方や、
それについてわかり易いサイトがあれば
ご教示願いたいです。

閲覧数:
24
回答数:
2

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

2020/5/2523:37:27

まず、プロシジャーを他のモジュールに分離することの効果は「ない」と思います

確認したところ、
最大行数の65万行まで記述したuserform は一瞬で表示されました。

VBA インタープリターであることかからも、
実装量と起動時のロード時間は関係性が低いと言えます。

また、このform には、200個のテキストボックスを張り付けています

よって、あなたのフォームの表示が遅い理由は、

UserForm_Initialize にある処理です

シートのセルの再計算が行われる
処理を書いているのではありませんか?

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

ベストアンサー以外の回答

1〜1件/1件中

por********さん

2020/5/2415:55:09

こんにちは。
initialのコード、全部activateに移動させてみてください

処理に時間がかかっているなら、全体の構造を見直しして、
フォームが開く部分を最優先にしてください

フォームは、ユーザーに、操作をしてもらう部分なのですから、
「開くに時間がかかる」のは、設計の見直し、考えてください

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる