• ベストアンサー

VBEユーザーフォームのテキストボックスがいっぱい

excel2000を利用しています。 ユーザーフォームで、大量のテキストボックスを貼っているのですが(1000個近く) これのオブジェクト名をひとつひとつ変えるのが、すごく大変で、リストみたいな感じで、簡単に変更することが出来ないかな? 何かいい方法がないかなって悩んでいます。 何かいい方法等、あればアドバイスお願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>大量のテキストボックスを貼っている 図形描画のテキストボックスですか? それともコントロールツールボックスのテキストボックスですか? >簡単に変更することが出来ないかな? 簡単にできますが,具体的にいったい「どういう具合に変更」できたらアナタ的には便利なのですか? ○「テキストボックス_そのボックスが置いてあるセル番地」みたいな名前にしてみたい ○「テキスト1,2,3」と連番が付けばよい(でもこれなら通常はそういう風になっているはず) ○何か,あなたにとって「判りやすい(「使いやすい」)名前一覧」がシート名不明のA1:A1000に記載してあって,その名前を付けたい。(しかし一体どのテキストボックスにどの名前を取り付ければよいのか,対応が謎) 作成例:どういう具合に名前を付けたいにせよ,概ねこのバリエーションで出来ます。 sub macro1() '図形のテキストボックスの場合 dim tx as textbox for each tx in activesheet.textboxes tx.name = "Text_" & tx.topleftcell.address next end sub sub macro2() ’コントロールツールボックスのテキストボックスの場合 dim o as object for each o in activesheet.oleobjects if typename(o.object) = "TextBox" then o.name = "text_" & o.topleftcell.address end if next end sub

puyopa
質問者

お礼

回答ありがとうございます。 大変ありがたいです。とても勉強になりました。 質問の仕方をもう少し明確にするように気をつけます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

まずこの質問はVBAの質問ですか?明記すべきでしょう。 ーー エクセルのフォームごときで、>1000個近くのテキストボックスを貼り付けること自体が、エクセルの想定外というか、設計に問題は無いのかな。 テキストボックスの選択など、スクロールの問題を考えれば、利用者が探すのに、手数がかかるのでは。 エクセルにはセルというものがあるのに、別のデータ入力や表示領域を使うというのはどういう意味か、一言書いて質問すべきでは。 http://www.keep-on.com/excelyou/2001lng4/200102/01020102.txt も気になりますが、1000個のテキストBの貼り付けOKでしたか。 ーー >オブジェクト名をひとつひとつ変えるのが VBAを使えば出来るが、名前の文字列のバリエーションはどうなのかな。そういうことも質問に書かないで質問するのは不備では。望むようにバラバラの名前にするには方法を考えないといけないでしょう。 またテキストボックスを1000個フォームに作るのもVBAで(繰り返し処理で)数行のコードで出来る。名前も統一的な名前(サブ番号をつけるようなの)なら同時に設定できる。 ーー 文字通り名前の変更ならVBAコードはやさしいが、コントロール配列(VBAでは正面きってこの機能が無い)の問題になると難しい。 質問の処理全般では、例えば1000個のテキストBのどのテキストBでユーザーによる(入力・変更など)処理が起こったのかの判別など要らない、仕組み・課題なのか。

puyopa
質問者

お礼

回答ありがとうざいます。 テキストボックスが2種類あることを知りませんでした。 いつも不明確な質問をしているにも関わらず、パターン別に回答頂き助かります。 ありがとうございました。

関連するQ&A