ポイント
Iterator クラスでは、もれなく反復するために、最低次の機能があればよい。
- HasNext 関数を用意し、次の要素があるかを判定できる機能
- Next 関数を用意し、次の要素を取得できる機能
Windows や Office など、Microsoft 社関連の話題ですわ♪
Iterator クラスでは、もれなく反復するために、最低次の機能があればよい。
Public Sub Test() ' 配列の要素数となる変数 Dim lngLength As Long lngLength = 100 ' 配列を宣言し、要素数に lngLength を設定 Dim lngArray() As Long ReDim lngArray(lngLength) ' 配列の要素数を確認 Debug.Print UBound(lngArray) End Sub
Public Sub Test() ' 右端の列番号を取得 Dim lngMaxCol As Long lngMaxCol = Cells(1, Columns.Count).End(xlToLeft).Column Debug.Print lngMaxCol ' 下端の行番号を取得 Dim lngMaxRow As Long lngMaxRow = Cells(Rows.Count, 1).End(xlUp).Row Debug.Print lngMaxRow End Sub
[Index(IsUnique=true)]
という Annotation 属性をプロパティに付けることでそのカラムは一意となる。public class Sex { public int Id { get; set; } [Required] [Index(IsUnique=true)] [MaxLength(10)] public string Name { get; set; } }
TypeName(Me)
で取得し、コンストラクタでプロパティにセットしている。# アップデート対象となるパッケージを確認する Update-Package -WhatIf # アップデート実行 Update-Package
Private Sub Class_Terminate()
Set CInstance = Nothing
すれば呼ぶことができる。private _hoge As String
Public Property Let Hoge(strValue As String) _hoge = strValue End Property
Public Property Get Hoge() As String Hoge = _hoge End Property
CInstance.Hoge = "セッターに格納"
Dim hoge As String hoge = CInstance.Hoge
TypeName(Me)
でこれを書いたクラス名を取得することができる。Dim fuga As Fuga Set fuga = New Fuga
にて DB データをエクスポートする機能を紹介いたしました。
今回は、対となるインポート機能を開発いたします♪
こちらのシステムでインポート機能を考えます。ポイントは次の 2 点です。
Parent 1-n Child という関係を持っております。
ですのでシステム上は、Parent は必ず 1 つですけれども、それに紐づく Child はいくつあっても問題ありません。
ですけれども、インポート機能におきましては子どもの数の最大数を制限しませんと CSV ファイルの仕様を固めることが難しくなります。
したがいまして、今回は Child の数を最大 2 つとし、それ以上登録したい場合はウェブブラウザから追加する、という運用方法を想定いたしました。
に沿ってサンプルプロジェクトを作成したところからスタートです。
ソリューションおよびプロジェクト名は Sample3 といたしました。