テンプレート処理サンプルコード
'
' VB .NET X-TRAiNテンプレート処理サンプルプログラム
'
' (c) ARKTAN.INC.
'
Imports System.Runtime.InteropServices
Module Module1
'----------------------------------------------------------------------------
' X-TRAiN .Net用ラッピング関数定義(pxls_api.dll)
'----------------------------------------------------------------------------
' テンプレート用Excelブックオープン
<System.Runtime.InteropServices.DllImport("pxls_api.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.Cdecl)> _
Public Function open_template(ByVal argments As System.Text.StringBuilder) As Integer
End Function
' ブック保存
<System.Runtime.InteropServices.DllImport("pxls_api.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.Cdecl)> _
Public Function save_book() As Integer
End Function
' ブック破棄
<System.Runtime.InteropServices.DllImport("pxls_api.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.Cdecl)> _
Public Function scrap_book() As Integer
End Function
' 値/属性設定
<System.Runtime.InteropServices.DllImport("pxls_api.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.Cdecl)> _
Public Function put_values(ByVal argments As System.Text.StringBuilder) As Integer
End Function
' エラーコード取得
<System.Runtime.InteropServices.DllImport("pxls_api.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.Cdecl)> _
Public Function error_code() As Integer
End Function
' エラーメッセージ取得
<System.Runtime.InteropServices.DllImport("pxls_api.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.Cdecl)> _
Public Function error_mesg(ByVal argments As System.Text.StringBuilder) As Integer
End Function
'----------------------------------------------------------------------------
' X-TRAiN for VB .NET テンプレート処理サンプルメイン
'----------------------------------------------------------------------------
Sub Main()
Dim rtn As Integer
Dim arguments As New System.Text.StringBuilder()
Dim keyin As String
' テンプレートExcelブックオープン
arguments.Length = 0
arguments.Append("VBテンプレート.xlsx")
rtn = open_template(arguments)
If rtn <> 0 Then
arguments.Length = 1024
error_mesg(arguments)
Console.WriteLine(arguments.ToString)
Console.WriteLine("終了するには何かキーを押してください。")
Console.ReadKey()
Environment.Exit(-1)
End If
' ブック名設定
arguments.Length = 0
arguments.Append("BOOK=VBサンプル.xlsx")
rtn = put_values(arguments)
If rtn <> 0 Then
arguments.Length = 1024
error_mesg(arguments)
Console.WriteLine(arguments.ToString)
scrap_book()
Console.WriteLine("終了するには何かキーを押してください。")
Console.ReadKey()
Environment.Exit(-1)
End If
' 更新内容キー入力
Console.Write("更新内容 > ")
keyin = Console.ReadLine()
' テンプレート更新
arguments.Length = 0
arguments.Append(keyin)
rtn = put_values(arguments)
If rtn <> 0 Then
arguments.Length = 1024
error_mesg(arguments)
Console.WriteLine("EXIT error_mesg()")
Console.WriteLine(arguments.ToString)
scrap_book()
Console.WriteLine("終了するには何かキーを押してください。")
Console.ReadKey()
Environment.Exit(-1)
End If
' Excelブック保存
rtn = save_book()
If rtn <> 0 Then
arguments.Length = 1024
error_mesg(arguments)
Console.WriteLine(arguments.ToString)
scrap_book()
Environment.Exit(-1)
End If
Console.WriteLine("Excelブックを出力しました。")
Console.WriteLine("終了するには何かキーを押してください。")
Console.ReadKey()
End Sub
End Module
解説
テンプレートブックのメモリロード
' テンプレートExcelブックオープン
arguments.Length = 0
arguments.Append("VBテンプレート.xlsx")
rtn = open_template(arguments)
If rtn <> 0 Then
arguments.Length = 1024
error_mesg(arguments)
Console.WriteLine(arguments.ToString)
Console.WriteLine("終了するには何かキーを押してください。")
Console.ReadKey()
Environment.Exit(-1)
End If
open_template関数を使い、テンプレートブックをメモリにロードします。
エラー時は戻り値として0以外が返却されます。
エラーの内容は、error_code関数でエラーコードを、error_mesg関数で
エラーメッセージを取得して行います。
作成ブック名、更新対象シートの指定
' ブック名設定
arguments.Length = 0
arguments.Append("BOOK=VBサンプル.xlsx")
rtn = put_values(arguments)
If rtn <> 0 Then
arguments.Length = 1024
error_mesg(arguments)
Console.WriteLine(arguments.ToString)
scrap_book()
Console.WriteLine("終了するには何かキーを押してください。")
Console.ReadKey()
Environment.Exit(-1)
End If
put_values関数を使い、作成ブック名や更新対象シートのカレント化を行います。
セル値の更新
' 更新内容キー入力
Console.Write("更新内容 > ")
keyin = Console.ReadLine()
' テンプレート更新
arguments.Length = 0
arguments.Append(keyin)
rtn = put_values(arguments)
If rtn <> 0 Then
arguments.Length = 1024
error_mesg(arguments)
Console.WriteLine("EXIT error_mesg()")
Console.WriteLine(arguments.ToString)
scrap_book()
Console.WriteLine("終了するには何かキーを押してください。")
Console.ReadKey()
Environment.Exit(-1)
End If
テンプレート処理では、セルの値のみを更新することができます。
罫線、セルの塗りつぶし、フォントの設定、書式の追加や変更を
行うことはできません。
本サンプルは、標準入力(キーボード入力)より、A1=値 の
形式でセルの値を指定して更新する仕様です。
ブックの保存
' Excelブック保存
rtn = save_book()
If rtn <> 0 Then
arguments.Length = 1024
error_mesg(arguments)
Console.WriteLine(arguments.ToString)
scrap_book()
Environment.Exit(-1)
End If
save_book関数を使い、ブックの保存を行います。