オブジェクト名で値にアクセスする方法とは?

このQ&Aのポイント
  • アクセス2003のフォームデザインでは、オブジェクトの配列が作成できず、名前を1つずつ付けて作成する必要があります。
  • for文を使用して複数のオブジェクトのプロパティ値を一括で設定する方法を探しています。
  • アクセス2003でのオブジェクト名を使ってループ処理を行い、プロパティ値を設定する方法はありますか?
回答を見る
  • ベストアンサー

事後作成後のオブジェクト名で値にアクセスする方法?

アクセス2003でフォームデザインのピクチャーはVB6のようにオブジェクトの配列ができないので、1個ずつ名前をpic01, pic02, poc03と付けて作成しています。そこで問題なのですが、for文でピクチャー個数分プロパティ値を設定したいのですが pic01.left = 1000 pic02.left = 1500 pic03.left = 2000 ではなくて、for文でループしてプロパティ値を設定したいのですが 可能でしょうか?3個程度なら手で書きますがこれが20個や50個となると うっとうしいので、簡単にできる方法を探しています。 for i = 1 to 3   name = "pic" & right("0" & trim(str(i))) 'nameを使ってプロパティ値を設定したい next i

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

  • ベストアンサー
  • fly_moon
  • ベストアンサー率20% (213/1046)
回答No.1

pic01.left = 1000 ↓ Me.Controls("pic" & Format(i, "00")).Left = i * 500 + 500 と言う書き方が出来ますが。

関連するQ&A

  • オブジェクト名を変数で参照できますか

    VB初心者です。 配列の場合 Dim str(10) as string と宣言し、i番目のデータを取り出したいときには、str(i) と記述すると思います。 そこで質問ですが、例えばCommandが1~10まであるとします。 オブジェクト名はそのまま(Command1, Command2)で、それぞれのCaptionに違ったデータが入っています。 (例えば、Command1のCaptionには'A' Command2のCaptionには'B'といった感じに) ある文字列があり、For文を使い、CommandのCaptionとその文字列が一致したときに文字列を出力するという処理を行いたいとき、どのように Command1~10のCaptionを回せばいいのでしょうか? コードを記述しておきます。 Dim str(10) as String Dim i as Integer Dim j as Integer for i = 0 to 10 for j = 0 to 10 ☆☆ if Command(i).Caption = str(j) then print.str(j) end if next next ☆☆のところです。 可能であれば回答をお待ちしております。 環境は windows XP, VB6.0 です。

  • 配列に同じ値を入れる方法

    配列に0という値を入れたいのですが、 いっぺんで出来る方法はありますか? 今は、TEST(i,j)という配列があったら iとjをfor~next文で一つずつ入れてます。

  • ループで置換がうまく行きません

    こんにちは。よろしくお願いします。 以下のようなソースで、 指定した文字列があれば置換、という作業を、 配列をループさせて連続して行いたいと思っているのですが、置換されません。 ---------------- $str = "年齢は<--age-->才"; #置換したい文字列の配列 $from[0] = '<--name-->'; $to[0] = 'やまだ'; $from[1] = '<--age-->'; $to[1] = '10'; $from[2] = '<--date-->'; $to[2] = '今日'; #配列分ループして、ヒットしたら置換する for ($i=0; $i<=2; $i++){ $str=~s/$from[$i]/$to[$i]/go; } print $str; --------------------- 結果:年齢は<--age-->才 --------------------- ところが、全く同じ処理をループせずに行うとうまくいきます。 ------------------- $i = 0; $str=~s/$from[$i]/$to[$i]/go; $i = 1; $str=~s/$from[$i]/$to[$i]/go; $i = 2; $str=~s/$from[$i]/$to[$i]/go; print $str; --------------------- 結果:年齢は10才 --------------------- こんな事ってあるのでしょうか? 何か間違いがありましたら教えて下さい よろしくお願いします

    • ベストアンサー
    • Perl
  • VBAのループの作成方法

    質問があります。 <ソース> With Worksheets(Sheet_No)  For x = 1 To 100   F = 0 For y = 1 To 200    Check = StrComp(Trim(Nyukan_name(x)), Trim(Userid_name(y)), vbTextCompare)    If Check = 0 Then    Outdata_ok(????) = Userid_name(y) & " | " & User_id(y) ???? = ???? + 1 F = 1 End If Next y If F <> 1 Then Outdata_ng(??) = Nyukan_name(x) ?? = ?? + 1 End If Next x End With 上記で配列のデータを配列に入れたいのですが、ループ処理がうまくいきません。(????と??の場所)Err内容:インデックスがありません。 変数の宣言も不明なのですが、Userid_name(y) と Nyukan_name(x)の値を1から順番にOutdata_ok(????) と Outdata_ng(??) に入れたいのですが、どのようにするのでしょうか? <サンプル> Nyukan_name(x) Userid_name(y) 1 1   aaaa 2 2 bbbb 3 1 cccc 4 3 dddd 上記のようにあった場合、Outdata_ok(????) にはNyukan_name(x)にある1でヒットしたものはすべて格納 Nyukan_name(x)にある4でUserid_name(y)に無いものはOutdata_ng(??)に格納

  • strutsで2次元配列をやりとりする方法。

    こんにちは。質問です! 現在、STRUTS+Javaを使ってプログラミングしているのですが、 jspにて<logic:iterate>でループさせ 2次元配列をhidden要素に持たせるまでにはいたったのですが、 その際に、 <html:hidden name="aaa" property="str[0]" indexed="true" /> <html:hidden name="aaa" property="str[1]" indexed="true" /> 以後続く・・・ で表示すると、HTML表示で、 <INPUT type="hidden" name="aaa[0].str[0]" value="あああ"/> <INPUT type="hidden" name="aaa[0].str[1]" value="いいい"/> 以後続く・・・ となってしまい、サーブレットに送る際に、name属性に配列のindexが 付加されているため、strに値が入ってきません・・・ 2次元配列をjspとサーブレットでやりとりする方法を教えてください。 strとaaaの型は共にjava.util.Listです。 ご回答、よろしくお願い致しますm(_ _)m

  • オブジェクト名に変数を使いたい

    <form id="form1" name="form1" method="post" action=""> <label for="q1-1"><input id="q1-1" name="q1" type="radio" value="1" />あ</label> <label for="q1-2"><input id="q1-2" name="q1" type="radio" value="0" />い</label> <label for="q1-3"><input id="q1-3" name="q1" type="radio" value="0" />う</label> <label for="q1-4"><input id="q1-4" name="q1" type="radio" value="0" />え</label> <label for="q2-1"><input id="q2-1" name="q2" type="radio" value="1" />あ</label> <label for="q2-2"><input id="q2-2" name="q2" type="radio" value="0" />い</label> <label for="q2-3"><input id="q2-3" name="q2" type="radio" value="0" />う</label> <label for="q2-4"><input id="q2-4" name="q2" type="radio" value="0" />え</label> </form> ============================================================ 上のような4択の問題が10問あります。 これを採点して合計点数を表示させたいと思っていますが、 下記のようにfor文を使う際、オブジェクト名の、"q1"の"1"というところに変数nを使いたいのですが、やり方がわかりません。 ============================================================ for(var n=0;n<10;n++){ var length=document.form1.q1.length; for(var i=0;i<length;i++){ var checked=document.form1.q1[i].checked; if(checked==true){ ans = i; } } var value=document.form1.q1[ans].value; } ============================================================ いろいろ調べてみましたが、うまくいかず固まっております。 どなたかご教授いただけませんでしょうか?

  • C#のループでtextboxに値を入れる方法

    Nameが textbox1 textbox2 ... textbox10 と10個のtextboxがあったとして、 このそれぞれのtextに値を入れたいのですが、 1個ずつ書くのではなく、forとかで入れることは出来ますか? たとえば以下のように、ループで○の部分を変更していくことは可能なのでしょうか? for (int i=1; i<=10; i++) { textbox○.text = i.ToString(); } よろしくお願いします。

  • プログラムの課題で分からない問題があるので、ヒントを教えていただきたい

    プログラムの課題で分からない問題があるので、ヒントを教えていただきたいのです。 ちなみにfor文、if文、配列などを応用して(勿論ぜんぶ使わなくても良いです)プログラムをつくるものなのですが、配列をうまく理解してないので、どういう風に配列に代入して出力するかアドバイスお願いします。 ・キーボードから入力した2つの文字列(8文字以内)を比較して、同じときには○、異なるときは×と表示する int main(void) { char str[8]; int i,n,na; for (i=0;str1[i]= =str2[i];i++){ if (str1[i]= ='\0'){ n=1; }break; } というトコまでは何とか分かるのですが…

  • ループ回数を、保存するファイル名に入れる方法

    FORTRANで、ループする毎に異なるファイルにデータを保存するプログラム(ファイル名の中にループ回数入れたい)を組みたいと思っており、自分で調べて、FORTRAN90なら例えば character*32 roop do i=1,100 write(roop,*)i open(1,FILE='file_'//adjustl(trim(roop))//'.dat') write(1,*)data close(1) enddo というようにwrite文で文字型変数に変換し、adjustlとtrimを使って余分な空白を取り除いて、//で結合すれば実現できることはわかったのですがこれと同じ事をFORTRAN77でやりたいと思っています。 困っているのはadjustlとtrimの部分をFORTRAN77で実現するところなのですが、なにかよい方法はありませんでしょうか? どうぞよろしくお願いいたします。

  • Rubyで配列を使ったfor文の中に条件つきif文

    Rubyで配列を使ったfor文の中に条件付きのif文を入れてループさせたいのですが、基本的な構文が分かりません。 for i in array     if i == 9       array[i] << 'ア'     end end という雰囲気で書きたいのですが、どうしたらよいでしょうか。 i番目のループまで、配列のarrayを走査するにはどうすればよいでしょうか。 基礎的な質問ですみません。よろしくお願いします。

専門家に質問してみよう