• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ステートメントの簡略方法(ループ))

Visual Basic 6.0でのステートメントの簡略方法(ループ)について

このQ&Aのポイント
  • Visual Basic 6.0でFor/Doを使ってオブジェクト名を省略する方法について教えてください。
  • フォームロード時に各セルの値をCommandButtonのオブジェクト名に割り当てる方法を教えてください。
  • CB1の部分を動的に変更する方法があれば教えてください。

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

  • ベストアンサー
回答No.1

>"CB" & SUU の様にしたいの だと、文字列になるのでオブジェクトを指していないので当然です。 From2.Controls("CB" & SUU).Caption の様にコントロール名から対象となるコントロールを取得することで可能です。 参考 http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard20.htm また、コントロール配列が可能であれば、再考してみてください。

mmac
質問者

お礼

すみません、コントロール配列を理解していませんでした。 ボタンやテキストボックスをコピー&貼付けでコントロール配列させ 上記方法で、省略可出来ました。 有難う御座いました。

mmac
質問者

補足

回答有難う御座います。 From2.Controls("CB" & SUU).Caption を試したのですが、その箇所でエラーしてしまいます。 実行時エラー'424'; オブジェクトが必要です。 Form1からForm2を操作しているからでしょうか? 下記はDimのSUUを省きました。 Private Sub Command3_Click()  Dim xlApp As Object  Dim xlBook As Object  Dim xlSheet As Object  Dim i As Integer  Set xlApp = CreateObject("Excel.Application")  Set xlBook = xlApp.Workbooks.Open("C:\Link一覧.xls")  xlApp.Visible = False  Set xlSheet = xlBook.Worksheets("Sheet1")  Form2.Label1.Caption = Trim(xlSheet.Cells(11, 2))  For i = 1 To 20 Step 1 '(CommandButton CB1~CB20まで)   From2.Controls("CB" & i).Caption = Trim(xlSheet.Cells(10 + i, 3))  Next i  xlBook.Close (True)  xlApp.Quit  Set xlApp = Nothing End Sub

関連するQ&A