この記事はこんな方におすすめです
・Access2003のVBAで64bit判定したい方
・Win64関数でエラーになった方
Access2003などで開発された過去の資産をWindows10の環境で使用したい場合に32bitと64bitの壁にぶち当たることがあると思います。
他の方のソースコードを参考にAccess2003のVBAに「If Win64 Then」を実装して実行してみたところ、Access2003の環境ではWin64関数が定義されておらずエラーになってしまいました。
他に良い方法がないか調べてみたところ、きぬあささんのブログに答えがありました。
下記に私が引用したソースコードをそのまま抜粋します。
Public Sub Sample()
If Isx64 Then
MsgBox "64ビット環境です。"
Else
MsgBox "64ビット環境ではありません。"
End If
End Sub
Public Function Isx64() As Boolean
Dim colItems As Object
Dim itm As Object
Dim ret As Boolean
ret = False '初期化
Set colItems = CreateObject("WbemScripting.SWbemLocator").ConnectServer.ExecQuery("Select * From Win32_OperatingSystem")
For Each itm In colItems
If InStr(itm.OSArchitecture, "64") Then
ret = True
Exit For
End If
Next
Isx64 = ret
End Function
大変参考になって助かりました。
おかげで32bitと64bitで処理を分岐させることができました!
[blogcard url="https://www.ka-net.org/blog/?p=3779"]
