EXCELクラスモジュールについて(備忘)

Excelのクラスモジュールについて備忘録です。

  1. モジュール名はプロパティのオブジェクト名で変更する。
  2. プロパティは以下のコードで記述。(Privateにすることでカプセル化)
    Option Explicit
    Private m〇〇〇〇 As 型
  3. プロパティをセットするのは以下
    Property Let 〇〇〇〇(i〇〇〇〇 As String)
    m〇〇〇〇 = i〇〇〇〇
    End Property
  4. プロパティを取り出すのは以下
    Property Get o〇〇〇〇()
    o〇〇〇〇 = m〇〇〇〇
    End Property
  5. モジュール記述はSub または Function で記述する
  6. サンプル(ファイル出力をクラス化)
    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 Sub

    Sub データWrite(データ_I As String)
    ‘データ_I を ファイルに出力する
    Print #mIntFree, データ_I
    End Sub

    Sub ファイルClose()
    ‘オープンしたファイル番号でクローズする
    Close #mIntFree
    End Sub

  7. 使う側の標準モジュールは以下
    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