• 締切済み
  • 暇なときにでも

VBAのコントロールを変数に

TextBox1~10というのをFor n=1 to 10 TextBox(n)="OK WEB" Next としても動きませんよね。TextBox1やComboBox8など数字のところを変数にするにはどのように記述すれば良いのでしょうか

noname#4342
noname#4342

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数161
  • ありがとう数13

みんなの回答

  • 回答No.3
  • maro
  • ベストアンサー率47% (95/199)

For i=1 To 10 Me("TextBox" & i).Value="OK WEB" Next で、いかがでしょう?

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • WordのVBAにてコントロール名に変数を使いたい

    Wordでコントロールツールボックスのコントロールを複数個並べて、コントロール名を変数で切り替えたいと思っています。 例えば、テキストボックスを3つ並べた時、以下のように「i」を変数にしてFor文でまわしたいです。 【例】 TextBox1 TextBox2 TextBox3  ↓ For i=1 to 3 TextBox「i」= ・・・(A) Next i Excelであれば、(A)の部分は、以下のようにOLEObjectsを使えば実現できますが、Wordではコンパイルエラーが出てしまいます。 Dim strName As String For i=1 to 3 strName = "TextBox" & i Me.OLEObjects(strName).Object・・・ next i どのようにすればよいのか、ご教授いただけると幸いです。 お願いします。

  • 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

  • 変数とループを使ったマクロについて

    恐縮ですが、ご教示をお願い致します。 comboboxの値を空白のtextboxに貼り付けるものです。 本を片手にマクロを作成していたのですが、上手くいかず困っております。 作成したマクロ Private Sub CommandButton100_Click() '入力値のチェック If ComboBox1 = "" Or ComboBox2 = "" Then GoTo 998 '空白ボックスを検索しデータ入力 If TextBox11 = "" And TextBox12 = "" Then TextBox11 = ComboBox1 TextBox12 = ComboBox2 GoTo 999 End If If TextBox21 = "" And TextBox22 = "" Then TextBox21 = ComboBox1 TextBox22 = ComboBox2 GoTo 999 End If If TextBox31 = "" And TextBox32 = "" Then TextBox31 = ComboBox1 TextBox32 = ComboBox2 GoTo 999 End If ↓ ↓  以下50個あります。 ↓ If TextBox501 = "" And TextBox502 = "" Then TextBox501 = ComboBox1 TextBox502 = ComboBox2 GoTo 999 End If 998 MsgBox "入力値に誤りがあります 999 End Sub とてつもなく長くなってしまいました。 変数をループを使って色々やってみたのですが、どうにもならず。。。 簡単に変数及びループを使用して纏める事は出来る物なのでしょうか? よろしくお願いいたします。

  • 回答No.2

同じのがあるからループで何とかしたいって事ですよね? VBならIndexプロパティ使って配列にしちゃえばできたんですけどね。 Collectionオブジェクトというのが使えると思います。 コントロールを配列にするときの入れ物と考えてください。一旦これに入れちゃえば 配列と同じように使えるようになります。 詳しくはお使いのVBAのヘルプを見てください。使用例も載っていると思います。 (Excel97のVBAヘルプで調べてみました。)

共感・感謝の気持ちを伝えよう!

  • 回答No.1
noname#25358
noname#25358

テキストボックスにはTextプロパティ、コンボボックスにはListプロパティというのがありますから、そっちに代入します。TextBoxはオブジェクトなので、そのまま代入は出来ませんよ。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • VBA初心者です。教えて下さい。

    VBA初心者です。 すいません教えて下さい。 たくさんのテキストボックスに決められた値を入れたいです。 今は1つ1つのテキストボックスに静的に直書きしています。 (理由は聞かないで下さい、、、^^;) 【今】 ---------------------------------------- TextBox0.Text = "0です" TextBox1.Text = "1です" …(省略) TextBox100.Text = "100です" ---------------------------------------- これをもっとスマートに出来ればと思い"For"を使いました。 【やりたいやり方】 ---------------------------------------- For i = 0 To 100 TextBox & i .Text = i &"です。" Next ---------------------------------------- 、、、が当然の結果、i変数を扱うことが出来ずにエラーになります。 どうにかスマートに実現する方法はありませんでしょうか? 申し訳ありませんがご教示頂ければと思います。

  • web上のTextBoxに値を代入したい

    asp.netとVBでwebプログラムを作成しています。 web上にTextbox1~Textbox10を置いて、それぞれに1,2,3,4・・・・10を代入したい場合 Textbox1.text = 1 Textbox2.text = 2 ・ ・ Textbox10.text = 10 と書けば、それぞれに数字が代入され表示されますが、 For i = 1 to 10 Me.controls("Textbox" & cstr(i)).text = i Next と言うような書き方でコンパクトにまとめることは可能なんでしょうか? ちなみに、上記の記述をすると、「.textはSystem.Web.UI.Controlのメンバーでない」旨の エラーになります。 どなたかご教示お願いします。

  • コントロール配列と同じような扱い方

    TextBox1、TextBox2、TextBox3・・・・TextBox10 と10個のテキストボックスにVB6で使っていたコントロール配列と同じような処理の仕方をコードで教えていただけませんか。 for i=0 to 9 TextBox(i).Text=i next i 上記のコードをVB.NETで書くとすれば、どのように書けばいいかということさえわかれば、なんとか頑張れる気がします。

  • エクセル VBA コンボボックスの計算

    UserForm1上に コンボボックスには数字がリストされます! ComboBox1、ComboBox2、ComboBox3 3つ作成して 例えば ComboBox1=1 ComboBox2=0 ComboBox3=5 と表示された時 CommandButton1をクリックしたら UserForm2の TextBox1に”6”と足し算 された数字を表示したいのですが 普通のセルなら 出来るのですが・・ ComboBoxでするなら どのような記述に なるのでしょうか? すいません、教えて下さい!

  • 反復処理のまとめかた

    例えば textbox1.text=a textbox2.text=b textbox3.text=c というような式があるとして これをforでまとめる場合、変数は配列に出来ますが textbox1~3はどういう風にまとめればいいんでしょうか? for i = 0 to 2 step 1 ○○.text=array[i] next ここの○○をどう書けばよいか教えてください それとも別のやり方があるんでしょうか? 初歩的な質問で申し訳ないです。

  • Textbox1.textについて

    質問のタイトルからして、何の質問という感じで すみません。TextBox1.TextをTextBox10.Textまでつくり cells(1,1)=TextBox1.Text l l cells(1,10)=TextBox10.Text 各セルにTextBoxの内容を書き込みたいのです。セルとテキストの変化 部分をそれぞれ、変数1、変数2とおいてFor~Next なりDo until loop なりで、変数を変化させようと思いました。cells(1,変数1)の指定 は上手くいったのですが、TextBox変数2.Textの指定がうまくいきません。 TextBox変数2.Textについてどのように変数の設定をしたら、良いでしょうか? そもそも、TextBox1.Textの数字部分【1】は変数に指定できないのでしょうか? すみませんが教えてください。EXCEL2000を使っています。

  • Excel VBA(Win2000、Office2000)

    現在、VBAでExcelのシートに書き込むフォームを作っており、日付に関することで困っています。 フォーム上には複数のComboBox、TextBoxが並んでおり、OKボタンをクリックすることで、フォーム上に並んだ、ComboBox、TextBoxの値をセルに書き込むようにしています。 問題の日付に関する質問についてですが・・・ ユーザーフォーム上に 年を入力するComboBox1 → 2004 月を入力するComboBox2 → 5 日を入力するComboBox3 → 7 *いづれも、プルダウンから数字を選択して入力するようにしています。 この3つの入力値を合わせて、2004/05/07と認識させて、TextBox1に"金"と表示させたいのですが、どのようにしたら良いでしょうか? TextBox1表示されるタイミングは、日を入力するComboBox3が入力された時としたいです。 宜しくお願い致します。

  • Excel VBAで年齢を求める(Win2000、Office2000)

    現在、VBAでExcelのシートに書き込むフォームを作っており、日付に関することで困っています。 フォーム上には複数のComboBox、TextBoxが並んでおり、OKボタンをクリックすることで、フォーム上に並んだ、ComboBox、TextBoxの値をセルに書き込むようにしています。 ユーザーフォーム上に 年を入力するComboBox1 → 1972 月を入力するComboBox2 → 1 日を入力するComboBox3 → 1 *いづれも、プルダウンから数字を選択して入力するようにしています。 この3つの入力値を合わせて、1972/01/01と認識させて、TextBox1に"32"才と表示させたいのですが・・・現在、3つのComboBoxから日付を変数にセットするところまで出来ています。 ↓ Private Sub ComboBox3_Change() Dim B As Date B = Me.ComboBox1.Value & "/" & Me.ComboBox2.Value & "/" & Me.ComboBox3.Value 問題は、このあと誕生日を求める方法がわからず困っています。 *TextBox1に表示されるタイミングは、日を入力するComboBox3が入力された時としたいです。 宜しくお願い致します。

  • VBAについて

    UserFormのTextBoxで日付(例:12/1)と入力されたら、 エクセルシートに「12/1」と表示させたいと思っています。 そこで、以下のプログラムまではできているのですが、 これだと「2005/12/1」と表示されてしまいます。 d = TextBox1.Text For i = 4 To 35 Sheet1.Cells(4, i) = d d = d + 1 Next i どのようにプログラムを書いたら「12/1」というような表示の仕方になるのか どなかた教えてください。

  • フォーム & FOR文

    TEXTBOX1,TEXTBOX2,....をFOR文でまわして処理をしたいのですが、 やり方としては For i = 1 To 8 hairetu(i) = TextBox & i &.Text Next にするとエラーになってしまいます。 何か方法はないでしょうか?

専門家に質問してみよう