|
▼ume さん:
コードアップ、ご苦労様でした。
今から拝見させていただきますが、アップされたコードを、そのままつなぎ合わせてみますと
たとえば Private Sub UserForm_initialize() の中で、いきなり ElseIf が登場しますね。
これは、その上に If がないのでコンパイルエラーになるはずですが?
そのほか、モジュール先頭に Option Explicit の記述(変数宣言を必須にする)をしておられませんね。
絶対にダメということはないのですが、変数名や定数名を間違えていても気が付きません。
たとえば、Private Sub CommandButton1_Click() の中に
If Calendar1.Visible = Falsee Then '工事開始のお知らせ
こんなコードがありますね。
Falsee という定数値は定義されていません。False でしょうね。
でも、変数宣言が必須になっていないのでVBAは、ここで【テンポラリーのVariant型変数】として
自動生成します。(してくれます)で、その値は【空白】です。ですから正しい判定ができないわけですが
コンパイルでひっからず、エラーの認識がなされないまま、不具合が出ても、なかなか気づきません。
●モジュールの先頭には、必ず Option Explict を記述し、変数はすべて定義しましょう。
VBE画面のツール-->オプションの編集タブで編巣の宣言を強制する(R) にチェックをつけておきますと
モジュールを挿入したときに自動的に付加されます。
●とにかく、長いコードですから、ロジックを追いかけるのも大変ですし、不具合があった場合のデバッグも
大変ですので、まずは、このコードを、そのまま、コンパクトにするところから、こちらの作業を開始します。
●ただし、そのためにも、Private Sub UserForm_initialize() の中で、いきなり ElseIf が登場している
ところ等、そちらで確認の上、正しいコードがどうなっているのか、教えていただけますか?
|
|