• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBA UserFormで困っています。)

EXCEL VBA UserFormで起動エラーが発生する理由と解決方法

myRangeの回答

  • myRange
  • ベストアンサー率71% (339/472)
回答No.1

>userform1.showの前に、userform1.label.visible=falseのように >表示、非表示を切り替える命令を出しており   UserForm1.Showの前がどの時点かが不明なのでなんですが、、、 UserForm1のLoadとかInitializeイベントに置いたらどうなりますか?   ---------------------------------------- Private Sub UserForm_Initialize()   UserForm1.Label1.Visible = False End Sub ----------------------------------------   以上です。

59635963
質問者

補足

回答、ありがとうございます。 あれからこちらで調べた結果、原因はラベルの表示、非表示命令ではなく、終了時に自動で上書き保存させているのが原因のようです。 調べた結果は以下の通りです。: ・ラベル等の表示、非表示命令を全て消去しても改善しなかった。 ・エラーが出てから、ステップモードで実行すると正常起動し、その状態で上書き保存すると、次以降にブックを開いたときはエラーが出ない。 しかし、処理終了時に自動で上書き保存すると、次に開いた際、同様のエラーが出る。 自動保存のコードは以下の通りです。 Private Sub CommandButton14_Click() y = MsgBox("終了します。よろしいですか?", vbYesNo) If y = vbYes Then Application.DisplayAlerts = False ThisWorkbook.save ThisWorkbook.Close End If End Sub 自動保存機能を活かしながら、エラーが出ないようにするにはどうしたら良いでしょうか?

関連するQ&A

  • EXCEL VBA UserFormで困っています。

    現在VBAで業務用のシステムを開発しているのですが以下のような現象が起こります。 開発環境  WinXP , EXCEL2000 現象(1) 起動すると『問題が発生したため、  Microsoft Excel Windowsを終了します。・・・ エラー報告を送信する 送信しない』のメッセージが出て起動できない。 UserForm.Showのステップで一旦止めてステップモードで続行すると正常に動作します。 現象(2) WinXP , EXCEL2000で正常に動作するものを WinXP , EXCEL2003で起動すると『パス名が無効です』のメッセージが出て起動しません。 (1)と同様にUserForm.Showのステップで一旦止めてステップモードで続行すると正常に動作します。 2点とも UserForm.Show のステップに問題があると思うのですが、自分なりに半月かけて調査しても何の解決の糸口も見つからずに困り果てています。 もし、ご存知でしたらご教示願えないでしょうか?

  • Visual BasicのUserFormが閉じづらい

    Excel2000,VisualBasicのUserFormの閉じ方で困っています。 マクロ起動中にUserForm1.Show,UserForm1.Hide,UserForm2.Show,UserForm2.Hideを 何度も繰り返していると、同じUserFormが重複してメモリーに残っている 状態で、閉じるために「×」を何度もクリックしています。 作業を長時間するとフリーズ状態もしくはエラーになります。 尚、Load.Unloadでも同じ結果になりました。 どなたか解決方法を教えてください、宜しくお願いします。

  • EXCEL VBA UserFormで困っています。

    WindowsXP,EXCEL2000を使用しています。 VBA Userform で Fontでポイント数を指定しラベルやテキストボックスを作成します。 作成したオブジェクトをCopyして貼り付けると文字の大きさが変わってしまうことがあります。 Fontのポイント数を確認しても正しく設定されています。 この現象が発生したオブジェクトは削除して作成し直してみても変えることが出来ません。何故でしょうか? 教えてください。

  • Excel VBAについて

    Excel VBAにおいて、Sheetの選択した行によって値を表示するUserFormを変更したいと思っています。 現在以下のようにしたのですが、実行すると「SubまたはFunctionが定義されていません」というエラーが表示されます。 「Controls("UserForm" & x).Label1.Caption =」のところをどのようにしたらよいのでしょうか。 Private Sub CommandButton1_Click()   If ActiveCell.Row = 5 Then     UserForm1.Show     x = 1   ElseIf ActiveCell.Row = 6 Then     UserForm2.Show     x = 2   End If End Sub Private Sub Worksheet_Selection Change(Byval Target As Range)   Controls("UserForm" & x).Label1.Caption = ・・・

  • ExcelのVBAでフォームが表示されない

    Sub フォーム起動() UserForm1.Show End Sub 上記の内容をModule1にしてショートカットキーをを設定し、いつでも他に作ってあるユーザーフォームが起動するようにしていました。しかし先日、久しぶりに使ってみようと、設定したショートカットキーを押したら、VBAもマクロも全くいじっていないにも関わらず、「UserForm1.Show」の部分で「実行時エラー'380': Valueプロパティを設定できません。プロパティの値が無効です。」とエラーが表示されフォームが起動できません。これはいったい何が原因なのでしょうか。

  • エクセルVBAでUserFormを起動した時

    エクセルVBAでUserFormを起動した時に自動的に実行される動作を記述したいのですが、 どうすればよいでしょうか? Private Sub UserForm1_Load() End Sub だとだめでしょうか?

  • Excel vbaでフォームの起動が失敗する

    Excelシート上に設置したユーザフォームを開くボタンを実行するとフォームが開かずに新規のExcelシートが開いてしまいます。 以前までは正常に作動していたんですが••• ちなみにボタンの実行前に vbaの編集画面を一度でも開いた後はボタンを押したら正常にフォームが開くんです。 フォームを開くコード sub 起動() UserForm1.Show End Sub フォームのInitializeはコンボボックスのみです。 原因がわかりましでしょうか?

  • Personal.xlsでUserFormを開く

    Personal.xlsに登録したマクロでBookのUserFormを開くには? 環境:EXCEL2000 Windows7 Book1.xlsにUserForm1を作りました。 Book2.xlsにもUserForm1を作りました。 (Book1のUserForm1とBook2のUserForm1は異なるForm) Personal.xlsに次のSubを追加しました Public Sub DispForm1() ActiveWorkbook.UserForm1.Show vbModeless End Sub ツールバーに釦を追加しマクロ「DispForm1」を登録しました やりたい事 (1)Book1を開き釦を押すとBook1のUserForm1を表示する (2)Book2を開き釦を押すとBook2のUserForm1を表示する 問題点 釦を押すと 「オブジェクトは、このプロパティまたはメソッドをサポートしていません」 のエラーがでる アドバイスよろしくお願いいたします。

  • Userformの起動制限について

    シート上のコマンドボタンにより Userform1.showを実行する場合 Userform1のUserForm_Initialize() の初期設定において 特定の条件を満たした場合はUseform1を表示して、 条件を満たさない場合はUserform1を表示せず元に戻る というようなことはできないでしょうか?

  • エクセル UserForm 呼び出しでフリーズしてしまいます

    エクセルでタイムカード?退勤時間管理表を作成しています。 UserFormの使用は初めてです・・・ UserForm1が「出勤」「退勤」「休憩入り・戻り」などをボタンで作って入力させるのはうまくいきました。 ところが、UserForm2に、各従業員のタイムカード(出勤退勤休憩を記録しているシート部分)を表示したくなったのでUserForm2に、ListBox1を貼り付けてマクロでRowSourceを書き換えて表示させたかったのですが・・・ 作成中はうまく表示しているのですが、実際にUserForm2.Showとやって呼び出すとUserForm2は表示されるのですが、エクセルすべてが全く反応なくなってしまいます。UserForm2も閉じれません。 ListBox1でいじったプロパティは、RowSourceとColumnCountのみです。 RowSourceは、'名 前'!A1:H32 ColumnCountは、8 UserForm2には、ListBox1しかありません。 UserForm1にも、ListBoxはあるのですが全く問題なしです。(1行のみのものですが) 時計のリアルタイム表示マクロやUserFormに最小化ボタンを付けるマクロを付けていたのでそれが原因かとも思い削除してみたのですが、UserForm2を表示するとフリーズしてしまいます。 何が原因のでしょうか? 教えてください。よろしくお願いします。 エクセルは、2007です。