[MS-Office]32bit?,64bit?

MS-Office 365をインストールすると32bit版か64bit版のどっちが入るのか?

どうやら32bit版のOfficeをインストール済みのPCにインストすると32bitになり、Officeが入っていない64bit版のWindowsでは64bit版が自動的に入るようだ。

32か64か?の確認は、ファイル⇒アカウント⇒***のバージョンの「ボタン」を押すと、ダイアログの上の右あたりに ***ビットって書いてある。

とりあえず、メインPCは古いバージョンから使い続けているので32bit、サブPCにインストしたら64bitになった。

そうなると、VBAからのWindowsのAPIの呼び方が変わるので

Public Declare PtrSafe Sub SubName Lib "LibName" Alias "AliasName" (argument list)

にしないといけないが、32bit版だと ptrSafe は未定義なので

#if WIN64 then
Public Declare PtrSafe Sub SubName Lib "LibName" Alias "AliasName" (argument list)
#else
Public Declare Sub SubName Lib "LibName" Alias "AliasName" (argument list)
#endif

とコンパイル・オプションで切り替えが必要。

ODBCでデータベースに繋いでいると、更に面倒なことになる。

32bit版のWindows10は今まで通りで、
1.データベースのODBCドライバを32bit版をインストして、
2.C:\Windows\System32\dbcconf.exeで登録するBATファイルを作る。

しかし、64bit版のWindows10は、ODBCが32と64の両方ある。Officeが32bit版ならODBCも32bit版、64bit版ならODBCも64bit版になるようだから、どっちに転がるか判ったものではないので、

1.データベースのODBCドライバを32と64bitの両方をインスト。
2.C:\Windows\System32\odbcconf.exeで登録するBATファイルを作る。
3.2のBATファイルのSystem32をSysWOW64したODBC-32bit専用を作る。
4.とりあえず、2と3の両方を管理者モードで実行しておく。

細かい事だけど、
C:\Windows\System32\odbcconf.exeがメモリに残骸として残っている間は、
C:\Windows\SysWOW64\odbcconf.exeと指定しても、
System32の方が動いてしまう情けないシロモノなので、
cd C:\Windows\SysWOW64 と
odbcconf.exe xxxx に分けた方がいい。
※パスが通っている逆もしかり。

データソース名は32bitと64bitで重複しても気にならない様なので、こうしておけば、メインPCのOfficeが急に64ビット版に変わってもなんとかなるだろう。

ちょっと変な気がするけど、SysWOW64は、64bitのWindowsで32bitのEXEを実行するためのモノが入っているので、ここのdbcconf.exeを使うと、32ビット用のODBCの設定をやってくれる。
参考:WikepediaのWOW64

いづれ、メインPCがクラッシュすれば、32bit版は消滅するハズだ。

しかし、これがエンタープライズなWindows環境なら、いくら新PCであっても、32bit版が100年くらい生きながらえる可能性は高い。




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA