- 題名: どうやればいいのでしょうか
- 日時: 2003/08/21 22:55:27
- ID: 428
- この記事の返信元:
- (なし)
- この記事への返信:
- [430] Re[1]: データをまとめて扱うには?2003/08/22 2:22:27
- ツリーを表示
色々な方法がありますが、3つ紹介します。
特徴などを簡単に書きます。
詳しくは、キーワードを拾い出してHelpで検索してみて下さい。
・構造体を使う =VBAではTypeキーワードに相当します。
Excelマクロなどにも通じた基本的な手法です。
・クラスを使う =オブジェクト指向なプログラミングです。
javaなどにも通じた一般的スタイルです。
・DataTableを使う=データベースとの連携やXMLファイルへの保存読出し
など、+αの部分で強力な威力を発揮します。
.NETライブラリを積極的に活用する組み方です。
●構造体を使う
'日付と題名とアドレスをまとめてひとつのものとする構造体を作る
Private Structure MailData
Public Receive As Date
Public Title As String
Public Address As String
End Structure
'上記構造体の動的配列を宣言
Private MyMail() As MailData
'指定した分だけ作る
Private Sub InitMailBox(ByVal mailCount As Integer)
ReDim MyMail(mailCount)
End Sub
'指定の位置へデータを格納する
Private Sub SetMail(ByVal index As Integer, _
ByVal recieve As Date, ByVal title As String, ByVal address As String)
MyMail(index).Receive = recieve
MyMail(index).Title = title
MyMail(index).Address = address
End Sub
●クラスを使う
'日付と題名とアドレスをまとめてひとつのものとするクラス
Public Class MyMailData
Private m_Receive As Date
Private m_Title As String
Private m_Address As String
Public ReadOnly Property Title() As String
Get
Return m_Title
End Get
End Property
Public Sub New(ByVal recieve As Date, _
ByVal title As String, ByVal address As String)
m_Receive = recieve
m_Title = title
m_Address = address
End Sub
End Class
'指定した分だけ作る(=呼ばれた回数分作る)
Private Sub AddMail(ByVal recieve As Date, _
ByVal title As String, ByVal address As String)
Dim mail As MyMailData = New MyMailData(recieve, title, address)
MailList.Add(mail)
'MailListはArrayListなどのコレクション
End Sub
●DataTableを使う
Private table As New DataTable()
'日付と題名とアドレスをまとめてひとつのものとするテーブルを作る
Private Sub MakeTable()
Dim column0 As New DataColumn("Recive", _
System.Type.GetType("System.Data"))
Dim column1 As New DataColumn("Title", _
System.Type.GetType("System.String"))
Dim column2 As New DataColumn("Address", _
System.Type.GetType("System.String"))
table.Columns.Add(column0)
table.Columns.Add(column1)
table.Columns.Add(column2)
End Sub
'指定した分だけ作る(=呼ばれた回数分作る)
Private Sub InsertMail(ByVal recieve As Date, _
ByVal title As String, ByVal address As String)
Dim mail As DataRow
mail = table.NewRow()
mail("Recive") = recieve
mail("Title") = title
mail("Address") = address
End Sub
#タイトルは質問内容を反映したものになるようにしましょう
日付と題名とアドレスをまとめてひとつのものとして、
そのものを指定した分だけ作るにはどうしたらいいのでしょうか?
(日付、題名、アドレス)
(日付、題名、アドレス)
(日付、題名、アドレス)
(日付、題名、アドレス)
・
・
・
・
といったようなかんじです。