VBA/Win32API

データ型

SDK Visual Basic SDK Visual Basic
INT Long UINT Long
BYTE Byte SHORT Integer
WORD Integer DWORD Long
BOOL Long FLOAT Single
DOUBLE Double CHAR String
WCHAR String LPCSTR String
LPCWSTR String LPCTSTR String
LPSTR String LPWSTR String
LPTSTR String HANDLE Long
HINSTANCE Long HWND Long
HDC Long HGDIOBJ Long
GDI Object Long LPARAM Long
WPARAM Long LRESULT Long

関数の引数

ByVal
値渡し
ByRef
参照渡し
構造体
構造体の変数を参照渡し
配列
配列の最初の要素を参照渡し
関数
「AddressOf {関数名}」を渡す
Null(数値)
「0&」を渡す
Null(構造体)
「Nothing」を渡す
Null(文字列)
「VbNullString」を渡す

文字列の扱い

APIへの文字列渡し
但し、文字列(String)を渡すには、StringをByValで渡す。String型をAPIへ渡す場合、String型へのポインタが渡る。ByValで渡すだけで、LPSTRで渡すのを同じ扱いとなる
終端文字
APIからの戻り値(文字列)には終端文字(Null)が付与されているが、VBでは使われないため、除去する必要がある。
終端文字がついたままだと、文字列が正しく表示されなかったり、文字列処理で問題が出たりする。



---
update at 2019/11/19 23:10:36

※注:当サイトは特定環境において確認できた事象のみを記述しています。他の環境での動作は一切保証しません。