• ベストアンサー

擬似コントロール配列への代入

お世話になります Dim i As Integer For i = 1 To 3   Sheets("Sheet1").OLEObjects("コンボ" & i).Value = i Next http://oshiete1.goo.ne.jp/kotaeru.php3?q=2372410 上記を参考の上で擬似コントロール配列への代入式を書いたのですが 「オブジェクトは、このプロパティまたはメソッドをサポートしていません」とエラーになってしまいます もちろん対象のコンボボックスのソースには代入される値は用意されています。 よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

>   Sheets("Sheet1").OLEObjects("コンボ" & i).Value = i って、 >   Sheets("Sheet1").OLEObjects("コンボ" & i).Object.Value = i とかじゃありませんか・・・

関連するQ&A

  • 配列

    エクセルvbaなのですが Sub test() ' 配列 Dim arr() As Integer= {0, 1, 2, 3, 4, 5} ' 抜き出した要素を格納するための変数 Dim i As Integer ' すべての要素について繰り返す For Each i In arr Console.WriteLine (i) Next End Sub これって何でエラーになるのでしょう? Dim arr() As Integer= {0, 1, 2, 3, 4, 5} でエラーになりますが、なぜだかわかりません。

  • VBAの配列について

    初めまして、VBAの配列の入力方法について質問させてください。 大量のデータの処理を高速化するため、配列を使用して以下のVBAを入力しました。 インターネットで調べ、見よう見まねで入力してみたものです…(T_T) 内容は、シート「資料」のC列とシート「Sheet1」のG列の文字列が同じ かつ、シート「資料」のL列から最終列(そのときによって変化します) とシート「Sheet1」のE列の文字列が同じ場合、 シート「資料」のA列~D列及びL列から最終列で文字列の一致したセルを 着色するというものです。 変数「アイス」と「チョコ」にそれぞれシート「資料」のデータと シート「Sheet1」のデータを格納したつもりなのですが、 実行したところ「配列がありません。」というエラーメッセージが 表示されました。 どうやらデータを配列として格納できていないときに表示される エラーメッセージのようなのですが、変数の型を変更してみたり、 配列をアイス(2)にしてみたりと、色々方法を変えて試してみたものの、 処理は成功しませんでした(T_T) 一体何が原因で処理が成功しないのか、どなたかご教授いただけると とても嬉しいです…!よろしくお願いいたします。 ちなみに、配列を使用しない場合の処理は、時間が15分ほどと かなりかかりますが、成功しています。 Application.ScreenUpdating = True Dim アイス, チョコ As Long Dim i As Integer, j As Integer, k As Integer アイス = Sheets("資料").Cells(Rows.Count, 1).End(xlUp).Row チョコ = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row For i = 3 To Sheets("資料").Cells(Rows.Count, 1).End(xlUp).Row For j = 12 To Sheets("資料").Cells(i, 12).End(xlToRight).Column For k = 2 To Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row If アイス(i, 3).Value = チョコ(k, 7).Value And アイス(i, j).Value = チョコ(k, 5).Value Then Sheets("資料").Range("A" & i & ":D" & i).Interior.ColorIndex = 22 アイス(i, j).Interior.ColorIndex = 22 End If Next k Next j Next i

  • userFormに貼り付けたLabelを変数に

    userFormに貼り付けたLabelが50個貼り付けてあり、Labelの後の数値を変数にしたいのですが、どう指定すればよいでしょうか (label1~label50) 以前シートに貼り付けたComboBoxは下記のようにOLEObjects で指定できることを教えていただきましたがuserFormではOLEObjectではだめなようです --------------------シートの場合は以前これで教えていただいたのですが  Dim i As Integer   For i = 1 To 10     Dim combo As ComboBox     Set combo = Worksheets(1).OLEObjects("ComboBox" & i).Object     Call MsgBox(combo.Value)   Next

  • コントロールが配列かどうかを知るには?

    Visual Basic6.0(SP5)で伺いたいことがあります。 フォーム上の全てのオブジェクトを For Each文で取得しています。以下の様にです。 Dim Control As Object For Each Control In Form1.Controls If TypeOf Control Is Text Then End If Next Control このとき個々のControlがコントロール配列かどうかを知りたいのですが、どうすればよろしいでしょうか?フォーム上にはコントロール配列のオブジェクトも、コントロール配列ではないオブジェクトもあります。 Control.Indexの値を参照しようとしても、コントロール配列でない場合は 「配列ではないオブジェクトです」とエラーになります。 IsArray関数でもFalseになってしまいます。 何を行いたいかというと、そのControlがコントロール配列(Text1(0)とかText1(1)とか)かどうかを調べて、そのIndexをある関数の引数にしたいのです。全てコントロール配列だったら、Control.Indexで値を取得できるのですが。 よろしくお願いします。

  • ASP.NET2.0でのコントロール配列

    早速質問させていただきます。 VB2005のWindowsアプリではtagプロパティを使ってオブジェクトの特定ができたので コントロール配列が可能でした。 '---ハンドラー作成 For i = 0 To 9 '//コイル1 AddHandler txt_(i).MouseDoubleClick, AddressOf txt_MouseDoubleClick txt_(i).Tag = i Next '---イベント処理 Private Sub txt_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim i As Integer i = CType(sender, TextBox).Tag end sub しかしASP.NET2.0のテキストボックスやコマンドボタンにはtagプロパティがない?ため、 イベント元オブジェクトを特定できません。これは代わりとなるプロパティがあるのでしょうか? それとも、ASP.NET2.0ではWindowsアプリのようなコントロール配列はできないのでしょうか? ご教授のほどよろしくお願い致します。

  • Excel VBA 列の最後の値を代入

    たびたびすみません。 指定したセルの、最終列の値を、任意のセルに入れたいのですが、 オブジェクトが必要です、というエラーがでます。 Sub 単価代入() Dim i As Integer Application.ScreenUpdating = False For i = Range("IV2").End(xlToLeft).Column To 1 Step -1 If InStr(Cells(2, i).Value, "単価") > 0 Then Cells(3, i).Value = Cells(3, i).End(xlToRight).Column.Value End If Next i Application.ScreenUpdating = True End Sub Cells(3, i).Value = のあとの指定方法がまずいのかと思いますが。。 どうぞ宜しくお願い致します。

  • 配列番号の取得について

    ここに配列 SheetName(i) があります。 For i = 0 To 10 SheetName(i) = ActiveWorkbook.Sheets(i + 1).Name Next i でシートの名前を配列に入れ込みます。 フォームのコンボボックスを用いてセレクトされたSheetName(i) の変数iの値(配列番号)を取得することは可能なのでしょうか? すみませんが、お助け下さい。 よろしくお願いします。

  • 配列の結合?について

    . . Dim GetDate for i=startYear to lastYear GetDate = obj.xxxx i = i + 1 next . . このような形で年度別にGetDateに配列でデータを格納しています。 この年度別に作られる配列を一つの配列変数に代入したいのですが、 どうすればよろしいでしょうか?

  • 配列通しのOR演算

    教えて下さい。 vb.net(VS2010 FW4.0)にて、2つのByte配列の各要素をOR演算し、結果をどちらかのByte配列へ格納するか、別のByte配列へ格納したいのです。 For分で回すとできるのは分かるのですが、メソッドを使ってできないか教えて下さい。 条件としては、2つのByte配列の要素数は同じです。 For分で記述すると、 Dim bytA() as Byte = {0,0,0,0,0,128,128,128,128,128} Dim bytB() as Byte = {255,255,255,255,255,0,0,0,0,0} For i as Integer = 0 to bytA.GetUpperBound(0) bytA(i) = bytA(i) Or bytB(i) Next ''' 結果は bytA = (255,255,255,255,255,128,128,128,128,128)となる

  • VBAの変数について

    VBAでUserFormからデータを入力します。 入力された各データをTarget1~Target20に代入します。 各Targetにデータが入っている場合は、配列K(i)に「1」を格納します。 そこで、Target "1"~"20" を変数iであらわしたいのですが、どのように表現したらよいのでしょうか。 Dim i As Integer Dim K(20) As Integer Target1 = TextBox1.Value Target2 = ComboBox1.Value : : Target19 = TextBox12.Value Target20 = ComboBox8.Value For i = 1 To 20 If 『  ?   』 <> "" Then K(i) = 1 EndIf Next i

専門家に質問してみよう