【VBScript】文字コードの違いに気づかずドツボにハマった話
プログラムを書いたことのある人であれば、何かしらでドツボにハマってしまったことが1度はあるのではないでしょうか。
今回は私がドツボにハマった、しょうもない失敗を紹介します。
あの時の私は、VBScriptで「Microsoft Accessのマクロを実行する」プログラムを書いていました。
※タスクスケジューラーを使って定期実行させたかったんですよね。
その時のソースコードがこんな感じです。
'変数定義 Dim AcApp Set AcApp = CreateObject("Access.Application") Dim AcDB AcDB="ファイルパス" 'データベースを起動 AcApp.visible = true AcApp.OpenCurrentDatabase AcDB WScript.Sleep 5000 'マクロを実行 AcApp.Application.Run "マクロ名" WScript.Sleep 5000 'データベースを閉じる AcApp.Quit set AcApp = Nothing
実行すると........
はい。出ました。
私をドツボにハメたエラーメッセージが(笑)。
ソースコードの9行目なので、この部分のエラーですね。
AcApp.OpenCurrentDatabase AcDB
エラー原因の候補は、(ざっくりいうと)以下の3つです。
①指定したファイルが存在しない。
↑何度確認しても問題なし。
②ファイルパスが間違っている。
↑こちらも同じく問題なし。
③他の人が開いている。
↑自分のデスクトップに置いているのでそんなはずもなく。
④指定したファイルのファイル形式が適切でない。
↑ファイル形式「.accdb」なので問題なし。
………はい。行き詰りました(笑)。
その後、1時間近くPCとにらめっこをしましたが、ドツボから抜け出すことはできませんでした……。
翌日、改めてソースコードを見返している時、偶然にもエラーの原因を発見しました。