• ベストアンサー

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

todo36の回答

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

試していませんが、これででょうでしょうか? --- Private myBtn(9) As VB.CommandButton Private Sub Form_Load() Dim i As Integer For i = 0 To 9 Set myBtn(i) = Form1.Controls.Add("VB.CommandButton", "cmdBtn" & i) Next End Sub

Juanjo
質問者

お礼

完璧に動作確認できました。 発想の転換ですね~。 後はReDim preserve あたりでいけそうですね。 本当に助かりました、ありがとうございます!

関連するQ&A

  • VB2005 コントロール配列について教えていただけませんか?

    現在VB2005を用いてプログラムを行なっている初心者です。 ここのサイトでVB2005ではコントロール配列は使用できないことを知りました。そこで、例えばフォーム上にTextBoxを5個配置して、各TextBoxに入力された値を配列に格納するのにはどのようにすれば良いでしょうか? data(0) = textbox1.text data(1) = textbox2.textと一つずつやるしかないでしょうか・・・ For文などを用いて簡単にできる方法を教えてください。 よろしくお願い致します。

  • 間違えて配置してしまったコントロールの削除

    VS2008を使用して勉強している初心者です。 現在、フォーム上に複数のコントロールを配置しているのですが タブコントロール間でコントロールのコピー&ペーストに失敗してしまい いくつかの使用しないLabelコントロールが配置されてしまっています。 通常であれば、デザインモードのプロパティウィンドウ上のドロップダウンから 該当のコントロールを選択すれば、ビューデザイナー上でも選択された状態になると思うのですが これらのコントロールはその方法では選択できないようです(おそらく正確には、選択されているが見えていない状態だと思われるのですが) 範囲選択などでも、該当のコントロールを選択することができず、削除できなくて困っています。 ビューデザイナーのソースコードに直接手を加えて削除することも出来るとは思うのですが、 なにぶん初心者なのできちんと編集できるか自信がありません。 できればデザインモードで該当のコントロールを選択→削除したいのですが、どのような方法をとれば良いのでしょうか。 よろしくお願いいたします。

  • VBAでコントロールを動的に配置する方法

    VBAでコントロールを動的に配置する方法を教えて下さい。 フォームに n組のチェックボックスとテキストボックスを横方向に動的配置し、標準モジュールからチェックボックスを チェックボックス(x) x=1~n のように配列のような制御したいのです。 画像で見て頂くと、チェックボックスとテキストボックスが n によって縦方向に追加されるイメージです。 どなたか、お知恵を貸してください。

  • VB2005でのTabPageとコントロール配列について

    今テキストボックスをコントロール配列にするために動的に作成しまして、実行時にTabPage上に表示させたいのですが、どのようにすれば表示させる事ができるでしょうか?TabPage上ではなくフォーム上になら表示させることはできました。よろしくお願い致します。

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

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

  • Visual C++ でコントロールを配列にする方法

    VisualC++を使い始めて楽しさを覚え始めた頃ですが、壁にぶつかり解決できません。よろしくお願いいたします。 Windowsフォーム作成において、ボタンやラベルなど、ツールボックスからドロップできるコントロールを配列にする方法が分かりません。 ためしにボタンを二つは配置してから、Button1とButton2がButton[0]とButton[1]になるように定義から書き直してみましたが、 private: System::Windows::Forms::Button^ button[2]; の行で、 「: error C2728: 'System::Windows::Forms::Button ^ : ネイティブ配列はこのマネージ型を含むことはできません”」 とエラーがでます。 どうすれば、コントロールの配列を作れるのでしょうか。できるだけ簡単な方法(できればVisualC++の機能でGUIでサクッと作れれば良いのですが)をご教授願います。 過去の質問に似たものがありましたが、参照先のリンクが切れていました。。

  • ActiveXコントロールの作成(VB6)

    こんばんは。 今、VB6でActiveXコントロールを作成しようと思っています。 現在、標準EXEにて、プログラムが作ってあります。 動作としては、 1.スタートボタン(CmdStart)で開始 2.処理(外部の測定器によるデータ収集) 3.終了ボタン(CmdEnd)にてプログラム終了 です。 これをもとに、ActiveXコントロールを作成したいです。手元にある文献にしたがってほぼコピー&ペーストで作成しました。また、これの動作を調べるため、標準EXEのフォームを作成し、そのフォームにActiveXコントロールを貼り付けました。 ここで質問です。 Form_LoadはUserControl_Initializeに書き換えました。(これは文献に載っていました) 最後のプログラム終了がうまくいきません。 標準EXEでは Private Sub CmdEnd_Click() Unload Me End Sub と書いてプログラムを終了させていました。 ここを書き換えずにActiveXコントロールを実行させたらエラーが出ました。"Unload Me"を"End"に書き換えてみたら、サポートされていないと出ました。 CmdEndをクリックしてプログラムを終了させるにはどう書けばいいでしょうか? よろしくお願いします。

  • VBAでコントロールの数をカウント。結果が違う

    Access 2003のフォームについてお教えください。 フォームデザインビューで、「Form1」にテキストボックスが1つ配置されています。 レコードソースは連結されているので、フォームビューで見ると現在10のテキストボックスが フォームには表示されています。 やりたい事 フォームビューで見た時のコントロールの数をカウントしたい。ここでは、「10」という 結果が欲しいです。 そこで下記のコードを書き実行しましたが、「1」としか表示されません。 デザインビューで見ると、テキストボックスの数は1なので、それが表示 されている感じがします。 フォームビューで見た時のコントロールの数を数えるにはどのようにしたらよいでしょうか? Private Sub Form_Load() Dim ctl As Control Dim counter As Integer On Error Resume Next counter = 0 For Each ctl In Me.Controls 'コントロールがチェックボックスか判別 If TypeOf ctl Is TextBox Then counter = counter + 1 End If Next ctl msgbox counter End Sub

  • 【VB2005】コントロールを配列に。

    下記のコードを変更して、コントロールの値を配列に代入して、 その値をもとに、ボタンを複製して追加したいと思っています。 Public Class frmStart Dim btnNewButton1 As New Button Private Sub frmStart_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load NewButton1.Text = "処理1" btnNewButton1.ForeColor = Color.DimGray btnNewButton1.Location = New Point(10, 100) btnNewButton1.Size = New Size(180, 30) '// ボタンを追加します Me.Controls.Add(btnNewButton1) end sub End Class やりたいことは、Dim btnNewButton() As New Button のようにデータを配列にして、 btnNewButton(0).ForeColor = Color.DimGray btnNewButton(0).Location = New Point(10, 100) btnNewButton(0).Size = New Size(180, 30) btnNewButton(1).ForeColor = Color.DimGray btnNewButton(1).Location = New Point(380, 100) btnNewButton(1).Size = New Size(180, 30) '// ボタンを追加します Me.Controls.Add(btnNewButton(0))     Me.Controls.Add(btnNewButton(1)) という事をしたいのですが、方法が解らなくて困ってます。 お知恵を貸してください。

  • VBなどのフォームエディタのコントロール名

    VBやVC#で、ドラッグして画像を配置するソフトを作ろうとしています。 そこで、VBやVC#のフォームエディタのコントロールを使おうと考えたのですが、コントロール名がわからず、調べられません。フォームエディタコントロールを使うような記事も見つかりません。 ご存知でしたら、コントロール名を教えてください。