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