人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VB6について質問です

Dim ctrlLabel() As Labelという配列が存在します。
このctrlLabel配列の中にForm1上に存在するLabel1を設定したいと思いますが可能でしょうか?

狙いはForm1からメソッドBを呼び出す際に、Label1を渡してあげることにあります。
メソッドBはラベルの存在しないFormBからも呼び出されるため、
配列にデータが存在するときのみ引数として受け取ったLabel配列(0)に
書き込み+リフレッシュを行うように考えています。

アドバイス宜しくお願いします。

●質問者: harunoharuno
●カテゴリ:コンピュータ
✍キーワード:as vb6 アドバイス データ ベル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● HALSPECIAL
●100ポイント ベストアンサー

こういう事でしょうか?

フォーム上の2つのラベルコントロールを変数にセットします。

オブジェクトを変数に突っ込む時は、

Set を使って記述します。

Option Explicit

Private Sub Form_Load()
 Dim lbl(2) As Label
 Set lbl(0) = Label1
 Set lbl(1) = Label2
 Debug.Print lbl(0).Caption
 Debug.Print lbl(1).Caption
End Sub

◎質問者からの返答

ありがとうございます。

出来ました!


2 ● ko8820
●25ポイント

>Dim ctrlLabel() As Labelという配列が存在します。

>このctrlLabel配列の中にForm1上に存在するLabel1を設定したいと思いますが可能でしょうか?

可能ではありません。

>Dim ctrlLabel() As Labelという配列が存在します。

この宣言だとLabelのコントロール配列になるので、違うフォーム間できちんと動作しません。


http://homepage1.nifty.com/rucio/main/shokyu/jugyou20.htm


3 ● mj99
●100ポイント

> 配列にデータが存在するときのみ引数として受け取ったLabel配列(0)に

> 書き込み+リフレッシュを行うように考えています。


メソッドBに渡したいのはLable1の1つだけなのでしょうか?

だとしたら、ラベルを渡さないForm2からは、Nothingを引数に設定すると良いです。


----

Form1では、以下のようにメソッドBをコールします。

Private Sub Command1_Click()
 Call Method_B(Me.Label1)
End Sub


Form2では、以下のようにメソッドBをコールします。

Private Sub Command1_Click()
 Call Method_B(Nothing)
End Sub


メソッドBは、以下のように定義します。

Public Sub Method_B(lb As Label)
 If Not (lb Is Nothing) Then
 lb.Caption = "hogehoge"
 lb.Refresh
 End If
End Sub

----

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28458&fo...

(URLに示した内容はやや無意味です。すいません。)

◎質問者からの返答

回答どうもありがとうございます。

Labelなしの時はNULLを渡していたのですがエラーになって困っていたのでした。

それで配列の数で判定するような方法をとったのですが、

Nothingの値を渡すという手があったんですね。

参考になります

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ