XP、Windows 7、および Windows 8 を実行している複数のユーザーに配布した古い VB6 アプリがあります。次のコードは、エラー 91 ""オブジェクト変数またはブロック変数が設定されていません" をスローしています。
Const ssfPERSONAL = 46 'set directory to the common Documents folder
Dim strMyDocsPath As String 'stores common docsPath
On Error GoTo ErrorHandler
strMyDocsPath = CreateObject("Shell.Application").NameSpace(ssfPERSONAL).Self.Path
具体的には、最後の行が問題です。strMyDocsPath がユーザー コンピューター上の共通ドキュメント フォルダーを指すようにします。Windows 7 および 8 では正常に動作しますが、問題なく動作する XP 開発マシンを除いて、XP マシンでは動作しません。
問題のあるコンピューターで、scrrrun.dll の再登録を試みたところ、正常に登録されたというメッセージが表示されました。VB6 の配布可能な SP6 ファイルをダウンロードしてインストールしようとしましたが、それでもエラーが発生します。いくつかのフォーラムを検索しましたが、わかりません。何か案は?