私は夜間に切り取ったコードに問題があります。これにはいくつかの特徴がありますので、できる限り詳細に説明しようと思います。VBA 'set typelib = createobject( "scriptlet.typelib")'アクセス許可が拒否されました
問題のファイルは、渡されたデータからxmlファイルを生成するExcelブックです。マクロを使用してファイルが開かれ、読み込まれ、保存され、このセクションはうまく動作します。
このルーチンでは、.xmlファイルのGUIDを作成するときに問題が発生します。
Function GenGUID() As String
Dim strGUID As String
Dim TypeLib As Object
Set TypeLib = CreateObject("Scriptlet.TypeLib")
strGUID = TypeLib.guid
'dump the curly brackets
strGUID = Replace(strGUID, "{", "")
strGUID = Replace(strGUID, "}", "")
strGUID = Left(strGUID, Len(strGUID) - 2)
GenGUID = strGUID
End Function
具体的には、ライン:
Set TypeLib = CreateObject("Scriptlet.TypeLib")
これは、「ランタイムエラー70をスロー:アクセス許可が拒否されました"
今、特色です。
- ファイルが試された4台のマシンのうち、1台で動作します。
- 'working'マシンのユーザーは、他の3台のマシンでこのファイルを実行しようとしていません。
- 3台の「故障した」マシンのうち、2台には一晩更新がインストールされていて、もう1台は数日でアップデートがインストールされていませんでした。 '働いている'マシンは2月以来アップデートをインストールしていません。
- 管理者アカウントでファイルを実行しようとすると、一晩のアクセス許可の更新が除外されました。
- ファイルは壊れたマシンの1つで昨日正常に実行されました(2017年7月12日)。
- すべての参照ライブラリがチェックされており、それらが「稼働中」のマシンと一致しています。
- 4台のマシンすべてで使用されているExcelバージョンは2013 Proです。
上記の点が更新の問題です。しかし、昨日ファイルが正常に実行されたマシンは、一晩更新されていない「壊れた」マシンで、これを排除していました。
私たちは、私たちが考えているすべてのものを試してみました。また、多くのインターネットトリーで答えを得ました。すべては何も出てこない。
誰にもアイデアはありますか?
ご協力いただきありがとうございます。
同じことがまさに今日私に起こりました。 –
私もこの問題があります。私はscriplet.typelibを使用しないGUID生成用の代替コードを見つけました(このアップデートをロールバックする必要はありません):[http://www.cpearson.com/excel/CreateGUID.aspx](http:// www.cpearson.com/excel/CreateGUID.aspx)正常に動作するように見えます。それを使わない理由は何ですか? –
@AlexBloom、この代替案はOffice 2013では使用できません – juanmah