- ベストアンサー
VBAで「出退勤時間管理」のプログラムを作る際のユーザーフォームのエラーについて
- VBAで「出退勤時間管理」のプログラムを作っています。ユーザーフォームで各種の初期値や設定値を入力しますが、フォームを表示すると「アプリケーション定義またはオブジェクト定義のエラーです。」というエラーが発生します。
- 別のエクセルファイルで同様のフォームを作成したところ、問題なく表示されました。なぜエラーが発生するのか理解できていません。
- コードの量やファイルサイズの制限が原因かもしれません。解決策を教えていただけると助かります。
- みんなの回答 (5)
- 専門家の回答
関連するQ&A
- 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が表示され、変数が定義されていませんと出ます。 どのようにしたらいいのでしょうか。 どなたかお分かりになるかたがいらっしゃいましたら教えて下さい。 お願いします。
- 締切済み
- その他(インターネット・Webサービス)
- subプロシージャーは標準モジュールではなくフォームのコードを書く部分
subプロシージャーは標準モジュールではなくフォームのコードを書く部分に書いても問題ないのでしょうか? エクセルにVBAでフォームを挿入し、 「Private Sub UserForm_Initialize()」 などのフォームのモジュールに、 Sub test() MsgBox "あああ" End Sub という標準モジュールに書くべきのsubプロシージャーを書いてもなにもエラーにならないし正常に動きます。 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を表示する 問題点 釦を押すと 「オブジェクトは、このプロパティまたはメソッドをサポートしていません」 のエラーがでる アドバイスよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルマクロユーザーフォームのtxtbox値を標準モジュールに保持
宜しくお願いします。 ユーザーフォームのtxtbox値を標準モジュールに渡してマクロを実行 るのですが、一度値をセットしたら20~30回変更が無いので標準モジュール のみショートカットで実行したいのですが値を保持してくれません。 何か良い方法は無いのでしょうか。? 'フォーム起動 Sub フォーム() UserForm1.Show End Sub +++++++++++++++++++++++++++ Private Sub CommandButton1_Click() Call モジュール '標準モジュールを呼ぶ Unload UserForm1 ++++++++++++++++++++++++++ モジュール内 Static ufX As Byte ufX = UserForm1.XXX.Text 'ufXの値を保持したい。
- ベストアンサー
- その他(プログラミング・開発)
- 同じマクロ名でも、違うモジュールならエラーにならな
同じマクロ名でも、違うモジュールならエラーにならない? エクセルVBAについてご教授ください。 標準モジュールに ――――――――― Option Explicit Sub CommandButton1_Click() MsgBox "" End Sub Sub CommandButton1_Click() MsgBox "" End Sub ――――――――― と同じマクロ名を2つ作ったら、コンパイルエラーになりますが、 上記のコードは一度消して、フォームモジュールに ――――――――― Private Sub CommandButton1_Click() MsgBox "" End Sub ――――――――― を一つ作り、 標準モジュールに ――――――――― Sub CommandButton1_Click() MsgBox "" End Sub ――――――――― を一つ作った場合は、エラーにならずにマクロを実行できました。 これは、フォームモジュールがPrivate Subだからでしょうか? フォームモジュールに1つ、 標準モジュールに1つ なら同じマクロ名を使っても、エラーにならないという事でしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- userform1の終了に同期を取りたい。
ユーザーフォームを勉強し始めました。 標準モジュールに、 sub oya() userform1.show end sub として、userform1を表示しています。 そしてuserform1で、諸々の設定をしています。 oyaでは、この設定を使って作業をします。 ここで質問です。 oyaの作業は、userform1で設定した内容を使うため、 処理が終わるのを待つ必要がありますが、 その書き方が分かりません。 今現在は、単純にuserform1.showの下に処理を書いているので、 設定する前に空欄を使うような状況になってしまっています。 sub oya() userform1.show 処理ロジック end sub 分かりにくいでしょうが、 宜しくご指導下さい。
- 締切済み
- Excel(エクセル)
- (VBA)ユーザーフォームの値を、モジュールで使用
ユーザーフォームを使用したく UserForm1に以下を配置 TextBox1 TextBox2 CommandButton1 CommandButon1に以下のコード書き込みました Private Sub CommandButton1_Click() Dim N As Single Dim M As Single N = UserForm1.TextBox1.Text M = UserForm1.TextBox2.Text Unload UserForm1 End Sub 標準モジュールに以下を記載して ユーザーフォームの値を、モジュールで使用したいのですが [「M=~」で型が一致しません(エラー13)がでます。 「M=~とN=~」 を削除すると MsgBoxの値がM,Nともにゼロになります Public M As Single Public N As Single UserForm1.Show 1 M = UserForm1.TextBox1.Text ----> ここでエラー13 N = UserForm1.TextBox1.Text MsgBox M MsgBox N ------------------------------ どこでコードが間違っていますか ?
- ベストアンサー
- Excel(エクセル)
- VBA_UserFormの初期値
毎度お世話になっております。 UserFormを開いた時に、UserForm内にあるTextBoxに初期値として 文字を入れたいのですが、表示されません。 原因が判りません。判りましたらご教授お願いします。 プロジェクトの状況 ワークシート3枚(内コード有1枚 シート名:表紙) フォーム2つ(フォーム名:UF1・UF2) 表紙にあるAボタンを押したらUF1が開くBでUF2が開くようなマクロです。 シート"表紙"コード Private Sub CommandButtonA_Click() UF1.show End Sub UF1(コード) Private Sub UF1_Initialize() TextBox.Value="文字" End Sub "文字"をUF1フォーム内に最初から出したいと考えてます。 宜しくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- UserFormをサブルーチンに出来るか
頓珍漢な質問かもしれませんが、何分ご了承下さい。 標準モジュールで記述時、UserFormをサブルーチンとして呼び出す事は出来ないですか。 プログラムの途中に、複数項目を入力させたいのです。 InputBoxは一つしか入力させられない様だから、UserFormならと、思ったのですが。 Private付プロシージャは、同じモジュールのプロシージャからしか呼び出せないのでしょうか。 宜しくお願い致します。
- ベストアンサー
- Visual Basic
- VBAでマルチページの表示
エクセル2002使用です。 ユーザーフォーム(オブジェクト名:UserForm1)に、マルチページ(オブジェクト名:page1)を配置してフォームを作成しました。 Sheet1にコマンドボタンを貼り付け、コマンドボタンをクリックして、標準モジュールを呼び出し、マルチページを標準モジュールから呼び出せるようにしたいのですがうまくいきません。 ’Sheet1 Private Sub CommandButton1_Click() Call フォーム表示 End Sub ’標準モジュール Sub フォーム表示() UserForm1.Show ’?ここのコードをいろいろ試したのですがわかりません。 End Sub この他 UserForm1.ShowPages "page1" とか 変数を入れてみたりしたのですが、うまくいきません。 すいませんが、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ご親切なご指導、アドバイス等ありがとうございました。 言われる通りにデバッグをやってみたところ、ご指摘通りに全く別の所にミスがありました。全くお恥ずかしい。一箇所.valueを付け忘れている所を見つけました。これを修正したところ、Formが出る様になりました。一から十まで懇切丁寧に御指導いただき、お礼の述べ様もございません。ありがとうございました。心より御礼申し上げます。