ここでは、32ビット版のエクセルでは動作していたマクロを64ビット版エクセルで動かしたところ発生したエラーを紹介しています。なお、Office2010 から64ビット版アプリが提供されているようです。
他にもまだまだ、たくさんありそうな気がします
スポンサーリンク
PrtSafe属性
はずはじめはこちらのエラーです。

PtrSafe属性
このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。Declareステートメントの確認および更新を行い、次にDeclareステートメントにPtrSafe属性を設定してください。
はい、意味がわかりませんが次のように、Declare ステートメントの後にPtrSafeを追加するだけでいいようです。もはや完全に思考が停止しています(笑)。
' 64ビット版のエクセルであるか確認 #If Win64 Then Declare PtrSafe Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _ ByVal lpAppName As String, _ ByVal lpKeyName As Any, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) As Long Declare PtrSafe Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _ ByVal lpAppName As String, _ ByVal lpKeyName As Any, _ ByVal lpString As Any, _ ByVal lpFileName As String) As Long #Else ' 32ビット版の場合は、現状のまま、こちらを使用する ' 動いているものは手をつけずにそのまま使う Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _ ByVal lpAppName As String, _ ByVal lpKeyName As Any, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) As Long Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _ ByVal lpAppName As String, _ ByVal lpKeyName As Any, _ ByVal lpString As Any, _ ByVal lpFileName As String) As Long #End If
Microsoft.Jet.OLEDB.4.0 プロバイダが見つからない
Accessに接続するマクロでは、Microsoft.Jet.OLEDB.4.0 を使用している場合が多いと思いますが、64ビット版では提供されていないようです。ないものはないので、使えないということです。

プロバイダーが見つかりません
実行時エラー ‘3706’:
プロバイダーが見つかりません。正しくインストールされていない可能性があります。
そのため、64ビット版でも提供されている代替の Microsoft.ACE.OLEDB.12.0 (または、それより新しいもの)を使用する必要があります。
Dim con As New ADODB.Connection #If Win64 Then con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=test.mdb;" #Else con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;" #End If
Long型が意外と危険
64ビット版でマクロをコンパイルをしたところLong型の変数で「型が一致しません」と怒られていました。
LongLong型などに変更したりするとコンパイルエラーとならなくなったりもしたのですが、バリアント型変数(Variant)として宣言することで、32ビット版と64ビット版を意識せずに、マクロが勝手にいい感じに解釈してくれる可能性もあります。
面倒くさいと感じられる場合は一度、試してみるといいかもしれません。