掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的配列のPublic宣言の方法 (ID:91201)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
方法は2つあります。 ひとつは、配列そのものを返すメンバを作成する事です。 Public Property Get MyArray() As String() MyArray = Split("1 2 3") End Property Private Sub Command1_Click() MsgBox MyArray()(0) MsgBox MyArray()(1) MsgBox MyArray()(2) End Sub もうひとつは、配列の添字を引数にして実装するパターンです。 Public Property Get YourArray(ByVal Index As Integer) As String YourArray = CStr(Index + 1) End Property Private Sub Command1_Click() MsgBox YourArray(0) MsgBox YourArray(1) MsgBox YourArray(2) End Sub 前者の場合、取得専用プロパティやメソッドとするならば良いのですが、 Public Property Let のように、書き込みも可能なメンバとする場合には、 .member(0) = "新しい値" のような事ができず、 v = .member v(0) = "新しい値" .member = v のように、配列全体に対する操作が必要となるという制限がつきます。 そして後者の手法は、ListBox の Selectedプロパティや Listプロパティと 同様の実装方法となります。 前者の方法に比べて、個々の要素への読み書きは楽になりますが、 データ全体を配列として得る事ができなくなります。どちらも一長一短です。 あるいは、この問題を解決するために、この両方を採用する手法もあります。 たとえば、Scripting.Dictionaryでは、前者をItemsメソッドとして実装し、 後者を読み書き可能な Itemプロパティとして実装しています。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.