この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。32bit/64bit Office共存時の条件付きコンパイルを整理し、旧本文の内部プロンプト、重複H1、GetTickCountを高精度タイマーと呼ぶ表現を修正しました。検証ステータス:✅ VBA7/LongPtrの仕様に沿って再整理
VBA7はVBAの世代、Win64は実行環境が64bitかどうかを示します。この2つを同じ意味として扱わないことが、32bit/64bit Office共存コードの基本です。
典型的な分岐
#If VBA7 Then
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
#Else
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, ByVal lpWindowName As String) As Long
#End If
LongPtrは32bit環境ではLong、64bit環境ではLongLong相当になるため、ハンドルやポインタの受け皿に適しています。
GetTickCountの扱い
GetTickCountはDWORDを返すため、64bit OfficeだからLongPtrへ変える対象ではありません。また「高精度計測」が必要なら、用途に応じてQueryPerformanceCounterなど別APIを検討します。
公式情報
この記事の更新履歴
- 2026-09-14 追加:VBA7とWin64の意味の違い、GetTickCountの位置づけを追加。
- 2026-09-14 変更:APIサンプル中心から、32/64bit共存時の型判断中心へ整理。
- 2026-09-14 削除:内部style_prompt、本文H1、「GetTickCountは高精度タイマー」という表現を削除。

