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 | 関数名 | 説明 | 引数 | 戻り値 | 処理 |
---|---|---|---|---|---|
1 | ExecUploadApi | リボンボタン:アップロードの関数を実行 | なし | なし(エラー時はエラー結果が自動で表示) | リボンボタンを実行 |
2 | ExecDeleteApi | リボンボタン:データ削除の関数を実行 | なし | なし(エラー時はエラー結果が自動で表示) | リボンボタンを実行 |
3 | ExecDownloadApi | リボンボタン:ダウンロードの関数を実行 | なし | なし(エラー時はエラー結果が自動で表示) | リボンボタンを実行 |
4 | ExecLogin | ログイン画面表示処理を実行 | なし | True/False | 直接処理実行 |
5 | ExecUploadApiSync | 各種設定値はパラメータシートから取得し、同期処理でアップロード実行。 | なし | True/False | 直接処理実行 |
6 | ExecDeleteApiSync | 各種設定値はパラメータシートから取得し、同期処理でアップロード実行。 | なし | True/False | 直接処理実行 |
7 | 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 | 関数名 | 説明 | 引数 | 戻り値 | 処理 |
---|---|---|---|---|---|
1 | ExecSelectDownloadApiSyncForSheet | SELECT文設定に指定された条件と合致するデータをSelectDownloadシートにダウンロード実行 | なし | True/False | 直接処理実行。指定シートにデータを格納する |
2 | 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 | 関数名 | 説明 | 引数 | 戻り値 | 処理 |
---|---|---|---|---|---|
1 | ExecViewDownloadApiSyncForSheet | VIEW設定に指定された条件と合致するデータをパラメータシートにて指定したシートにダウンロード実行 | なし | True/False | 直接処理実行。指定シートにデータを格納する |
2 | 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 | 関数名 | 説明 | 引数 | 戻り値 | 処理 |
---|---|---|---|---|---|
1 | 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 | 関数名 | 説明 | 引数 | 戻り値 | 処理 |
---|---|---|---|---|---|
1 | 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