480
0
0

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

Published at August 4, 2022 4:19 p.m.
Edited at October 18, 2022 11:54 a.m.

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

5-1  概要

SMART DATA COLLECTORのExcelテンプレートをVBAでカスタマイズする際や
SELECT文機能を使用する際に必要な関数をご用意しています。

いずれも事前にSMART DATA COLLECTORにログインした状態で実行可能です。

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

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

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

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

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

5-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()

5-3  SELECT文機能用関数

<SELECT文機能用関数一覧>

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

シートに直接ダウンロードする場合は「SelectDownload」シートも必要です。

NO 関数名 説明 引数 戻り値 処理
ExecSelectDownloadApiSyncForSheet SELECT文設定に指定された条件と合致するデータを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行目:戻り値により処理を分岐

5-4 View設定機能用関数

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

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

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

NO 関数名 説明 引数 戻り値 処理
ExecViewDownloadApiSyncForSheet VIEW設定に指定された条件と合致するデータをパラメータシートにて指定したシートにダウンロード実行 なし 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行目:戻り値により処理を分岐

5-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		

5-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

◀目次へ戻る