Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2016)
UserForm1.Show vbModeless がエラーになる
投稿日時: 19/09/22 14:51:05
投稿者: 雷きらい

いつもお世話になっております。
早速ですが、下記の件で困っています。
 
PCを変えたことにより、excelのversionが2010から2019になりました。
2010では動いたMacroが2019では動かなくなりました。
Excelを起動したときに、UserForm1を表示させています。
起動すると、下記のエラーメッセージが出て止まってしまいます。
 
--- エラーメッセージ ここから ---
実行時エラー'1004'
WindowクラスのWidthプロパティを設定できません。
--- エラーメッセージ ここまで ---
 
--- ソースコード (ThisWorkbookに設定)---
Private Sub Workbook_Open()
    UserForm1.Show vbModeless
End Sub
 
どのように対応すればいいのかわかりません。
ご指導のほど、よろしくお願いします。

回答
投稿日時: 19/09/22 16:14:45
投稿者: WinArrow
投稿者のウェブサイトに移動

Userform1の中の
Userform_Initializeプロシジャの中に問題があると思われます。
Userform_Initializeプロシジャの先頭にブレークポイントを設定し、
ステップ実行してみてください。

回答
投稿日時: 19/09/22 19:03:11
投稿者: simple

別のアプローチです。
 
「Option」 - 「全般」 - エラートラップ に

1.「エラー発生時に中断」
2.「クラスモジュールで中断]
3.「エラー処理対象外のエラーで中断」
の3つの選択肢があります。
 
現在、3.が選択されていませんか?
これだと、UserForm1.Show の行が黄色くなるだけで、
どこの行で実際にエラーとなっているかは解りません。
これを2.に変更すれば、実際にエラーが起きている行が黄色くなって止まります。
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~
試して見て下さい。
 
 
# ちなみに、今回は関係がないでしょうけど、
# 1.「エラー発生時に中断」は、コードのデバッグ時にだけ使うものです。
# On Error xxなどは無効になって、エラーになった箇所で止まります。
# 普段は余り使いません。

投稿日時: 19/09/22 23:24:58
投稿者: 雷きらい

WinArrow,simpleさん 早速のコメントありがとうございます。
 
Userform_Initializeプロシジャの中でエラーが発生していました。
Widthの設定が誤っていたようです。修正したら問題なく動きました。
 
ありがとうございました。感謝感謝です。
 
今後ともよろしくご指導お願いします。