• 締切済み

ActiveX コントロールの使用個数の確認

教えて下さい。 各コントロール配列がフォーム上ですと、[コントロール名.UBound]メソッドで最大要素数が確認できますよね。 (もしくは、Indexプロパティで要素Noを見れる。) それと同じ事をAcitiveXコントロール内で自コントロールが有るフォームで何個使用されているか知りたいのですが、何か方法はありませんか? 例を上げます。  ActiveXコントロール名称:Test フォーム名称:frmMain このフォームにTest(0),Test(1),Test(2)を3個使用した場合、   (もしくは、Test1,Test2,Test3と3個使用した場合) ActiveXコントロール内で何個使用されているかを知りたい。 と言うわけですが。。。

  • 0333
  • お礼率73% (76/104)

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

フォームでということであれば Controlsコレクションを検査すればいいように思いますよ   Dim Ctl as Control   Dim n as Integer   for each ctl in Me.Controls     if Typeof ctl is myControl then       n= n + 1     end if   next   MsgBox "Number of MyControl = " & n といった具合です # myControlは適宜修正してください # コントロール配列もコントロール自体でカウントします

0333
質問者

お礼

回答ありがとございました。

関連するQ&A

  • ActiveXコントロールでフォームを参照するには?

    VB6SP5を使用してActiveXコントロールを勉強中です。 ActiveXコントロールを作成(OCX化)して、そのコントロールを別のプロジェクトのフォームで使用しようと思っています。 このコントロールの機能は、使用するフォーム上の「ラベル」や「テキストBOX」の情報(Caption、サイズ、位置、色 etc...)を取得して、いろいろと処理を行いたいのですが、取得方法がわかりません。 一応、次のようにコントロールのメソッドの引数でフォームを受け取ろうとしたのですが、下記のコンパイルエラーが出てダメでした。  Public Sub ABC( ByRef frmMain As Form )    :  End Sub --- コンパイルエラー!! -------------------------------------------  "プライベート オブジェクトモジュールを、  パブリック オブジェクトモジュール内で、  パブリック プロシージャの引数または戻り値、  パブリック データメンバ、またはパブリックのユーザー定義型のフィールドとして、  使用することはできません。" ------------------------------------------------------------------ ところが、"As Form" を "As Object" にすると、上手くいきました。  Public Sub ABC( ByRef frmMain As Object )    :  End Sub この違いは何なんでしょうか? この使い方は正しいのでしょうか? もし、別の方法があれば、教えて下さい。

  • ActiveXコントロールにオブジェクトの追加?

    VB6SP6です。 ActiveXコントロールにはプロパティ・メソッド・イベントが設定できることがわかりました。 オブジェクトの追加ってできますか? 使用する側から 通常は「ActiveX名.メソッド」とするところを 「ActiveX名.オブジェクト名.メソッド」というようにメソッドを呼び出したいのです。 へんちくりんな質問でしたらすみません。 どなたかわかる方いらっしゃいましたらよろしくお願いいたします!

  • VB6のユーザーコントロールの受け渡しでプロパティ

    自作のユーザーコントロールをフォームに貼り付け、 それをクラスに渡してクラス内でそのコントロールのVisibleを制御しようとしておりますが、 フォームからコントロールのVisibleプロパティにアクセスできますが、 クラスからだと、 メソッドまたはデータメンバが見つかりません とコンパイルエラーが出ます。 そこで、コントロールをControlやUserControlにキャストしてみましたが 型が一致しません というエラーとなってしまいます。 コントロールにVisibleプロパティの追加を試みましたが、 ActiveXコントロールインタフェースウィザードの使用できる名前に於いて それらのプロパティが列挙されません。 対象がユーザーコントロールでなく、ボタンなどの標準コントロールの場合は できたのですが・・・ なにか方法をご存知でしたらご教授ください。

  • ACCESSでActiveXを使用する方法

    ACCESS2002でActiveXをフォームに貼り付けようとしたところ以下のメッセージが出力される。 このActiveXコントロールを使用するライセンスがありません。 該当するActiveXは、Mscommです。 VBが入っている環境では貼り付けることが可能ですがOffice環境のみの場合、出力されます。 対処方法を教えてください。

  • フェオームコントロールとActiveXコントロール

    VBAについての質問です。 Excel2013を使っています。次のような場合に不具合があります。 sheet1上にフェオームコントロールのボタンを配置し、ユーザーフォームを呼び出します。 ユーザーフォームにはコマンドボタンを配置し、コードは Worksheets("Sheet2").Select です。 実行すると、Sheet2に画面は変わりますが、セルに何かを入力すると、入力したはずのものがすぐ 消えて、しまいます。スクロールもできません。 実際には Sheet1 に入力されています。 sheet1上のボタンをActiveXコントロールのコマンドボタンを使用して、同じユーザーフォームを呼び出し実行すると、正常に作動します。 この現象は、2010以前のバージョンだと、どちらも同じ動作をすると思います。すべてを調べたわけではありませんが。 12月10日(水)の更新後、Excel2013ではActiveXコントロールのコマンドボタンが使用できなくなったと思いますが、VBAに詳しい方で、何か解決策をご存じの方、アドバイスをお願いします。

  • ActiveX コントロールの初期化

    Excel2010のフォームにOCXコンポーネントを追加し、Excelを起動すると 「このアプリケーションは、安全でない可能性のある ActiveX コントロールを 初期化しようとしています。 このドキュメントの提供元が信頼できる場合は、[はい] をクリックしてください。 コントロールはドキュメントの設定を使用して初期化されます。 」 というメッセージが表示されます。 メッセージを非表示にする方法をないでしょうか? Office2003では、「Forms3 および ActiveX 初期化」で対応できました。 http://support.microsoft.com/kb/827742/ja Office2010で、同様の方法で設定しても非表示になりませんでした。 Office2010では、設定方法が変わってしまったのでしょうか?

  • ActiveX名.オブジェクト名.GETメソッド?

    お世話になります。 VB6SP6です。 ActiveXコントロールにはプロパティ・メソッド・イベントが設定できることがわかりました。 また、クラスを使用することで「オブジェクトの追加」が出来ることをこちらで教えていただきました。 そこで質問です。 メソッド名に「Get」を使用することは出来ますか? ActiveX名.オブジェクト名.GETという風に使用したいのですが。。。 ヒントなどでもいただければ助かります! よろしくお願いいたします。

  • カスタムコントロール作ってます(VB.NET)。VB.Net にVB.6のActiveX作成時にあったプロパティページ作成ができないようですが

    タイトルどうりです。VBNETのカスタムコントロールでデザインモードにおけるフォームつまりプロパティページやビジュアルにプロパティボックスから設定できるようにしたいのですが、どうしたらできるでしょうか?VB6ではできたのですが、(Activexコントロール)。 よろしくお願いします。

  • コントロール配列の動的配置について

    ソース上でコントロール配列を動的に配置する場合の手法が解りません。 フォーム上に貼り付けられたコントロール配列を、動的に可変させるにはLOAD/UNLOADなどで良いようですが、1つめの要素(0)から動的に生成させる事は出来ないものでしょうか? ご存知の方いらっしゃいましたら、よろしく手ほどきのほどお願いいたします。

  • ActiveXコントロールのカレンダーについて

    MS ACCESSでの使用で ActiveXコントロールのカレンダーについて お尋ねします カレンダーの年と月はコンボボックスで 選択するようになっていますが 年は西暦で表示してあり 和暦の表示にすることは可能ですか? 出来る場合は どの部分に何を書き込むか教えていただければ ありがたいです よろしくお願いします

専門家に質問してみよう