ポイント
- 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