Windows Update 2019-08の累積的な更新により、VBAコードの使用例が破損しました
VBAコードの問題が一部のユーザーと今朝の私にも見られ始めました.最新の2019-08累積更新プログラム(KB4511553など)が原因であることが判明し、WindowsとOfficeのすべての組み合わせに影響しています
これまでに見てきたこと-Windows Server 2008からWindows 10
およびOffice 2003(!)からOffice 2016まで.
以下のテストコードは問題を示しています.「テスト」メソッドは、2019-08累積アップデートがインストールされる前(またはアンインストールされた後)にエラーなしで実行されます.ただし、更新後、空のParamArrayパラメーターを別のパラメーターに渡すシナリオ
メソッドをVariantパラメータとして使用すると、2番目のメソッドの宣言行でエラーがスローされます.(エラー5:無効なプロシージャコールまたは引数).
サブテスト()
Test1 "A"、 "B" 'Windows Updateがあってもなくても問題なく動作します
テスト1 'Windows Update後に失敗する
End Sub
Sub Test1(ParamArray P()As Variant)
テスト2 P
End Sub
サブテスト2(ByVal P As Variant) 'この行でエラーが発生しました
End Sub
これにより、Microsoft AccessApplicationでエラーが発生しますが、Word 2016でもこのコードを試しましたが、同じ問題がそこでも発生します.
誰かがこれを検証できますか?この問題を報告する正しい方法が何であるか本当にわかりません.
クリス
返信リスト(回答:41)
私はその正確なversionはありませんが、あなたのコードはうまく機能します:
1907 11901.20176
1907 11901.20218
1909 12001.20000
おそらくあなたはアップグレードまたはダウングレードすることができますか?
あなたは偏っていましたか?
応答1# ->にスキップ2 #ChrisJoこんにちはトム、
返信してくれてありがとう.私は1907年11月11901.20176でテストしました、そして、これは私がMicrosoft Officeを試したすべてのversionにあるのでエラーを示しました.テストコードを使用して、空白のデータベースをスクラッチから作成しました.
2019-08 Windows累積更新プログラムをインストールした後にコードを実行しましたか?これは私のversionのWindows(1809)、Butkb4512501、または1903年のKB4512508のKB4511553です.(Windows Server 2008 SP2の月刊ロールアップの場合はALSOKB4512476)
クリス
クリス:
Elizabeth Lee連絡先に返信しないでください、それらは機械生成スパム
です.アップデートが適用された後はどのversionとBuild番号がありますか?
どのversionオフィスがありますか/どのversionwindows がありますか textify-ダイアログボックスから「無意識の」テキストをキャプチャするためのツールhttps://rammichael.com/textify.
このような機能を提供していないダイアログボックスからテキストをコピーしたいと思ったことがありますか?
この問題を解決するためにテキストを作成しました.+ミドルクリックデフォルトでクリックし、テキストの選択可能なビューを取得します.
正確なversionのMicrosoft Officeを見つける
これはOffice 2003から2019年をカバーする良い記事です.
私はMicrosoftのシニアエスカレーションエンジニアです.この問題のためにオープンした複数のサポートケースに既に取り組んでいます.昨日リリースされたアップデートには、特定のセキュリティ攻撃を緩和するoleaut32.dllの変更が含まれていました.
残念ながら、この緩和策により、空のParamArrayを渡していたこれらすべてのVBAおよびVB6アプリが、内部関数呼び出しからE_INVALIDARGを返し始めました.これは、あなたが見ているエラーまで泡立ちました.
私たちはこれを非常に真剣に受け止め、これを解決する安全で迅速な方法の可能性について議論しています.これはセキュリティアップデートが原因で発生したため、行った変更を元に戻すのにいくつかの障害がある可能性があります.
それでも、現時点ではこの問題に全力を注いでおり、安全に更新できるようになったらアップデートを提供するのでご安心ください.
それまでの間、コードを自由に変更できる場合は、ParamArrayにパラメーターを渡すことで、たとえそれが不要であっても、問題を回避できます.
スコット
応答8# ->にスキップ9 #ScotBre 2これはそれらを更新するためのKB記事のより完全なリストです.この短いURLで「ダッシュボード」にアクセスできます. リンク:WindowsReleaseHealth.
すべてのKB記事が既知の問題で更新されるようになりました:
OS KB番号 RS1- 4512517Windows 10
1607およびWindows Server 2016RS2- 4512507Windows 10
version1703RS3- Windows 10
version17094512516 RS4- Windows 10
version1803またはWindows Serverversion18034512501 RS5- Windows 10
4511553 19H1(1903)- Windows 10
、version19034512508 TH1(1507/RTM) 4512497 毎月のロールアップWin 8.1とWin Server 2012 R2 4512488 秒.Win8.1とWin Server 2012 R2 のみ4512489 毎月のロールアップWin Server 2012とWindows Embedded 8規格 4512518 秒.Win Server 2012とWindows Embedded 8規格 のみ4512482 毎月のロールアップWin 7 SP1とWin Server 2008 R2 SP1 4512506 秒.7 SP1とWin Server 2008 R2 SP1 4512486 毎月のロールアップWin Server 2008 SP2 4512476 秒.Win Server 2008 SP2 のみ4512491
応答9# ->にスキップ10 #TomvanS4512508もここに述べられています:
抜粋:
詳細 発信元更新 状態 履歴 Visual Basic 6(VB6)、VBA、およびVBScriptを使用したApplicationがエラーで応答を停止することができます
インストール後 kb4512508 、Visual Basic 6(VB6)、Visual Basic for Applications for Applications(VBA)を使用してマクロを使用して行われたApplication、およびVisual Basic Scripting Edition(VBScript)を使用してスクリプトまたはApplicationが応答を停止して受信することがあります.
「無効なプロシージャコールエラー」.
影響を受けるプラットフォーム:次のステップ:マイクロソフトは現在この問題を調査しており、利用可能なときにアップデートを提供します.
- クライアント:
Windows 10
、version1903;Windows 10
、version1809;Windows 10
Enterprise LTSC 2019.Windows 10
、version1803;Windows 10
、version1709;Windows 10
、version1703;Windows 10
Enterprise LTSC 2016.Windows 10
、version1607;Windows 10
Enterprise LTSC
2015;Windows 8
.1;Windows 7
SP1- サーバー:Windows Server、version1903; Windows Server、version1809; Windows Server 2019.Windows Server、version1803; Windows Server、version1709; Windows Server 2016.Windows Server 2012 R2.Windows Server 2012.Windows Server 2008 R2 SP1.Windows Server.
2008 SP2
トップに戻るOSBuild18362.295
2019年8月13日
kb4512508最終更新日:
2019年8月14日
03:34 PM PT
応答9# ->にスキップ12 #Rohn007スコット:
気になったのですが、これはOfficeの更新の問題ではなく、OSの更新の問題でした.VBAはOfficeコンポーネントです.しかし、もう少し調査を行って、自分で答えを見つけました(そのため、ここで共有します).oleaut32.dllは、によってインストールされる共有システムファイルです.
Applicationではなくオペレーティングシステム(Officeなど).
応答4# ->にスキップ11 #ChrisJoハイスコット、
アップデートありがとうございました.
あなたの提案に従って、空のパラメレイの代わりに「空」を渡して、内部関数内でそれを検出することによって問題を回避しています.
将来の参考のために、私は実際にマイクロソフトのようなものを報告することになっていますか?特定のWindows Updateに問題を報告する方法がわかりませんでした.私はTwitterに@ microsofthelpsに尋ねました、そして彼らは私をUservoiceに向けました-これはしませんでした
そのように表示されるように見えるように見えます.だから私はこのフォーラムを見つけてここに投稿されました.クリス
応答11# ->にスキップ14 #ScotBre 1こんにちは、クリス
サポートケースを作成することは、私たちと関わる最も効果的な方法です.このウェブページから開始
このリンク:ja-jp[お問い合わせ]リンクをクリックします.製品やお客様とのコミュニケーション方法に応じて、複数のオプションがあります.
この特定のケースでは、選択する製品またはパスが明確でないことに同意します.一部の人にとっては、Windowsコンポーネント(oleaut32.dll)への変更であることが判明した場合、Office製品の問題のように見えますが、あなたはそれを知らなかったでしょう.
お申し出がない限りあなたが問題のソフトウェアの開発者であり、ソフトウェアがMicrosoftコンポーネントに問題を抱えている場合、ほとんどの場合、サポートケースを依頼するときに使用した開発者ツールを選択するのが最善です.ただし、Visual Basic 6を使用した場合、
VB6開発をサポートしなくなったため、オプションとしてそれを見つけてください.わかった、イライラする.VB6を使用してアプリを作成し、Microsoftの変更によりアプリが破損したと確信している場合(oleaut32への更新によりいくつかのVB6が壊れた場合と同様)
アプリとVBAスクリプト)、製品としてVisual Studioを選択すると、正しいチームが作成されます.そこから解決するお手伝いをします.Office製品(Excel、Wordなど)のVBAスクリプトである場合は、サポートされる製品としてOfficeを選択し、スクリプトに関連するサブトピックを選択します.
今回はどちらの場合も、共有oleaut32が他の多くの製品で使用されているため、解決策は実際にはWindows製品エンジニアリングから取得され、SafeArraysとVariantsを使用するアプリで問題が発生しただけです.
VB6とVBAで一般的に使用されます(一部のC ++アプリでも使用されます).この特定のリグレッションは、空のsafearrayをバリアントにコピーしようとすることに関連していました.しかし、コードが空のParamArrayで関数を呼び出したからといって、
またはArray()を変数に割り当てようとしました.可能な限り、最も専門的な専門知識を必要とする使用中の製品を選択すると、より高度なサポートが受けられます.
スコット
応答14# ->にスキップ40 #Williamあなたの提案を続けた後、私を返してください.私の症例#は1485083846でしたが、誰も見えませんでした
私または私の問題のどちらかを理解するために.FIXはほとんどのversionでロールアウトされているので、なぜMS10 Build 1903のために修正がロールアウトされていないのですか?これは私にとって悪夢でした&私は私のソフトウェアを使って私の仕事をするために最新のアップデートをオフにしなければなりませんでした
私は脆弱になります.
応答40# ->にスキップ41 #ScotBreWilliamnesbitt1、
どのようにしてマイクロソフトにサポートに連絡しましたか?あなたの「case#」と言われたその数は、カスタマーサポートサービスで使用する形式ではありません.あなたが実際にマイクロソフトサポートの人々と話すならば、私は彼らが知っていなかっただろうと非常に驚いています
月以上前に修正したバグの.Windows 10
1903の修正は確かにリリースされました.私はこれがあなたのために悪夢だったことを聞くのは悲しいです.私はあなたが到達したのはどのタイプの "MSサポート"のタイプとそのケース#が来るかを知ることが非常に興味があります.ここから始めましたか? https://support.microsoft.com/ja-jp.
scot
応答4# ->にスキップ29 #AnitaEvSCOT、これは挿入、ファイル、またはテキストを挿入して作業を停止しますか?
私はセーフモードで私の言葉を始めましたが、これはまだ問題です.
ありがとう
応答29# ->にスキップ30 #ScotBreアニタ
それは、この回帰のありそうな結果のように聞こえません.特に、この問題は、空の配列をバリアントにコピーしようとすることに関連しています.パッチがないと、無効なプロシージャコールまたは引数に関連するエラーが表示される場合があります.
発生した問題をこの問題に関連付けることができない場合は、おそらく別の問題に直面しています.
どういたしまして.「お城」の歴史的な振る舞いが伝わらなかったことをお詫びします.それを変えようとしています.
応答5# ->にスキップ6 #Rohn007ええと、私は堀の中の誰かと話をする機会があるので、ここにフードチェーンを渡すためのもう少しのアイデアがあります:
たとえば、フィードバックシステム(フィードバックハブおよびUSERVOICEサイト)では、確認応答をより説明的にすることをお勧めします.「私たちはそれを持っています」は何も役に立つものを伝えません.USERVOICEサイト:設計基準をいくつか実行します.それらのサイトは全く野生の西です.たとえば、作成できる投票数の制限を取り除くことから始めます.
フィードバックハブには、USERVOICEフィードバックが表示されますか?彼らはすべき.私は決してテストされたことがない.
OneNote
Windows 10
/UWP:リボンとクリッピの中でシングル最悪の設計決定MSが行われました.地球上では、OneNote 2016/DesktopをUWPversionで強制的に交換することで誰かがサインオンすることができます.その人だけが信じられないほど失礼だった.そして、UWPは依然として依然として
欠けています非常に多くのキー機能がMSを述べることができるのは、(DIS) "改善"です.「いつの日か」を復元することを約束しながら機能を奪うことはできません.OneDrive
にノートのみを保存するように強制することは、プライバシーの理由から受け入れられません.実際に実装されているフィードバックハブ追跡/報告フィードバックのセクションを作成します.フィードバックがブラックホールであると感じていますが、提案はありませんが、何も出ていません.
フィードバックの分類は難しすぎる.どのカテゴリを使うのかを常に思い出します.私はそれが好きではありませんが、私はそれをよりよくする方法を知らない...
応答6# ->にスキップ7 #ScotBreあなたの提案やリクエストに対応できるチームとは直接関係はありませんが、私は少なくとも「堀」の中にいるので、実際にできる人を見つけるためにできることをしますそこで何かします.このフォーラムのスレッドをスパムしないように
元の投稿に直接関係のない問題については、Microsoftの「ドットコム」アドレスまでご連絡ください.この返信を読んだ人に、私がそれを悪用しないことを尊重してくれることを願っています.
ソリューションリンク:
これは、空の配列をサブ/関数に渡すときにも発生します.
この場合、「ByVal」で渡された場合にのみ発生します.
パラメータ「ByRef」を渡す場合、問題は発生しません.
クラス1:
明示的なオプション
パブリックタイプMyType
Prop1 As Integer
終了タイプ
サブテスト()
次のエラー時に再開
Dim Arr()As Object
TestByRef Arr 'Windows Updateの前後に機能します
TestByVal Arr 'Windows Update後に失敗する
Dim Arr2()As MyType
TestByRef Arr2 'Windows Updateの前後に機能します
TestByVal Arr2 'Windows Update後に失敗する
Dim Arr3()As Class1
TestByRef Arr3 'Windows Updateの前後に機能します
TestByVal Arr3 'Windows Update後に失敗する
Dim Arr4()As Variant
TestByRef Arr4 'Windows Updateの前後に機能します
TestByVal Arr4 'Windows Updateの前後に機能します
Dim Arr5()As Integer
TestByRef Arr5 'Windows Updateの前後に機能します
TestByVal Arr5 'Windows Updateの前後に機能します
End Sub
Sub TestByRef(ByRef P As Variant)
End Sub
Sub TestByVal(ByVal P As Variant) 'この行でエラーが発生しました
End Sub
応答15# ->にスキップ16 #ScotBreはい、あなたの観察はアップデートで導入された変更と完全に一致しています.コードで空の配列の内容をバリアントにコピーする必要がない場合、無効なフラグは付けられません.ByRefは、コピーである必要はありません
できましたが、ByValはできました.
応答16# ->にスキップ17 #ScotBreこれまでの公式アップデート:
「この問題に対処するために早期にリリースする「オプション」のCアップデートの一部として、今後数日のうちにこの問題の修正をリリースします.顧客は更新プログラムを入手できます.WindowsUpdate for Businessの顧客
Microsoft UpdateカタログまたはWindows Server Update Services(WSUS)経由でアップデートを適用する必要があります.」翻訳:一部のプラットフォームでテストした修正があり、他のプラットフォームでのテストを待機しています.リリーススケジュールは、お使いのWindowsのversionとアップデートの入手方法によって異なります.場合によっては、リリースが
今日の午後でも.他のケースでは、おそらくもう一週間かそこら.またはその中間.現時点ではこれですべてです.
応答17# ->にスキップ18 #Rohn007この記事で匿名の「atta-boy」が表示されます(私はサイトとは関係ありません)
2019 08 16-Windowsの更新によりOffice VBAが失敗しますhttps://Office-watch.com/2019/Windows-update-causes-Office-vba-to-fail/
応答17# ->にスキップ20 #ScotBre私はちょうど数分前に私達のプロダクトチームから新しいアップデートを得ました:
"の項目 Windowsリリース情報ダッシュボード
が更新されましたこれは、一部のWindowsversionでは更新がすでに利用可能であることを意味します.あなたがあなたに興味のある特定のWindowsversionのダッシュボードをチェックすると、修正がすでに利用可能であるかどうか、またはそれが来るのに利用可能になっている場合
1903年の1903年の日数、または「8月下旬」.
応答21# ->にスキップ22 #ScotBre 1
windows 7
には、まだKB 4517297を適用しましたか?https://support.microsoft.com/ja-jp/help/4517297/windows-7-update-kb4517297.
上記の記事のカタログURLが間違ったKBを指しているので、この
を試してください.https://www.catalog.update.microsoft.com/search.aspx?q=kb4517297.
scot
応答22# ->にスキップ23 #EranMay私はupdate4517297を適用しましたが、それでもエラーが発生しました.
コード内のプロシージャ/関数への最初の参照がエラーの原因であるようです
「コンパイルエラー:
メソッドまたはデータメンバーが見つかりません."
応答23# ->にスキップ24 #ScotBre申し訳ありませんが、エラン、これはこの問題に関連するエラーではないため、修正によって解決されるものではありません.私たちの回帰は、空の配列をバリアントにコピーしようとすることに非常に明確に関連していました.時々これはエラーとして表示されます
「無効なプロシージャ呼び出しまたは呼び出し引数」のようなメッセージ.「メソッドまたはデータメンバーが見つかりません」と表示された場合は、コードを調べて、その原因を診断する必要があります.
スコット
応答24# ->にスキップ25 #EranMayこんにちは、
コードに何も変更を加えておらず、数年間機能したため、Windows/Officeの最後の更新に関連している可能性があります.
また、最後の更新がない他のユーザーにとっては、すべてが正常に機能します.
そして、それはWin7でのみ起こりました.
応答25# ->にスキップ26 #ScotBreOK.新しいスレッドを開始して、
Windows 7
でのみ発生している新しい問題の詳細を説明し、別のエラーメッセージを表示することをお勧めします.これは、回帰に関連するこのスレッドを混乱させないようにするのに役立ちます
配列が空のときに無効な引数エラーを返す.別のリグレッションがある場合は、別のスレッドでそれを議論するのが最善です.それで、他の人がここで議論されているものについて混乱しないようにします.
応答17# ->にスキップ27 #turagitこんにちはスコット私はこの問題を経験しています
windows 10
version1903を使用しています.上記のパッチは以前のBuildのためのものです
修正が解除される可能性がある場合に更新が更新されますか?これは大きな気晴らしです
応答31# ->にスキップ32 #ScotBre昨日予定されていたリリースはまだリリースされていません.Buildまたはパッケージ化に関するいくつかの障害.遅延についてはお詫び申し上げます.あと数日か.Buildとリリースのプロセスに直接関係していないので、私はこれまでのことを伝えているだけです
言いました.
応答33# ->にスキップ34 #NigelOこの問題はまだ解決されましたか?私は9月中にさまざまなwindows とオフィスの更新を見ましたが、私が実行しているHEFTY VBA Ladenワークブックはまだ問題を抱えています.
Win10の早いBuildを持つVMを持っているので、ワークブックとは関係なく、その
でうまく機能します.誰かが修正を指してください.
応答34# ->にスキップ35 #ScotBreこのスレッドで説明されていたバグが修正され、サポートされているすべてのWindowsBuildに、それを修正するアップデートが適用されました.すべてのWindowsアップデートに最新である場合、現在発生している問題は、私たちが抱えている問題とは異なります.
話し合いました.永続的な問題がこのスレッドのバグと混同されないように、おそらく新しいスレッドを開始して、まだ直面している問題について話し合う必要があります.スコット
応答35# ->にスキップ36 #NigelOこんにちはスコッチ-私は同意しません-KB4511553のリリース後に私を襲った問題
私はこれを証明することができます
私のWin10Build電流ですか?自動windows のアパートがオンになっていますが、Build情報は1903年18362.356です-より多くの最新versionがありますか?
今朝オフィスのアップデートを適用しましたが、違いはありませんでした
私はPCと半ばまかりしていますが、私は本当にこれに苦労しています-あらゆる助けが高くなるでしょう
応答37# ->にスキップ38 #ScotBreNigelo、
OK、より具体的にしましょう.多くのVBA、VB6、および種類のアプリに影響を与えるバグは、実際にはOleaut32.dllで導入されたバグです.空のSafeArrayをバリアントにコピーすることは非常に具体的でした.バグが表示されるエラーリターンを導入しました
実際に許可されていても、アレイが空になることを期待していないため、パラメータが無効であること.プロシージャーがパラレイを予定している場合は、プロシージャーを呼び出すときにエラーとして表示されることがありますが、呼び出し機能は去ることがあります.
その空.空の配列を変数に割り当てると、同様のエラーとして表示される可能性もあります.これはあなたが持っている問題に似ていますか?そうでなければ、あなたは別の問題に直面しています、そして私達はそれを議論するために新しいスレッドを始めるべきです.
応答38# ->にスキップ39 #NigelOこんにちはScotBren
わからない-ワークブックのVBAを作成しなかった-VBAプログラマーを使用した.
KB4511553が適用された直後(つまり、数分以内)にワークブックが機能しなくなったため、ワークブックの失敗はoleaut32.dllの問題が原因であると想定しています.
しかし、私はあなたが正しいかもしれないと今思っています-Win10Build1709を備えたVMでは、Office 2007ではワークブックを実行できますが、Office 365では実行できません-他の何かである可能性があります、しかしあなたは認めざるを得ません、それは非常に不気味な偶然です!
関連質問
- BitLockerコードの援助
- ネットワーク共有コピー上のMSアクセスへの変更は、ローカルコンピュータにコピーされたときの変更を失います.
- MS Accessのテキストへのスピーチ
- Microsoft Office 365でMicrosoft Office 10で作成したファイルをどのように開くのですか?
- どのフォーム/サブフォームが開いているかに応じて変数を変更する
- キーワットイベントキーワード検索に関するスペースを受け入れない
- Access 2019フォームの下部にあるレコードナビゲーションバー
- アクセスエラーコード3734 "データベースは、それが開かれたりロックされたりするのを防ぐために、マシン上のユーザー 'admin'によって状態に置かれました.
- データベースパスワードを要求しているMicrosoft Access
- トピックアクセスに滞在できますか?