【#VBA】CreateObject(“Scriptlet.TypeLib”).GUIDで「70 書き込みできません」エラー
関連記事
- VBAなお仕事中 【2017年06月13日(火)】
- Excel-COM&Outlook-COMな仕事,一山越えた 【2017年05月19日(金)】
- 最近,全力でモノ作り中 【2017年05月19日(金)】
- 【C#,Excel-COM】ExcelアドインをC#使って自動登録/解除 【2014年07月01日(火)】
- Excel-VBA なんか慣れた(爆 「リボンへのマクロの自動登録機構」も作りこんだ 【2014年06月25日(水)】
某社に出しているVBAマクロが,エラー吐いて,起動できなくなった言うてる
あれ?なんじゃろか??
某社の社内システム,セキュリティがきついし
また,社内セキュリティ仕様が変わったかね?(これで対応コードを何度か変更した)
とりあえず,思いつくまま対応メールした
んで,別の仕事やろうと思ってたけど,なんか引っかかって,ディープに調べてみた
驚愕の事実,判明((((;゚Д゚))))ガクガクブルブル
KB3213624をWindows Update当てると,”Scriptlet.TypeLib” COMの仕様変わって
実行時エラー ’70’: アクセスが拒否されました
が出るそうな
GUID – Run-time error ’70’ permission denied @Microsoft
2017 年 7 月のセキュリティ更新適用後、VBA から一部のオブジェクトを作成できません@Microsoft
CreateObject("Scriptlet.TypeLib").GUID
これ,使いまくり...。・゚・(ノД`)・゚・。
MSさん,仕様変えるなよぉ~~
このコードに変えれば,大丈夫っぽい?(未検証)
Private Type GUID_TYPE
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
Private Declare PtrSafe Function CoCreateGuid Lib “ole32.dll” (Guid As GUID_TYPE) As LongPtr
Private Declare PtrSafe Function StringFromGUID2 Lib "ole32.dll" (Guid As GUID_TYPE, ByVal lpStrGuid As LongPtr, ByVal cbMax As Long) As LongPtr
Function CreateGuidString()
Dim guid As GUID_TYPE
Dim strGuid As String
Dim retValue As LongPtr
Const guidLength As Long = 39 'registry GUID format with null terminator {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
retValue = CoCreateGuid(guid)
If retValue = 0 Then
strGuid = String$(guidLength, vbNullChar)
retValue = StringFromGUID2(guid, StrPtr(strGuid), guidLength)
If retValue = guidLength Then ‘ valid GUID as a string
CreateGuidString = strGuid
End If
End if
End Function
某社担当,今日はお休みらしいので
明日,対応検討しますー

コメント
「ルンバ」製造のアイロボット、連邦破産法11条適用申請-近年収益減
今年の漢字は、初登場「熊」に決定
今週末は天気が悪そうじゃ.お出かけには向かないかものぉ
今朝も一桁℃で寒いの.エアコンがフル稼働中
【#特別重大報道】存立危機事態オワタ:オヤジが亡くなったので諸々の行事を片してきたのぢゃ
【相続祭り】ドコモ光の解約を失敗した!ドコモは契約が無いって言うてるが...
【#大雪】大雪に対する国土交通省発表(25/12/2)