Puppyのパソコンさぽーと

Puppyのパソコンさぽーと

2009年05月25日
XML
カテゴリ: カテゴリ未分類
VB(VisualBASIC)でプログラムを組んだ方はご存知かと思いますが、VBではコントロールを配列として定義することができます。
例えば,多数のLabelコントロールを,

Label(0)・Label(1)・Label(2)・・・・Label(99)

と処理の中で配列として扱うことができます
仮にLabel(0)からLabel(99)まで数字の1に変更する場合は

Label(0).caption = 1
Label(1).caption = 1
Label(2).caption = 1
Label(3).caption = 1

Label(99).caption = 1

と入力していました。
しかし、VBでは下記のようにコントロール配列を使用し簡略化できます。

for i = 0 to 99
Label(i).caption = 1
Next

と、なります。
しかし、ExcelやACCESSのVBAではコントロール配列は 使用できません
しかし、ある方法を使用すると完璧には行きませんが、コントロール配列のようなプログラムを作成することができます。
作成方法ですが、仮に
Label1・Label2・Label3・・・・Label99

このとき、

for i = 0 to 99
"Label" & i.caption = 1
Next

とプログラムを書いてもエラーが出ます。


for i = 0 to 99
Me.Controls("Label" & i ).caption = 1
Next

この"Controls関数"はループの数字と文字列「Label」と結合しコントロールを制御し処理する関数です。
上記ではラベルのみを制御しましたが、テキストボックスやコンボボックスといったコントロールも可能です。
なかx2使用する機会は少ないですが使用してみるとコードがすっきりしました。

以上、覚書をかねた関数解説でした。 おわり



Excel VBA逆引き便利帖





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2009年05月25日 17時15分23秒
コメント(4) | コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
上の画像で表示されている数字を入力して下さい。


利用規約 に同意してコメントを
※コメントに関するよくある質問は、 こちら をご確認ください。


Re:ExcelVBA フォームでコントロール配列(もどき)(05/25)  
杏子#♪  さん
最近、VBもVBAも触っていなかったのですが、記事を読んでひたすら「Label(1)...」などと書いていたのを思い出しました。
あの頃このテクニックを知っていたら、と遠い昔をなつかしく思い出しました。(@^o^@)
(2009年05月25日 18時45分19秒)

Re[1]:ExcelVBA フォームでコントロール配列(もどき)(05/25)  
かずま1205  さん
杏子#♪さん
私も同じです・・・・・
あの頃の自分に教えてあげたいです♪ (2009年05月28日 13時06分49秒)

仕事でぐぐってたら  
ygon さん
ついてしまった (2010年08月05日 09時25分24秒)

Re:仕事でぐぐってたら(05/25)  
かずま1205  さん
ygonさん
>ついてしまった
-----
どうもです。
更新してないブログへようこそ(笑) (2010年08月06日 11時56分31秒)

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: