32bitから64bitのExcelに移行する際、VBAで注意すべき点は?
主に2点の注意が必要です。①Declare文にPtrSafe宣言が必要(例: `Declare PtrSafe Function...`)。②ポインタ型引数のデータ型をLong→LongPtrに変更する必要がある場合があります。Office 2016以降では`#If VBA7`で条件分岐するのが定番のパターンです。
📊 バージョン対応
2016
✅
対応
2019
✅
対応
2021
✅
対応
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 IfVBA32bit64bitPtrSafeDeclare文
関連する Q&A
✅ 2016✅ 2019✅ 2021✅ 365
ExcelのVBAランタイムはバージョンで異なる?
VBAランタイムは全バージョンでバージョン7.1で統一されています。
VBA・マクロ·中級·2025-01-15
✅ 2016✅ 2019✅ 2021✅ 365
新しいバージョンのExcelでVBAオブジェクトモデルに変更はある?
Office 2016以降では大きなオブジェクトモデルの変更はありません。
VBA・マクロ·上級·2025-01-15
✅ 2016✅ 2019✅ 2021✅ 365
ThisWorkbook.PathがURL(https://...)を返すようになった?
2021/365ではOneDrive/SharePointファイルのPathがURLを返すようになりました。
VBA・マクロ·上級·2025-01-15