各種プログラムからの実行
前へ 戻る次へ


4.2.3 Microsoft Excel (OLEオートメーション)

Microsoft Excel の VBA を使って帳票を表示/印刷する方法について説明します。


(1)Excel VBA からの帳票出力
@ Microsoft Excel を起動し、[ツール(T)]メニューの[マクロ(M)]-[Visual Basic Editor(V)...]をクリックします。

=> VBA のエディタが表示されます。


A [挿入(I)]メニューの[標準モジュール(M)]をクリックします。

=> モジュールが挿入されます。


B コードを次のように編集します。

Sub ViewReport()
    datName = "データ1"
    rptName = "請求書1.wfd"

    '選択情報の取得
    nY1 = Application.Selection.Row
    nY2 = nY + Application.Selection.Rows.Count
    nX1 = Application.Selection.Column
    nX2 = nX + Application.Selection.Columns.Count

    'CSVファイルの作成
    Set fs = CreateObject("Scripting.FileSystemObject")
    sFileName = Environ("Temp") + "\" + fs.GetTempName
    Set file = fs.CreateTextFile(sFileName, True)
    For nY = nY1 To nY2
        sBuf = ""
        For nX = nX1 To nX2
            sBuf = sBuf + Chr(34)
            sBuf = sBuf + Application.Cells(nY, nX).Text
            sBuf = sBuf + Chr(34) + ","
        Next nX
        file.WriteLine sBuf
    Next nY
    file.Close

    '帳票の表示
    Set rptObj = CreateObject("Wfrfv.Document.1")
    rptObj.SetDataText datName, sFileName, "", "", 0
    rptObj.Open rptName
    rptObj.Visible = True

    '一時ファイルの削除
    fs.DeleteFile sFileName
End Sub
青字の個所は出力する帳票により異なります。


C VBA のエディタを閉じ、Excelシートにデータを入力します。


D 帳票に出力するデータ(セル)を選択し、[ツール(T)]メニューの[マクロ(M)]-[マクロ(M)...]をクリックします。

=> [マクロ]ダイアログが表示されます。


E [マクロ]ダイアログで実行するマクロを選択し、[実行(R)]ボタンを押下します。

=> 帳票が[プレビューウインドウ]に表示されます。




(2)データ値の直接設定
一時ファイル(CSVファイル)を経由せず、直接データ値を設定することができます。

Sub ViewReport()
    datName = "データ1"
    rptName = "請求書1.wfd"

    '選択情報の取得
    nY1 = Application.Selection.Row
    nY2 = nY + Application.Selection.Rows.Count
    nX1 = Application.Selection.Column
    nX2 = nX + Application.Selection.Columns.Count

    'データの作成
    Set rptObj = CreateObject("Wfrfv.Document.1")
    Set datObj = rptObj.CreateData(datName)
    For nY = nY1 To nY2
        For nX = nX1 To nX2
            datObj.SetValue nX-1, Application.Cells(nY, nX).Text
        Next nX
        datObj.AddRecord
    Next nY
    datObj.Close

    '帳票の表示
    rptObj.Open rptName
    rptObj.Visible = True
End Sub
青字の個所は出力する帳票により異なります。


(3)拡張
帳票を表示/印刷するマクロ(メソッド)は、Excel シートやダイアログ上のボタン等から実行することもできます。

また、Excel のアドイン機能などを使用して簡単なインターフェースを作成することもできます。

マクロ(VBA)の実行方法やアドインについては、Excel のヘルプをご覧下さい。



前へ 戻る次へ