32bitから64bitのExcelに移行する際、VBAで注意すべき点は?
結論
64bit移行時はPtrSafe宣言とLongPtr型への変更が必要です。
詳しい解説
主に2点の注意が必要です。①Declare文にPtrSafe宣言が必要(例: `Declare PtrSafe Function...`)。②ポインタ型引数のデータ型をLong→LongPtrに変更する必要がある場合があります。Office 2016以降では`#If VBA7`で条件分岐するのが定番のパターンです。
執筆・検証:田中 けんた|Excel歴15年・MOS資格保持
バージョン対応
| Excel 2016 | Excel 2019 | Excel 2021 | Excel 2024 | Microsoft 365 |
|---|---|---|---|---|
| 対応 | 対応 | 対応 | 対応 | 対応 |
実務での使用例
Windows API呼び出しの64bit対応
32bit環境で動いていたAPI宣言を64bit Excelに移行する場合
#If VBA7 Then
Declare PtrSafe Function GetUserName Lib "advapi32.dll" ...
#Else
Declare Function GetUserName Lib "advapi32.dll" ...
#End If