VBA on 64bit

とりあえず 覚書

 

以下 抜粋^^

要約すると次のようになります。64 ビットのコードを書き、それを以前のバージョンの Microsoft Office で使用する場合は、VBA7 条件付きコンパイル定数を使用する必要があります。しかし、Office 2010 で 32 ビットのコードを書く場合は、このコンパイル定数を使用しなくても、そのコードは以前のバージョンの Microsoft Office での動作と同じになります。32 ビット バージョンには間違いなく 32 ビットのステートメントが使われ、64 ビット バージョンには間違いなく 64 ビットのステートメントが使われるようにするには、Win64 条件付きコンパイル定数を使用するのが最善策です。

 

 

#if Win64 then
   Declare PtrSafe Function MyMathFunc Lib "User32" (ByVal N As LongLong) As LongLong
#else
   Declare Function MyMathFunc Lib "User32" (ByVal N As Long) As Long
#end if

#if VBA7 then
   Declare PtrSafe Sub MessageBeep Lib "User32" (ByVal N AS Long)
#else
   Declare Sub MessageBeep Lib "User32" (ByVal N AS Long)
#end if