DLL使用定義

本ページには広告が含まれています。

DLL(API等)の関数を使用する事ができるようになります。64bitの DLLは呼び出せません。

構文
DEF_DLL 関数名( 型, 型, ... ): 戻り型: DLL名
引数
型 省略可
  1. int
  2. long
  3. bool
  4. uint
  5. hwnd
  6. string
  7. Wstring
  8. float
  9. double
  10. word
  11. dword
  12. byte
  13. char
  14. pchar
  15. Wchar
  16. pWchar
  17. boolean
  18. longlong
  19. SafeArray
戻り値

参照引数(値変更あり)の場合は Var 宣言を付ける

UWSC

構造体:型を { } にて展開して書く

UWSC

配列の場合は型に [] を付ける

UWSC

※int=long= bool(4byte)、dword=uint=hwnd、 char=boolean(1byte)
ヌルポインタを渡す時は NULL定数を使用してください。

VBAでの書き方

[ ]内は省略可能です。

VBA
引数説明
nameプロシージャ名。大文字・小文字を区別します。
libnameプロシージャが含まれるDLLファイル名を指定。拡張子「.dll」は省略可能。
aliasname
arglistプロシージャを呼び出すときに渡される変数。
typeプロシージャが返す戻り値の型。

以下のようにPtrSafeと書かれているものは64bitなのでUWSCでは使えません。

VBA

arglistは引数で以下のように指定します。

VBA
引数説明
ByVal値渡し
ByRef参照渡し
varnameプロシージャに渡される引数の変数の名前
type戻り値の型

UWSCでの書き方

UWSC
UWSC

以下はarglistの書き方です。配列の場合「[]」をつけ、参照渡し(VBAでByRefのとき)は「Var 」をつけます。

UWSC

記述例

VBA
引数値
関数名(name)GetCaretPos
型(arglist(varname)){long, long}
戻り型(type)long
tableL名(libname)user32

typeはPOINTAPIは構造体なので中身を展開して{ }で型を囲む。

UWSC

以上からUWSCで宣言するには以下のようになります。

UWSC

参考文献

  1. Declare ステートメント (VBA) | Microsoft Learn

関連記事

DLL