目次

# Declare Statement

LibreOfficeDev Basicから実行するDLLファイル内のサブルーチンの宣言と定義を行います。

次も参照してください：FreeLibrary。

### Syntax:

    Declare {Sub | Function} Name Lib "Libname" [Alias "Aliasname"] [Argumentlist] [As Type]

### Parameters:

Name: LibreOfficeDev Basicからサブルーチンを呼び出すためのDLL内の定義名とは異なる名前。

Aliasname:サブルーチンの DLL 内の定義名。

Libname: DLL のファイルないしシステム名このライブラリは、関数の初回使用時に自動的に読み込まれます。

Argumentlist: 呼び出し時にプロシージャーに渡される引数を示すパラメーターのリストパラメータの種類と数は、実行するプロシージャーに依存します。

Type: 関数プロシージャーにより返される値のデータ型を指定します。名前の次に型宣言子を入力する場合、このパラメーターは省略できます。

パラメーターをサブルーチンに参照渡しでなく値渡しで与える場合、このパラメーターは ByVal キーワードで指定する必要があります。

### Example:

    Declare Sub MyMessageBeep Lib "user32.dll" Alias "MessageBeep" ( Long )
    Sub ExampleDeclare
    Dim lValue As Long
        lValue = 5000
        MyMessageBeep( lValue )
        FreeLibrary("user32.dll" )
    End Sub

## Example 2

      REM When passing arrays by reference, do not specify the type of its elements.
      Declare Function GetDiag Lib "C:\\...\\Math.dll" _
         Alias "GetDiag" ( _
         ByVal varName As String, _
         A, _
         ByVal len As Long, _
         ByVal FunctionName As String, _
         B, _
         C) As Long
    Sub MyCode
      Dim A(100) As Long, B(100) As Long, C(100) As Long ' arrays
      R = GetDiag("f", A, 100, "g", B, C)
      Print R
    End Sub

ご支援をお願いします！