機械翻訳について

14 統合Excelワークブックでのマクロの使用

Oracle Visual Builder Add-in for Excelが統合Excelワークブックのライフサイクルの特定の時点で実行するマクロを構成できます。

この機能を使用するには、Excelマクロ対応ワークブック・タイプ(.XLSM)を使用し、マクロ・モジュールにマクロを作成する必要があります。 マクロの作成の詳細は、Microsoftのドキュメントを参照してください。Excelワークブックでマクロを作成する方法については、このガイドの範囲外です。

マクロが十分にセキュアであるとは思われないため、Excelマクロの使用をブロックしている会社もあります。 マクロを追加する前に、目的のオーディエンスを考慮してください。 マクロの使用に関連するセキュリティ・リスクについても責任を負います。 そのため、統合ワークブックを顧客に提供する前に、リスクを徹底的に調査してください。 マクロを作成した後、予期しない結果や有害な結果をもたらす悪意のある変更や偶発的な変更の両方からマクロを保護するステップを実行します。 マクロの結果がアドインと互換性のない変更になったり、望ましくない動作が発生したりする場合は、この動作を回避するようにマクロを変更します。

「レイアウト・デザイナ拡張」タブには、マクロを指定できる2つのプロパティがあります: ダウンロードの完了後に実行する「ダウンロード後マクロ」およびアップロードの開始前に実行する「アップロード前マクロ」 これらのプロパティの値としてマクロ名を指定します。 たとえば、アップロード後に実行するリフレッシュ・マクロを作成した場合は、「ダウンロード後マクロ」プロパティの値としてRefreshを入力します。

excel-add-macros.pngの説明は以下のとおりです
「図excel-add-macros.pngの説明」

ヒント:

マクロの名前を指定するときにカッコを含めないでください。

ユーザーがダウンロードを取り消した場合、表またはフォームが空の場合、または予期しないエラーが発生した場合、「ダウンロード後マクロ」プロパティに指定したマクロは使用されません。 「アップロード前マクロ」プロパティに指定したマクロは、アップロードの直前に使用されます。 マクロがtrue以外の値を返した場合、アップロード操作は終了し、ステータス・ビューアに通知が表示されます。 マクロがtrueを返した場合、通常はアップロードに進みます。 trueまたはfalseの値をマクロから返すには、ブール関数を定義します。 詳細は、Microsoftのドキュメントを参照してください。

アップロード前マクロのIsUploadReady関数のロジックの例を次に示します:
Function IsUploadReady() As Boolean
   Dim returnVal As Boolean
   
   On Error GoTo ErrHandler:
   
   Dim table As Range
   Set table = Sheets("Sheet1").Range("TBL349543489")
   ' The named range, TBL349543489, is managed automatically by the add-in
   
   returnVal = True
   
   Dim cRows As Long
   cRows = table.Rows.Count
   Dim currentTableRow As Long
   Dim amount As Long
   For currentTableRow = 2 To cRows ' start with 2 to skip header row
       amount = table(currentTableRow, 10) ' Amount is the tenth column in the table
       If amount < 0 Then
           returnVal = False
           Debug.Print "Found negative amount = "; amount
       End If
   Next
        
   IsUploadReady = returnVal
   Exit Function
   
ErrHandler:
   Dim failureMessage As String
   failureMessage = Err.Description
   MsgBox failureMessage
   IsUploadReady = False
   Exit Function
End Function

マクロの実行中にエラーが発生すると、Excelでは、Microsoft Visual Basicウィンドウがユーザーに表示されます。 マクロの実行中にエラーが発生したユーザーに対してウィンドウが有益なメッセージを表示するように、堅牢なエラー処理戦略を実装することをお薦めします。 次に簡単な例を示します。 特定のマクロに適切なエラー処理方針は、マクロのロジックによって異なります。

Sub Refresh()
   
    On Error GoTo ErrHandler:

    ActiveWorkbook.RefreshAll
    Exit Sub
     
ErrHandler:
    Dim failureMessage As String
    failureMessage = Err.Description
    MsgBox "Unable to refresh. Details: " & failureMessage     
    Exit Sub
End Sub

ヒント:

アドインは、データ表の名前付き範囲を作成および保守します。 マクロでは、名前付き範囲は決して変更しないでください。 ただし、マクロは名前付き範囲にアクセスして、動的にデータ表を検索できます。

ノート:

マクロの記録は、ダウンロードやアップロードなどのアドイン機能と互換性がなく、サポートされていません。 アドイン機能は記録しないでください。 場合によっては、予期しない例外が表示されることがあります。

「データのダウンロード」または「変更内容のアップロード」を使用するときは、Excelビジュアル基本エディタのブレーク・モードをオンのままにしないでください。 サポートされていないため、予期しない例外が発生する可能性があります。