VB6について質問です


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

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

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

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2010/03/16 18:25:22
  • 終了:2010/03/18 00:38:05

ベストアンサー

id:HALSPECIAL No.1

HALSPECIAL回答回数407ベストアンサー獲得回数862010/03/16 18:43:03

ポイント100pt

こういう事でしょうか?

フォーム上の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

id:harunoharuno

ありがとうございます。

出来ました!

2010/03/16 20:06:46

その他の回答(2件)

id:HALSPECIAL No.1

HALSPECIAL回答回数407ベストアンサー獲得回数862010/03/16 18:43:03ここでベストアンサー

ポイント100pt

こういう事でしょうか?

フォーム上の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

id:harunoharuno

ありがとうございます。

出来ました!

2010/03/16 20:06:46
id:ko8820 No.2

ko8820回答回数1221ベストアンサー獲得回数692010/03/16 18:51:27

ポイント25pt

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

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

可能ではありません。

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

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


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

id:mj99 No.3

mj99回答回数138ベストアンサー獲得回数382010/03/16 19:47:02

ポイント100pt

> 配列にデータが存在するときのみ引数として受け取った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に示した内容はやや無意味です。すいません。)

id:harunoharuno

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

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

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

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

参考になります

2010/03/16 20:24:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません