EXCELクラスモジュールについて(備忘)
Excelのクラスモジュールについて備忘録です。
- モジュール名はプロパティのオブジェクト名で変更する。
- プロパティは以下のコードで記述。(Privateにすることでカプセル化)
Option Explicit
Private m〇〇〇〇 As 型 - プロパティをセットするのは以下
Property Let 〇〇〇〇(i〇〇〇〇 As String)
m〇〇〇〇 = i〇〇〇〇
End Property - プロパティを取り出すのは以下
Property Get o〇〇〇〇()
o〇〇〇〇 = m〇〇〇〇
End Property - モジュール記述はSub または Function で記述する
- サンプル(ファイル出力をクラス化)
Option Explicit
Private mファイル名 As String ‘ファイル名
Private mIntFree As Integer ‘ファイル番号Property Let ファイル名(ファイル名_I As String)
‘ファイル名をセットする
mファイル名 = ファイル名_I
End Property‘メソッド
‘ファイルopen:ファイル名(フルPath)を受け取って、ファイルをOpen
‘データWrite:引数でデータを受け取り、ファイルに出力する
‘ファイルClose:ファイルをクローズするSub ファイルOpen()
‘セットされているファイル名でOpenする
mIntFree = FreeFile ‘空番号を取得
Open mファイル名 For Output As #mIntFree
End SubSub データWrite(データ_I As String)
‘データ_I を ファイルに出力する
Print #mIntFree, データ_I
End SubSub ファイルClose()
‘オープンしたファイル番号でクローズする
Close #mIntFree
End Sub - 使う側の標準モジュールは以下
Excelのあるフォルダ(OneDrive以外)にtest.csvを出力します。(内容は”Test Data”)
Sub test_write()
Dim 出力ファイル As New CSV出力
If Left(ThisWorkbook.Path, 4) = “http” Then
MsgBox “OneDrive フォルダでは実行できません”
Exit Sub
Else
出力ファイル.ファイル名 = ThisWorkbook.Path & “\test.csv”
End If
出力ファイル.ファイルOpen
出力ファイル.データWrite (“Test Data”)
出力ファイル.ファイルClose
End Sub