DataPluginの作成方法はDIAdemヘルプのプログラミングリファレンス >> オブジェクト指向スクリプトインタフェース >> DataPlugin >> Exampleから確認することができます。
こちらの記事の手順に従い、DIAdem上でVBScriptのDataPluginを作成します。ここでは下記のスクリプトを使用します。
Option Explicit 'Forces the explicit declaration of all the variables in a script.
Sub ReadStore(Workbook)
' Extract document properties
Root.Properties.Add "Author", Workbook.WorkbookInfo.Author
Root.Properties.Add "Title", Workbook.WorkbookInfo.Title
' Loop over all sheets of the current workbook
Dim oSheet
For Each oSheet In Workbook.Sheets
If Not SkipSheet(oSheet) Then
' Add a new group for each sheet
Dim oGroup
Set oGroup = Root.ChannelGroups.Add(oSheet.Name)
' Assume the first row contains the channel names
' Create a cell block reader starting at second row, first column
Dim oBlock
Set oBlock = oSheet.GetCellBlock(2, 1)
' Loop over all defined columns
Dim iColumnIndex
' For iColumnIndex = 1 To oSheet.MaxPosition.Column
For iColumnIndex = 1 To 10
' Extract the channel name from the first row
Dim sChannelName
sChannelName = oSheet.GetCellValue(1, iColumnIndex)
' Create a DirectAccessChannel for each column
Dim oBlockChn
Set oBlockChn = oBlock.Channels.Add(sChannelName)
' Assign the DirectAccessChannel to the group
oGroup.Channels.AddDirectAccessChannel(oBlockChn)
Next
End If
Next
End Sub
Function SkipSheet(Sheet)
SkipSheet = False
' Skip the first sheet if the file was written by TDM Excel Add-In
'If Sheet.GetCellValue(1,1) = "Root Name" Then SkipSheet = True
If Sheet.Index = "1" Then SkipSheet = True
'Skip empty sheets
If ((Sheet.MinPosition.Column = Sheet.MaxPosition.Column) And _
(Sheet.MinPosition.Row = Sheet.MaxPosition.Row ) ) Then SkipSheet = True
End Function
この記事の下部のAttachmentsからExcelDataPluginC1.zipをダウンロードする事でDataPluginのスクリプト、挙動、サンプルデータの読み込みの確認を行うことができます。サンプルデータ(test.xl)は下記のようにSheet1にはデータは存在せず、Dataという名前のSheet2に10列のデータが存在します。その為、下記のようにSkipSheetのFunctionを定義し、Sheet indexが1のもの(Sheet1)はデータの読み込みを行わない設定を追加しています。また、10列分のデータの読み込みをForループで指定します。
DIAdemを使用し、登録されたDataPluginのテストを行う場合、NAVIGATORにおいてこの記事の下部のAttachmentsのtest.xlsもしくはtest.xlsxの読み込みを行うことができます。データの読み込みを行うと下記のように10チャンネル分のデータがData Portalにロードされます。