• ベストアンサー

テキストボックスの名前に変数をつける

文字列から文字を抜き取って、 指定したテキストボックスに ループで挿入する処理を作成しています。 イメージとしては下記のような感じです ループ  ・取得した文字←文字列[カウント]  ・「テキストボックス名 + カウント.Text」← 取得した文字   ・カウント = カウント + 1 ループ 真中の行の「テキストボックス名 + カウント.Text」を 定義するにはどうすれば良いでしょうか?

  • su-ta
  • お礼率54% (128/234)

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

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

テキストボックス名をtxtText1みたいだして、 カウンタの変数をintCountとすると、 Controls("txtText" & intCount).Text となります。 もしくは、自分自身のForm上のコントロールであれば、Controlsコレクションを省略して Me("txtText" & intCount).Text となります。

その他の回答 (3)

  • haporun
  • ベストアンサー率40% (230/562)
回答No.4

CallByNameをつかいませう。 X = InputBox("TextBoxの名前は?") MsgBox CallByName(Form1, X, VbGet) とかすると、指定したTextBoxのTextプロパティが取得できます。 正確には MsgBox CallByName(CallByName(Form1, X, VbGet), "Text", VbGet) とするべきですが、Textプロパティを参照する場合に限って、上の構文で良いです。 詳細はCallByNameをMSDNライブラリでごらんくださいな。 ちなみにVB6でなければできなかったような・・・。

su-ta
質問者

お礼

>回答者の皆様 ありがとうございました。 参考にさせて、作成する事が出来ました!

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 よく分かりません。 TextBox1、TextBox2、TextBox3などのテキストボックスが複数あり、そこに文字を挿入(元の値につなげたり、間に挟むということ?)するということでしょうか。 どういう文字をどのテキストボックスに"挿入"するのでしょうか。 イメージのループの中には、"挿入"という操作がありませんが。 具体的に例を出してくれないでしょうか。

  • miya_777
  • ベストアンサー率31% (44/140)
回答No.1

残念ですが、そのような記述はできません。 代わりの方法として、テキストボックスを配列にすることができます。 テキストボックス名(カウント).text ← 取得した文字 とすればOKです。 テキストボックスの配列化は、テキストボックスのindexプロパティを設定すればOKです。

関連するQ&A

  • ワードのテキストボックスについて。

    office2000です。ワードでテキストボックスを挿入してその中に文字を書いたんですがそこで教えてください。テキストボックス内の文字位置なんですが文字を真中にしたいのですが左右の場合は中央揃えのボタンで真中に出来たんですが上下の場合文字を真中にするときはどうしたらいいんですか?お願いします。

  • 表をテキストボックスに入れたい

    Word2007で表を作りました。 最下段の行が2ページ目に行くためテキストボックスに 表を入れ1ページにおさめたいと思います。 出来上がった表をテキストボックスに入れる方法を教えて下さい。 文字列をテキストボックスに入れるときは、文字列を選択して 挿入 → テキストグループ → テキストボックス → 横書きテキ ストボックスの描画で自動的にテキストボックスに入りますが 表は、文字列と同じようにできないのでしょうか

  • エクセルのテキストボックス内は検索できないのでしょうか?

    エクセルの表から任意の文字列をカウントしたいのですが、一部セルでなくテキストボックスにて表が作成されている部分があります。 このテキストボックス内の文字列を検索する方法はあるのでしょうか? 客先指定のフォームのため作り直すことができないのですが、何かよい方法をご存知でしたらぜひご教示ください。

  • ループを使ってテキストボックスにマスクをかける

    以前質問した「テキストボックスの名前に変数をつける」の 続きです。 取得した数をループを使ってテキストボックスに 挿入するのは、下記の方法で出来たのですが、 For 回数 = 1 To 挿入回数 Controls("Text" & カウンタ).Text = 取得した数 カウンタ = カウンタ + 1 Next これと同様に、ループを使って 挿入したテキストボックスにマスクをかける (テキストボックスに入力不可状態にする) 方法はあるのでしょうか? Lockedとか使ってみてもダメでした。

  • テキストボックスをページをまたいで表示できないか?

    WORD2019です。表題の通りです。 テキストボックスの上の行に、文字列、行数を増やしていくと、テキストボックスが順次下がっていきますが、ページの最下部に到達した時点で、テキストボックスが次ページに、すべて移動してしまい、空白部分ができてしまいます。このテキストボックスをページをまたいで表示されるように設定できないでしょうか??? また、数行の文字列を「文字の囲み線」を適用すると、1行ずつ囲ってしまうのですが、これを数行まとめて、囲ってしまう方法はないのでしょうか??? 要するに、数行に渡る文字列を四角の枠で囲って、しかもページをまたいで表示する方法はないのだろうか???という質問なのです。

  • Excelでテキストボックス内に表を挿入することは可能?

    Excel内で2行、3列程の表を作ってそれを、テキストボックス内に入れたいのですが、どうすればいいのでしょうか?テキストボックス内に表を挿入させるのは可能でしょうか?

  • フォーカスがあるテキストボックスに文字を入れる

    GUIでテキストボックスとボタンを作っています。 ボタンをクリックすると、GUIのテキストボックスに書かれた文字がWebブラウザ側にあるテキストボックスへ挿入されるという処理をしたいです。 この処理は、ボタンを押す前にWebブラウザ上のテキストボックスにフォーカスを移し、その後ボタンを押したらフォーカスがある位置に文字を挿入すればできるのではと考えたのですが。。。 フォーカスがある位置に文字を挿入させるやり方がわかりません。 どなたか分かる方教えてください><;

  • テキストボックスに邪魔な枠

    word2002sp-2でテキストボックスを開くとその周りにもうひとつ枠があり入力済みの文字列を移動して割り込み邪魔で仕方ありません、前のPCでは出なかったのですが、出ないようにする仕方と何に使えるのか機能を教えてください。 関連するかわかりませんが、テキストボックスを挿入したとき文字列を排除して割り込む設定になっています。文字列の上にかぶせるように使うことが多いので、挿入した時点で文字列にかぶさるように設定できませんでしょうか。

  • ワードにおけるテキストボックスの挿入

    ワードにおいてテキストボックスを挿入しようとすると先に「描画キャンバス」なるものが出てきます。 そうなるとテキストボックスと描画キャンバス両方のサイズを変更しないといけません。マウスだけで変更できるならまだいいのですが、描画キャンバスはマウスでは変更できずわざわざプロパティ画面みたいなのを開いたあとでサイズを数値指定するしかないようですが。数値指定なので一発でちょうどいいサイズになることはないと思うのですが、何かいい方法はないでしょうか? ダラダラと書いた文章の途中途中にテキストボックスを入れようかと思っています。2行のところもあれば10行のところもあります。 どうすれば効率よくテキストボックスを挿入できるでしょうか? ご教授よろしくお願いします。

  • 複数のテキストボックスの値の取得について

    複数のテキストボックスの値、取得に関して質問させて下さい。 画面に20個のテキストボックスが存在し、 それぞれ id に txt0 ~ txt19を設定しています。 (javascriptにてループで作ってます) for(ii=0; ii<20; ii++){ (略) document.write("<input id='txt" + ii + "' type='text' />"); (略) } 登録ボタン押下後に、上記20個のテキストボックスの値を取得し、 特定の文字だった場合のみ処理を行います。 この処理もループで行いたいのですが、 変数名 txt'i'.value  の 'i'の部分だけを変更したいのです。(iは 0~19) 変数名の一部を変数にすることは可能でしょうか? 配列にできれば話は簡単なのですが・・・配列にできるでしょうか? with (document.form1) { for(ii=0; ii<20; ii++){ (略) tempTxt = txt0.value; ←右辺の値をiiの値と共に txt0.value から txt19.value に変化させたい。 (略)            ("txt" + ii + ".value" では文字列になってしまい・・) if(tempTxt == "ABC"){ (略) } } } 別の手段でもかまわないのですが、何かよい方法が ありましたら、ご回答お願いします。

専門家に質問してみよう