![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
意味不明のバグで立ち往生しています。
原因追求のため下の状態までコードを削ったのですが
「MyUserControl1.F clss」の所で
「コンパイルエラー:ByRef引数の型が一致しません。」
というメッセージが出てきてしまいます。
'--------フォームモジュール Form1のコード----------
Private Sub Form_Load()
Dim clss(5) As New MyClass
MyUserControl1.F clss
End Sub
'--ユーザーコントロール MyUserControlのコード-----
Public Sub F(arg() As MyClass)
End Sub
'-------クラスモジュール MyClassのコード-----------
'(無し)
色々といじってみると
「ユーザーコントロールのメソッド」「クラス」「配列」
の条件が全て揃うと出てくるエラーみたいなんですが
対処方法がさっぱり解りません。
私はメニューからユーザーコントロールを見つけて
使えるのではと考え使ってみたレベルなので
どこかで根本的なミスを犯しているのかもしれませんが
何か気づくところがあればよろしくお願いします。
No.2ベストアンサー
- 回答日時:
当方、暇になったので確認してみました。
ユーザー定義のクラスやコントロールのメソッドに、ユーザー定義のクラス、構造体、コントロールまたはその配列を渡せない場合があるというのは、前から知っていたのですが、どういう場合に当てはまるのかは、ちょっとよくわかりません。
解決策というか逃げですが、
'MyUserControl内
Public Sub F(args As Variant)
Dim arg() As MyClass
arg = args
End Sub
とすると、一度バリアント型に変換されるので、ワンテンポ遅れますが、その後の操作に支障はありません。
おそらくVB7では解決されていることだと思うのですが、VB6でも構文上間違っていないので、仕様なのかもしれません。
あまりお役に立てませんでした、すみません。
ありがとうございます。
うまく動きました
このメンバ関数は初期処理の関数なのでちょっと位時間がかかっても問題無いんです。
それにしても、仕様ですか…さすがはマイクロソフト…
No.1
- 回答日時:
確認事項
○ MyUserControl1はちゃんとForm1内に貼り付けられているか
○ いずれかのコントロールまたはクラスをインポートまたはエクスポートしようとしていないか
○ MyUserControl.Fメソッドの中には本当に何もコードはないのか
○ ツール→オプション→エラートラップをクラスモジュールで中断から、エラー発生時に中断に変えてみると、どこでエラーで止まるか
この回答への補足
○ MyUserControl1はちゃんとForm1内に貼り付けられているか
くっついてます。
○ いずれかのコントロールまたはクラスをインポートまたはエクスポートしようとしていないか
特に変わったことはしてないと思います。新たに標準EXEでプロジェクトを作り、クラスモジュールとユーザーコントロールを追加してFormにMyUserControl1を貼り付け上記のコードを記述しただけでもエラーが発生してしまいます。
○ MyUserControl.Fメソッドの中には本当に何もコードはないのか
全部消しました。
○ ツール→オプション→エラートラップをクラスモジュールで中断から、エラー発生時に中断に変えてみると、どこでエラーで止まるか
「Private Sub Fome_Load()」が黄色で反転していて、「MyUserControl1.F clss」の「clss」の部分が青で反転し、同じエラー内容で止まりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 標準モジュール Public mOnTime As Date Sub sample() '実行プロシ 1 2023/02/22 15:44
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) IBM Notes9のメールをExcelVBAにて送信するコードについての質問です。 以下のコードを 3 2023/06/21 17:58
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
用語の意味の違いを教えてくだ...
-
[VBA] Classから他のClassを呼...
-
共通モジュールでDBへの接続と...
-
WPFでCanvas の子要素にアクセ...
-
他のモジュールのプロシージャ...
-
worksheetFunctionクラスのVloo...
-
[VB.net] ボタン(Flat)のEnable...
-
VBA シートのボタン名を変更し...
-
実行時エラー 438になった時の...
-
ウォッチ式の文字数制限について
-
「Columns("A:C")」の列文字を...
-
パソコンへの「Dropbox...
-
エクセルエラー13型が一致しま...
-
VBA(エクセル)で自動的にボタン...
-
実行時エラー 3265「要求された...
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
マクロについて教えてください...
-
フォームの再読み込み
-
ExcelVBA Range クラスの Page...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
共通モジュールでDBへの接続と...
-
[VBA] Classから他のClassを呼...
-
Excel vbaで複数のテキストボッ...
-
他のモジュールのプロシージャ...
-
用語の意味の違いを教えてくだ...
-
VB.netで、動的な型変換を行い...
-
コンポーネント指向って、どの...
-
宣言とは違うオブジェクトを作...
-
【JSF】バッキングビーンから別...
-
VB.NETにて文字列で指定した関...
-
VBA モジュールレベル・パブリ...
-
WPFでCanvas の子要素にアクセ...
-
VBAで、Functionを、クラスモジュール...
-
Form2の変数をForm1に渡す方法...
-
コンストラクタとデリゲートの...
-
Windows8でのTomcatの自己アドレス
-
ユーザーコントロールのメソッ...
-
リフレクションはどういったも...
-
Python クラスとモジュールの...
-
VB6で外部から静的アクセスが可...
おすすめ情報