【#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
某社担当,今日はお休みらしいので
明日,対応検討しますー
コメント
急激に寒くなってキター 晩秋がやってきた!
【#諸塚村】連休初日のBBQの模様なぞをアップしてみる
冷房なしで日中過ごすの,いつ以来よっ!?優しい涼しさが心地よい
【#異星人 発見!】異星人から謎の暗号メールを受け取った!解読不能ヤバス【シレペヒキク】
タッパーウェアが破産申請を計画、事業てこ入れ策つまずく-関係者
電子レンジが不調になったヤバス
【#地震】霧島山で有感地震 生駒高原のあたりか?(24/9/6)
奄美大島のマングース 環境省が根絶宣言