カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

未定義関数Dir 解決法

ACCESSのMDBファイルを使用していて、何らかのプロシージャを実行したとき、
未定義関数Dirがあります等のエラーが発生することがある。

【解決法】
レジストリのSandboxModeの値を2にする

【操作】
スタートからファイル名を指定して実行を選択し、
「regedit」と入力しEnter。

レジストリエディタが起動するので、検索で「SandBoxMode」を探すか
以下のパスを辿って見つけて値を変更してください。

\\HKEY_LOCAL_MACHINE\Software\Microsoft\Jet4.0\engines\SandboxMode

※これで解決しない場合、他に考えられる原因はOfficeのアップデートを
適用していない場合があります。
その場合、アップデートすると解決することがあります。


SandBoxModeが見つからない

2019年9月2日追記

通常、レジストリを検索すれば「SandBoxMode」が見つかると思うのですが、特定のバージョンでは見つからない場合があるようです。
今回見つからなかったのはMicrosoft Office 2016の場合でした。
この場合、新たに値を作成すればうまくいきました。

Office 2016の場合は以下のようにパスを辿ってください。
\\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Office\16.0\Access Connectivity Engine\Engines

そしてEnginesの中に値を作成します。
レジストリエディタの右側のボックスを右クリックし、[新規]-[DWORD(32ビット)値]と選択します。
名前は「SandBoxMode」と入力し、値に2を設定します。

他のバージョンについては以下のURLを参考にしてください。
サンドボックス-モードのオン-オフを切り替えてマクロを無効にする

4,664 views