『ユーザーフォームが表示されない』(悦) こんにちは。 時々こちらで勉強させてもらっています。 で、自分なりにユーザーフォームをつくりコードも組んだのですが、 会社のパソコンが総入れ替えになりバージョンが変わりました。 するとユーザーフォームが表示されずエラーが出てきてしまいました。 検索をかけたりして調べたのですが同じようなのは見つけることができませんでした。 もしかしたら基本的な事なのかもしれませんが、教えていただけると助かります。 WindowsXP Excel2007 保存形式:マクロ有効ワークシート ← 作成したOSとバージョン Windows7 Excel2010 ← 開こうとしているOSとバージョン ファイルの移動は古いパソコンと新しいパソコンをネットワークでつなぎ、 両方から入れる共通サーバーに一度移動させてから新しいパソコンへ移動させました。 エラー内容 「実行時エラー'424': オブジェクトが必要です。」 デバッグをすると Sub ShowUserForm()  UserForm1.Show vbModeless ← 黄色 End Sub 古いパソコンで開くとエラーにはなりません。 < 使用 Excel:unknown、使用 OS:unknown > ---- >古いパソコンで開くとエラーにはなりません。 新し環境で(すぐ実行しないで)まずコンパイルしてみるとどうなりますか? (半平太) 2014/05/27(火) 17:08 ---- UserForm1の参照設定を確認してみてください。 以前のPCには存在していたけれど、新しいPCには存在しないものがありませんか? UserForm1を編集する画面を開こうとしただけで、エラーが表示されませんか? (???) 2014/05/27(火) 17:15 ---- VBEにて、 ツール----オプションとクリックして、「オプション」ダイアログを表示させてください。 全般タブにて、エラートラップ という項目が「エラー処理対象外のエラーで中断」が選択されていませんか? これを「クラスモジュールで中断」を選択して OKボタンをクリックしてください。 再度、実行してみてください。今度は、エラーの核心コードで止まると思います。 (ichinose) 2014/05/27(火) 18:48 ---- 半平太様、???様、ichinose様 コメントありがとうございます。 ichinose様の方法でエラーの核心コードを表示させましたら カレンダーコントロールエラーのようです。 2007ではActiveXコントロールでコントロールの選択から Microsoft Date and Time Picker Control 6.0(SP6) を選択してカスタム登録をしたらツールボックスのコントロールに 表示され、ユーザーフォーム上で他の機能と同様に使えていたのですが・・・。 2010では無くなった機能のようですね(残念) 過去の質問から http://excel-2010.seesaa.net/article/154360048.html を見つけたので頑張ってみます。 ありがとうございました。 (悦) 2014/05/28(水) 13:33 ---- カレンダーなら、 [[20100728102355]] このスレッドの nagashimaさんのコードはお勧めですねえ!! 長いコードですが、アドイン化してあるので、当該ブックに長いコードをコピーすることなく 運用できますよ!! 祝日も管理されているので使いやすいですよ(山の日は、ご自分で追加しなければ なりませんが)。 ご参考までに (ichinose) 2014/05/28(水) 19:24 ---- ichinose様 自分で探したものはユーザーフォーム上での運用は出来ないようでしたので 教えていただいたコードを試してみました。 テキストボックスをダブルクリックして無事カレンダーを表示することが出来ました。 ありがとうございます。 表示することが出来たのですが、本当に書いてあるとおりにしましたので、テキストボックスが 3個あってそれぞれカレンダーが表示されました。 これを1個にするには自分で必要ないコードを削除していけば良いのですよね? まだまだ初心者と言えるレベルなので自分が正しいのかがわからなく不安です。 (悦) 2014/05/30(金) 15:30 ---- >これを1個にするには自分で必要ないコードを削除していけば良いのですよね? 例題コードは、結構便利な仕様になっています。 >3個あってそれぞれカレンダーが表示されました。 実際は、カンレンダーコントロール(と言っておきます)は、一つですよ。 表示したり、非表示にしたり(Visible)、表示位置を変えたり(カレンダー表示位置調)しているのです。 ですから、適当な位置(フレームオブジェクトで決定)にカレンダーを表示しっぱなしに することもできます。 検討してみてください クラスモジュールの変更は、しないことですよ (ichinose) 2014/05/31(土) 01:04 ---- ichinose様 う〜。 朝から今まで頑張ってみましたが、 自分の作ったユーザーフォームに組み込めませんでした…orz 根本的なことが理解出来ていないんですね、きっと…。 時間もないので今回は諦めます。 せっかく教えていただいたのに生かせなくて申し訳ありませんでした。 (悦) 2014/05/31(土) 14:16 ---- ichinose様 仕事に一区切りがつきましたので再挑戦中です。 使えなくなったカレンダーコントロールがあったユーザーフォームにコマンドボタンを つくり、カレンダーコントロール(ユーザーフォーム2を作成)を呼び出しすることで テキストボックスに表示された日付をシートへ転記できるようになりました。 ありがとうございました。 それでですが、前はシートの日付は和歴で表示していたので、出来れば今回も和歴に したいのですが、どこを直したら和歴になるのかわからなく、見ていらっしゃいましたら お教えいただければと厚かましくも参上したしだいです。 宜しくお願い致します。 (悦) 2014/06/03(火) 13:07 ---- >シートの日付は和歴 でしたら、セルの書式を ggge"年"m"月"d"日"  このように設定すれば、和暦になりますが、意味が違いますか? (ichinose) 2014/06/03(火) 21:53 ---- 追伸 >カレンダーコントロール(ユーザーフォーム2を作成)を呼び出しすることで >テキストボックスに表示された日付をシートへ転記 これは、nagashimaさんのオブジェクトを使ったということですよね? 是非、コードを提示してしてください。 このオブジェクトの使い方の良い指針になると思いますから・・・。 (ichinose) 2014/06/04(水) 08:28 ---- ichinose様 こんなに早く見ていてくださってるとは思っておりませんでしたのでお返事が遅れてしまいました。 申し訳ございません。  >セルの書式を和歴 これは私の転記コードの間違いでした。セルの書式を和歴にしましたら出来ました。  >コードを提示 こちらは本当にまんま書いてある通りにしただけですので、とてもお見せする代物ではないです。 すみません・・・。 また何かあれば勉強しに来たいと思います。 ありがとうございました。 (悦) 2014/06/06(金) 11:36