• ベストアンサー

エクセル 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です。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

エクセルがフリーズする原因はわかりませんが、このような場合はユーザーフォーム2を削除して、もう一度ユーザーフォームを作り直したほうが早いと思います。 これでもフリーズするようなら、ファイルが破損している可能性がありますので、新規ブックのシートにデータ範囲をコピー貼り付けし、上記のファイル(VBEの画面のプロジェクトの画面でユーザーフォームを右クリックしてエクスポートしたファイル)からユーザーフォームをインポートしてください。

jun_jii
質問者

お礼

なおりました!! ListBoxの削除は1度してみたのですがユーザーフォーム自体は試しませんでした・・・てっきり、ユーザーフォーム初心者のせいで何か設定が足りないのかと思い込んでしまいました。 ありがとうございました

その他の回答 (1)

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.2

userform1.show vbmodeless あるいは同じことですが userform1.show false またはプロパティシートで show のところをfalse にしてみてください。  もしshowの設定の問題なのでなく動かないなら ファイルが壊れているか コードの他の部分に問題があるのかもしれません。

jun_jii
質問者

お礼

ありがとうございました

関連するQ&A

  • エクセル 退勤表

    こんばんは。 行き詰まりを感じましたのでどうか教えてください。 只今、エクセルで出退勤表を作成しています。 その際に実労働時間を求めたいのですが、IF関数が上手く組めません。 以下に条件を表示します。 (1)勤務時間は8:30~17:30です。 (2)休憩時間を入れます。  ・8:30~12:00までの出勤の方は昼休憩時間無し、中休憩時  間なしの3時間30分勤務です。  ・8:30~15:00までの出勤の方は昼休憩時間が50分ありの  中休憩時間なしの5時間40分勤務です。  ・8:30~17:30までの出勤の方は昼休憩時間が50分ありの  中休憩10分の8時間勤務です。 自分で時間計算を考えたのですが  8:30~17:30まで「=退勤時間-出勤時間-TIME(1,0,0)」  8:30~15:00まで「=退勤時間-出勤時間-TIME(0,50,0)」  8:30~12:00まで「=退勤時間-出勤時間」 をつかって =IF(退勤時間<="12:00",退勤時間-出勤時間,IF(退勤時間<=15:00,退勤時間-出勤時間-TIME(退勤時間-出勤時間-TIME(0,50,0),退勤時間-出勤時間-TIME(1,0,0) と考えましたが計算ができませんでした。 まったく違うのかもしれません。 訂正もしくは根本的に考えが違うのか、教えてください。 宜しく御願いします。

  • VBAのUserFormのイベント

    VBAの公式問題集の練習をしているのですが、分からないことがあるので質問致します。 UserFormのイベントを使ってコードにマクロを作成したのですが、ユーザーフォームの実行を押しても、コンパイルエラーが表示されてしまいます。 具体的なマクロの式ですが、 Option Explicit Private Sub UserForm_Initialize() Dim i As Long TextBox1.Text = "UserFormの初期化" For i = 1 To 5 Listbox1.AddItem "Sample" & i Next i Listbox1.ListIndex = 2 End Sub です。 エラーには、コンパイルエラー: TextBox1が表示され、変数が定義されていませんと出ます。 どのようにしたらいいのでしょうか。 どなたかお分かりになるかたがいらっしゃいましたら教えて下さい。 お願いします。

  • アクセスからエクセルのUserForm1を表示させたい

    オフィス2003です。 アクセスのフォーム上にコマンドボタンを置き、 クリックイベントでエクセル上に作成してある UserForm1を表示させたいです。 案の定 Sub CB_Click() Excel.UserForm1.Show End Sub ではだめでした。 どういう方法がありますか? よろしくお願いします。

  • タイムカード通りに作りたい

    タイムカードを集計するためのファイルを作成したいです。 時間数と出勤日数だけの集計ができれば良いのですが、 タイムカードと同じ形式のExcelファイルを作成したいです。 日々の出勤と退勤時間、休憩時間を入力して、残業時間、実動時間が 自動的に表示したいです。 ただし、 17時に出勤し、翌日の9時に退勤になる勤務もあります。 月日  出勤   退勤   休憩   残業 実動時間 1日  17:00 2日       9:00 2:30 0:00 14:00 3日  14:00 19:00 1:00 0:00 4:00 上記のような集計が出来るテンプレートを配信しているような サイトを教えてください。 もしくは、上記を求める式を教えてください。

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

    EXCEL VBA UserFormで困っています。 VBAプログラミングで以下のような現象が起こります。 開発環境  WinXP , EXCEL2003 ブックを起動するとメニューが表示され、そこからボタンを押すとuserform1が表示されるというプログラムなんですが、そのボタンを押してuserform1を起動しようとすると『問題が発生したため、  Microsoft Excel Windowsを終了します。・・・ エラー報告を送信する 送信しない』のメッセージが出て起動できない。 UserForm1.Showのステップで一旦止めてステップモードで続行すると正常に動作します。 過去に似た質問を見つけ、そのアドバイスを元に以下を試してみました。 http://okwave.jp/qa/q2001805.html ・エラーの発生行の特定 userform1.showの前に、userform1.label.visible=falseのように、表示、非表示を切り替える命令を出しており、どうやらその表示命令の行でつまづいている事がわかりました。 表示命令を全て消去し実行したところ、現在までは問題なく起動できています。 ・on timeメソッドで時間差をつける ラベルやボタンの表示、非表示命令行をまとめて、 Application.OnTime Now + TimeValue("00:00:01"), "ラベルボタン表示設定" userform1.show といった形で時間差をつけてみました。 結果として、userform1自体は立ち上がるようになったのですが、時間差で実行される"ラベルボタン表示設定"の実行時に「オートメーションエラーです。起動されたオブジェクトはクライアントから切断されました。」と出てくるようになってしまいました。 ラベルはまだ良いのですが、コマンドボタンの表示、非表示は、誤操作を防ぐ手段として非常に重要です。なんとかエラーを出さずにコード通りに起動する方法はありませんでしょうか。

  • リストボックスで選択した項目を削除するには

    Excel2003を使用しています。 ユーザフォームのリストボックスには"Sheet1!A1:C10"が表示されるようになっています。 Private Sub UserForm_Initialize()  UserForm1.ListBox1.ColumnCount = 3  UserForm1.ListBox1.RowSource = "Sheet1!A1:C10" End Sub たとえばリストボックス上で3行目(A3:C3)を選択して、削除ボタンをクリックすれば選択された値が表示から消えて、セル上の値も削除されるようにしたいのです。 できれば削除されると同時に4行目(A4:C4)以降の値が上にスライドされるようにできればいいのですが、まだまだ理解できない部分が多くて自分では解決できませんでした。 ご存知の方がいらっしゃいましたらご教授頂けないでしょうか。 宜しくお願い致します。

  • エクセルのマクロでUserForm1を作って下記のようなコードを実行す

    エクセルのマクロでUserForm1を作って下記のようなコードを実行すると UserForm1を一瞬だけ表示して消えるのかと思ったのですが、表示されたまま消えません。 Unload UserForm1のところを UserForm1.Hideにしても同じです。 表示されたUserForm1を閉じるにはどうしたらよいですか。 Sub test() UserForm1.Show Unload UserForm1 End Sub

  • 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を表示する 問題点 釦を押すと 「オブジェクトは、このプロパティまたはメソッドをサポートしていません」 のエラーがでる アドバイスよろしくお願いいたします。

  • 実行エラー'424' ????

    エクセルでユーザーフォームを作成しました。 (オブジェクト名) UserForm7 です。 これを 開くマクロは Sub 受入フォームの表示() UserForm7.Show End Sub です。 すると 実行エラー'424' オブジェクトが必要です。と デバックします。 ちなみにUserForm1も作成してあり マクロは Sub 仕入先マスタ表示() Dim mytbl As Range Set mytbl = Worksheets("T_仕入先").Range("仕入先リスト1") UserForm1.Caption = "仕入先選択" UserForm1.Label1.Caption = "■仕入先一覧■" With UserForm1.ListBox1 .ColumnCount = mytbl.Columns.Count .ColumnWidths = "2cm;3cm" .List = mytbl.Value End With UserForm1.Show   End sub は問題なくフォームが表示します。 どこがわるいのでしょうか?

  • フォームのリストボックスに値を表示させたい

    VBA フォームのリストボックスに値を表示させたい A1→aaa A2→bbb リストボックスに上記の値を表示させたいなら、 Private Sub UserForm_Initialize() UserForm1.ListBox1.RowSource = "Sheet1!A1:A2" End Sub で出来ますが、シート上のセルで表示する値を指定するのではなく、VBA上で、リストボックスに表示させる値を指定したいのです。 Private Sub UserForm_Initialize() UserForm1.ListBox1.RowSource = "aaa,bbb" End Sub を実行すると、VBA実行時エラー380になってしまいます。 UserForm1.ListBox1.RowSource = "aaa;bbb" もダメでした。 ご回答よろしくお願いします。

専門家に質問してみよう