- ベストアンサー
エクセルのVBAでオブジェクトの配列変数は使えますか?
maruru01の回答
こんにちは。maruru01です。 コレクションというものがあります。複数のオブジェクトをコレクションにまとめ、インデックス値で識別出来ます。 以下に例を示します。 フォームにテキストコントロールが10個(Text1~Text10)あるとします。 ***宣言部に*** Private myCollect As New Collection ***例えばフォームのInitializeイベントに With myCollect .Add Item: = Text1 .Add Item: = Text2 : : .Add Item: = Text10 End With とコレクションを作成します。 そしたら、下のようにインデックス値でコントロールを識別出来ます。 'Cells(1, 1)~Cells(1, 10)にText1~Text10の値を順にセットする For i = 1 To 10 Cells(1, i) = myCollect(i).Value Next i では。
関連するQ&A
- エクセルVBAでサブルーチンへの変数の配列渡し
エクセルVBAで、メインで使用してる配列変数(の値)をサブルーチンに渡したいが、どうすればよいでしょうか。(なお、メインプログラムは大きいためこれ以上は書けないのでサブルーチンを使用) よろしくお願いいたします。
- 締切済み
- Visual Basic
- エクセルvbaの変数について
エクセルVBAについて、同じ型の値が複数列あった際に、変数に取り入れる方法として、それぞれ一つずつ別々に変数に入れる場合と、ユーザー定義型変数を定義して入れる場合の二つがあると思いま すが、どちらの方がメモリを使わなくて済むのでしょうか。また、他にも長短があればご教示下さい。
- 締切済み
- Visual Basic
- Excel97のVBAでの、配列について。
TextBoxを直接配列にすることは出来ますか? VBでは、プロパティのINDEXか何かで設定ができたかと思います。 VBAではそれらしきものが見つかりません。 TextBox1(0).text・・・ TextBox1(1).text・・・こんなふうに。 変数を配列にしてSetするよりも簡潔に出来る方法を教えてください。
- 締切済み
- オフィス系ソフト
- VBAの配列
VBAの配列の処理でこまっています。 dim test as Variant test = Array( _ Array("Aさん", 65, 70, 45), _ Array("Bさん", 80, 10, 90)) とした成績データがありまして、あとから(定義の段階でなく)、"Cさん", 70, 70, 75をtest変数に追加したい場合、どのようにすればよいのでしょうか? また、これ(test)を戻り値にした場合、正しく左辺値にはいるのでしょうか?オブジェクトの解放などの問題も知りたいです。 function seiseki () as variant ... 上の処理 seiseki = test end function ... dim cp as Variant cp = seiseki() 'cp変数にコピーされるのでしょうか?
- ベストアンサー
- Visual Basic
- 大量の変数を定義するにはどうしたら良いですか?
VBA或いはVBのプログラムの最初で変数の型を定義したい場合、 変数が100個以上ある場合にはどうすれば良いのでしょうか? 100行にも渡って変数の定義を書くのはあまりにも見づらいと思います。何か良い方法がありましたら教えて下さい。
- ベストアンサー
- Visual Basic
- エクセルVBAでの変数のスコープ
基本的なことなのですが、教えて下さい。 当方、PHPやjavascriptを中心にプログラムしてきたのですが、 今回、エクセル+VBAでプログラムすることになり、VBAを勉強しているところなのですが、ちょっと戸惑っています。 いままでは、グローバル変数をなるべく使わないように、プログラミングをしてきたのですが、 VBAの勉強で、参考にしている本のコードは、全てグローバル変数を使っています。 そもそも、エクセルのシート・セルがグローバル変数のようなもの(?)なので、変数のスコープにこだわってもあまり意味がないのかな?とも思います。 エクセル+VBAである程度の規模のプログラムを作る際、 変数のスコープはどのように使い分けるのが良いのでしょうか? すみませんが、ご教授の程、よろしくお願いします。
- ベストアンサー
- Visual Basic
- 配列にすると変数が入らない
お世話になっています MS Excel2003のVBAで質問です find関数の結果を オブジェクト型変数だと入るのに、オブジェクト型配列だと入らない、 そういう仕様なんでしょうか? 成功 Dim result As Object Set result = wb2.Worksheets(1).Range(Cells(2, num), Cells(500, num)).Find(key) 実行時エラー1004 アプリケーション定義またはオブジェクト定義のエラーです Dim result(10) As Object '検索結果 Set result(0) = wb.Worksheets(1).Range(Cells(i, num), Cells(500, num)).Find(key)
- ベストアンサー
- Visual Basic
- VBA オブジェクトが空かどうか判定する
皆様のお知恵を拝借させてください。 エクセルVBAでオブジェクトを入れる変数を定義し、その変数にオブジェクト が入っているかどうか検査したいのですがどうしたらいいでしょうか。 例えば--- Dim a As Workbook If a <> nothing then ←この部分が分からない。このままだとエラー。 処理 End if --------- 環境 エクセル2003 WinXPsp1
- ベストアンサー
- Visual Basic
- EXCEL VBAでオブジェクトを削除するには?
EXCEL2000を使用しています。 HPからコピーした表を利用して、VBAで加工したいと思っています。 HPからコピーした場合、不要なオブジェクトがある為、まずこれを消したいのです。 EXCELでの一般的な方法としては、オブジェクトの選択をしてから、範囲指定をし、削除すれば処理できます。VBAではオブジェクトの名前を指定しなければならないと思うのですが、HP上の、オブジェクトの名前は頻繁に変わる為、名前を指定するという方法では、使いづらいのです。 何か良い方法はないでしょうか?
- 締切済み
- オフィス系ソフト
- Excelオブジェクト
エクセルオブジェクトに関して質問です。 VBより起動したExcelをExcelの"×"ボタンで閉じると、タスクにExcelオブジェクトが残ってしまいます。Excelの"×"ボタンを使用し、タスクからも完全にExcelオブジェクト解放する方法はありますか? よろしくお願いします。
- 締切済み
- Visual Basic
お礼
ありがとうございます。 さっそくためしてみまーす。 またご連絡差し上げます。
補足
補足欄になっちゃいましたけど、 うまくうごきましたよ。 しばらく、ウィルス関連で忙しかった ものですから、ご返事おそくなってしまって すいませんでした。 ありがとうございました。nika