7.VBA開発用公開関数について

7-1  概要

SMART DATA COLLECTORのExcelテンプレートをVBAでカスタマイズする際や、SELECT文機能を使用する際に必要な関数をご紹介いたします。
こちらのVBAは、旧テンプレート(パラメータシート形式)のみで実行可能です。
VBAにてクライアント機能の「定義」実行をする場合は、こちらをご確認ください。

<基本機能用関数>
リボンのSMACOLLEメニューに搭載されている、
「アップロード」「データ削除」「ダウンロード」「ログイン」ボタンの機能をVBAから実行することができます。

<SELECT文機能用関数>
SELECT文の機能を使用するための関数で、ExcelVBAから直接関数を呼び出して実行することができます。

<VIEW設定機能関数>
SELECT文設定をポータルサイト上で事前に設定し、Excel上での設定を簡易化するための関数です。ExcelVBAから直接関数を呼び出して実行することができます。

<リボンメニュー表示設定関数>
リボンのSMACOLLEメニューに搭載されている「アップロード」「データ削除」「ダウンロード」「ポータル」ボタンの表示/非表示切り替えや、任意のマクロを割り当てたボタンを作成できる関数です。ExcelVBAから直接関数を呼び出して実行することができます。

🔍 各VBAの実行にはリンクボタンでのログインが事前に必要となります。

7-2  基本機能用関数

<基本機能関数一覧>

使用するには、リボンボタンからの実施と同じようにテンプレートファイルの
「パラメータ」シートと各機能のシート、キー指定シートが必要となります。

NO関数名説明引数戻り値処理
ExecUploadApiリボンボタン:アップロードの関数を実行なしなし(エラー時はエラー結果が自動で表示)リボンボタンを実行
ExecDeleteApiリボンボタン:データ削除の関数を実行なしなし(エラー時はエラー結果が自動で表示)リボンボタンを実行
ExecDownloadApiリボンボタン:ダウンロードの関数を実行なしなし(エラー時はエラー結果が自動で表示)リボンボタンを実行
ExecLoginログイン画面表示処理を実行なしTrue/False直接処理実行
ExecUploadApiSync各種設定値はパラメータシートから取得し、同期処理でアップロード実行。なしTrue/False直接処理実行
ExecDeleteApiSync各種設定値はパラメータシートから取得し、同期処理でアップロード実行。なしTrue/False直接処理実行
ExecDownloadApiSync各種設定値はパラメータシートから取得し、同期処理でアップロード実行。なしTrue/False直接処理実行

<基本機能関数サンプルソース>

Upload-VBAサンプル

<リボンボタン用の関数>

    Dim addIn As COMAddIn		
    Dim automationObject As Object	
    Set addIn = Application.COMAddIns("Kuix.SmartDataCollectorExcelAddin")	
    Set automationObject = addIn.Object		
    automationObject.ExecUploadApi

<API実行用の関数>

    Dim addIn As COMAddIn		
    Dim automationObject As Object		
    Set addIn = Application.COMAddIns("Kuix.SmartDataCollectorExcelAddin")	
    Set automationObject = addIn.Object		
    Dim ret As Boolean		
    ret = automationObject.ExecUploadApiSync	
    If ret Then	
        MsgBox "Upload(同期)処理が正常終了しました"		
    Else		
        MsgBox "Upload(同期)処理でエラーが発生しました"		
    End If		

 ※7行目:戻り値により処理を分岐

Delete-VBAサンプル

<リボンボタン用の関数>

    Dim addIn As COMAddIn		
    Dim automationObject As Object	
    Set addIn = Application.COMAddIns("Kuix.SmartDataCollectorExcelAddin")	
    Set automationObject = addIn.Object		
    automationObject.ExecDeleteApi

<API実行用の関数>

    Dim addIn As COMAddIn		
    Dim automationObject As Object		
    Set addIn = Application.COMAddIns("Kuix.SmartDataCollectorExcelAddin")	
    Set automationObject = addIn.Object		
    Dim ret As Boolean		
    ret = automationObject.ExecDeleteApiSync	
    If ret Then	
        MsgBox "Delete(同期)処理が正常終了しました"		
    Else		
        MsgBox "Delete(同期)処理でエラーが発生しました"		
    End If		

 ※7行目:戻り値により処理を分岐

Download-VBAサンプル

<リボンボタン用の関数>

    Dim addIn As COMAddIn		
    Dim automationObject As Object	
    Set addIn = Application.COMAddIns("Kuix.SmartDataCollectorExcelAddin")	
    Set automationObject = addIn.Object		
    automationObject.ExecDownloadApi

<API実行用の関数>

    Dim addIn As COMAddIn		
    Dim automationObject As Object		
    Set addIn = Application.COMAddIns("Kuix.SmartDataCollectorExcelAddin")	
    Set automationObject = addIn.Object		
    Dim ret As Boolean		
    ret = automationObject.ExecDownloadApiSync	
    If ret Then	
        MsgBox "Download(同期)処理が正常終了しました"		
    Else		
        MsgBox "Download(同期)処理でエラーが発生しました"		
    End If		

 ※7行目:戻り値により処理を分岐

Login-VBAサンプル

<使用サンプル>

    Dim addIn As COMAddIn		
    Dim automationObject As Object	
    Set addIn = Application.COMAddIns("Kuix.SmartDataCollectorExcelAddin")	
    Set automationObject = addIn.Object
    Dim ret As Boolean ret = automationObject.ExecLogin()

7-3  SELECT文機能用関数

<SELECT文機能用関数一覧>

使用するためには「パラメータ」シート、「Select文設定」シートが必要となります。
シートに直接ダウンロードする場合は「SelectDownload」シートも必要です。

NO関数名説明引数戻り値処理
ExecSelectDownloadApiSyncForSheetSELECT文設定に指定された条件と合致するデータをSelectDownloadシートにダウンロード実行なしTrue/False直接処理実行。指定シートにデータを格納する
ExecSelectDownloadApiSyncForArray(arrData)SELECT文設定に指定された条件と合致するデータを返り値である行列arrDataにダウンロードし格納ArrData
(空配列)
True/False直接処理実行。空配列にダウンロードドした結果を格納する
SELECT文機能-VBAサンプル(シートダウンロード)

SELECT文機能を使用するには、Excel VBAにて機能を呼び出す必要があります。
VBAコードを下記に記載しておりますのでご利用ください。

Excelシート上にダウンロード

Dim addIn As COMAddIn
Dim automationObject As Object
Set addIn = Application.COMAddIns("Kuix.SmartDataCollectorExcelAddin")
Set automationObject = addIn.Object
Dim ret As Boolean
ret = automationObject.ExecSelectDownloadApiSyncForSheet

★使用サンプル

Sub SelectDownloadSyncForSheet_Click()
    Dim addIn As COMAddIn
    Dim automationObject As Object
 Set addIn = Application.COMAddIns("Kuix.SmartDataCollectorExcelAddin")
    Set automationObject = addIn.Object
    Dim ret As Boolean
    ret = automationObject.ExecSelectDownloadApiSyncForSheet
    If ret Then
        MsgBox "Download(同期)処理が正常終了しました"
    Else
        MsgBox "Download(同期)処理でエラーが発生しました"
    End If
End Sub

 ※7行目:戻り値により処理を分岐

SELECT文機能-VBAサンプル(配列ダウンロード)

VBA配列上にダウンロード

Dim addIn As COMAddIn
Dim automationObject As Object
Set addIn = Application.COMAddIns("Kuix.SmartDataCollectorExcelAddin")
Set automationObject = addIn.Object
Dim ret As Boolean
Dim arrData() As String
ret = automationObject.ExecSelectDownloadApiSyncForArray(arrData)

★使用サンプル

Sub SelectDownloadSyncForArr_Click()
    Dim addIn As COMAddIn
    Dim automationObject As Object
 Set addIn = Application.COMAddIns("Kuix.SmartDataCollectorExcelAddin")
    Set automationObject = addIn.Object
    Dim ret As Boolean
    Dim arrData() As String
    ret = automationObject.ExecSelectDownloadApiSyncForArray(arrData)
    If ret Then
        MsgBox "Download(同期)処理が正常終了しました"
    Else
        MsgBox "Download(同期)処理でエラーが発生しました"
    End If
End Sub

 ※7行目:戻り値により処理を分岐

7-4 View設定機能用関数

<VIEW設定機能用関数一覧>

使用するためには「パラメータ」シート、「VIEWパラメータ」シートが必要となります。
また、シートに直接ダウンロードする場合はパラメータシートより「VIEWダウンロードシート」の設定が必要です。

NO関数名説明引数戻り値処理
ExecViewDownloadApiSyncForSheetVIEW設定に指定された条件と合致するデータをパラメータシートにて指定したシートにダウンロード実行なしTrue/False直接処理実行。指定シートにデータを格納する
ExecViewDownloadApiSyncForArray(arrData)VIEW設定に指定された条件と合致するデータを返り値である行列arrDataにダウンロードし格納ArrData
(空配列)
True/False直接処理実行。空配列にダウンロードした結果を格納する
VIEW設定機能-VBAサンプル(シートダウンロード)

VIEW設定機能を使用するには、Excel VBAにて機能を呼び出す必要があります。
VBAコードを下記に記載しておりますのでご利用ください。

Excelシート上にダウンロード

Dim addIn As COMAddIn
Dim automationObject As Object
Set addIn = Application.COMAddIns(AddinId)
Set automationObject = addIn.Object
Dim ret As Boolean
ret = automationObject.ExecViewDownloadApiSyncForSheet

★使用サンプル

Sub ViewDownloadSyncForSheet_Click()
    Dim addIn As COMAddIn
    Dim automationObject As Object
 Set addIn = Application.COMAddIns("Kuix.SmartDataCollectorExcelAddin")
    Set automationObject = addIn.Object
    Dim ret As Boolean
    ret = automationObject.ExecViewDownloadApiSyncForSheet
    If ret Then
        MsgBox "Download(同期)処理が正常終了しました"
    Else
        MsgBox "Download(同期)処理でエラーが発生しました"
    End If
End Sub

 ※7行目:戻り値により処理を分岐

VIEW設定機能-VBAサンプル(配列ダウンロード)

VBA配列上にダウンロード

Dim addIn As COMAddIn
Dim automationObject As Object
Set addIn = Application.COMAddIns(AddinId)
Set automationObject = addIn.Object
Dim ret As Boolean
Dim arrData() As String
ret = automationObject.ExecViewDownloadApiSyncForArray(arrData)

★使用サンプル

Sub ViewDownloadSyncForArr_Click()
    Dim addIn As COMAddIn
    Dim automationObject As Object
 Set addIn = Application.COMAddIns("Kuix.SmartDataCollectorExcelAddin")
    Set automationObject = addIn.Object
    Dim ret As Boolean
    Dim arrData() As String
    ret = automationObject.ExecViewDownloadApiSyncForArray(arrData)
    If ret Then
        MsgBox "Download(同期)処理が正常終了しました"
    Else
        MsgBox "Download(同期)処理でエラーが発生しました"
    End If
End Sub

 ※7行目:戻り値により処理を分岐

7-5 リボンメニュー表示設定関数

<リボンメニュー表示設定関数一覧>

使用するためには「パラメータ」シートが必要となります。

NO関数名説明引数戻り値処理
setMenu各種設定値はパラメータシートから取得し、リボンメニューのボタン表示/非表示を行う。なしTrue/False直接処理実行。
リボンメニュー表示設定機能VBAサンプル

リボンメニュー表示設定機能を使用するには、Excel VBAにて機能を呼び出す必要があります。(呼び出しタイミングは画面初期表示時を想定しています)

VBAコードを下記に記載しておりますのでご利用ください。

★使用サンプル

Const AddinId As String = "Kuix.SmartDataCollectorExcelAddin" 

Public Sub setMenu()

    Dim addIn As COMAddIn
    Dim automationObject As Object
    Set addIn = Application.COMAddIns(AddinId)
    Set automationObject = addIn.Object
    Dim ret As Boolean
    ret = automationObject.setMenu()

End Sub

7-6  ログイン情報取得用関数

<ログイン情報取得用関数一覧>
NO関数名説明引数戻り値処理
ExecGetUserApiログイン済みのユーザ情報を返り値である行列arrDataに格納ArrData
(空配列)
True/False直接処理実行。空配列に結果を格納する
ログイン情報取得-VBAサンプル

ログイン情報取得機能を使用するには、Excel VBAにて機能を呼び出す必要があります。
VBAコードを下記に記載しておりますのでご利用ください。

★使用サンプル

Const AddinId As String = "Kuix.SmartDataCollectorExcelAddin"

Public Sub LoginAndGetUserInfo_Click()
    Dim addIn As COMAddIn
    Dim automationObject As Object
    Set addIn = Application.COMAddIns(AddinId)
    Set automationObject = addIn.Object
    Dim ret As Boolean
    ret = automationObject.ExecLogin()
    If ret Then
        Dim arrData() As String
        If automationObject.ExecGetUserApi(arrData) Then
            Dim userinfo As String
            For x = LBound(arrData, 1) To UBound(arrData, 2)
                userinfo = userinfo + arrData(0, x) + " : " + arrData(1, x) + vbCrLf
            Next x
            MsgBox (userinfo)
        End If
    End If
End Sub

◀目次へ戻る