ポイント
- Range オブジェクトに配列を代入すればよい。
- Range のセル数と、配列の要素数は一致させること。
- 1次元配列 ⇒ 横方向に書き込み。
- 2次元配列 ⇒ 1次元目が行に、2次元目が列に書き込み。
- 縦方向に書き込むには、1次元配列を WorksheetFunction.Transpose 関数にかけた結果を Range に代入すればよい。
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
TypeName(Me) で取得し、コンストラクタでプロパティにセットしている。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
追記: 2015年11月22日
''' <summary>
''' エクセルファイルに存在するコネクションを全て削除します。
''' </summary>
Private Sub DeleteConnections()
Do While ActiveWorkbook.Connections.Count > 0
ActiveWorkbook.Connections.Item(ActiveWorkbook.Connections.Count).Delete
Loop
End Sub
''' <summary>
''' エクセルファイルに存在する名前を全て削除します。
''' </summary>
Private Sub DeleteNames()
Do While ActiveWorkbook.Names.Count > 0
ActiveWorkbook.Names.Item(ActiveWorkbook.Names.Count).Delete
Loop
End Sub