システムwiki

ユーザーフォームがクラッシュするExcel.

Ron_the 解決済 最終更新日:2021-12-26 11:12

こんにちは-

私は先週働いていたExcelワークブックを持っていますが、働きを止めました. 私が知っている唯一の変更は、Excelテンプレートで最新versionにお金を更新していました.

私は:

Microsoft®Excel®用Microsoft®Excel®MOFLOCT365 MSO(version2109Build16.0.144204)64ビット

Windows 10:

エディションWindows 10home

version21h1

OSBuild19043.1165

Windowsの機能経験パック120.2212.3530.0

しかし、私のマクロが線に当たったときにExcelがクラッシュして閉じる:

UserForm1.Label1.Caption= "Test"

e

Microsoftコミュニティでの検索は数年前に似たようなエラーを示しました-その情報がまだ関連性があるが、以前に報告された問題がfm20.dllと呼ばれるかどうかわかりません. だから私は開発者/ツール/参照をチェックし、

を見つけました

Excelの開発者/ツール/参照は

を含みます

Microsoft Forms 2.0オブジェクトライブラリ

位置: c:\windows\system32\fm20.dll

ただし、PCのどこにでもこのファイルが見つかりませんか?

VBAが機能を停止した理由は何ですか?

返信リスト(回答:6)

6 #
DougRob 1

ユーザーフォームに問題がないが、参照ダイアログが配置されていることを示す場合でも、c:\windows\system32フォルダにfm20.dllも表示されません.

そのオブジェクトライブラリの横にあるボックスにチェックがあると仮定します.

ただし、c:\windows\syswow64フォルダにその名前のファイルがあります.

このスレッドをカバーする電子メールメッセージに参照するブックのコピーを私に送った場合、問題を調査します.

応答6# ->にスキップ
5 #
Ron

こんにちはDoug、

返事をありがとうございました.

はい、My Developer/Tools/refestesには、Microsoft Forms 2.0オブジェクトライブラリの横にあるチェックマークがあり、同じパスがありますが、PC上の任意の場所にFM20.dllファイルが見つかりません(...\syswow64フォルダなど)

しかし、私はあなたにExcelブックであなたに送金したくなかったので、私は単にユーザーフォームをロードし、Label1のキャプションを編集してからフォームを編集したマクロを照らす新しい空白のワークブックを作成しました. この単純化されたワークブック&マクロは正しく機能します.

それで私はExcelブックのMoneyのマイモジュールとユーザーフォームを削除し、同じテスト(単純なユーザーフォーム、Label1キャプションを編集するための単純なマクロ)を再作成し、Excelワークブックは再びクラッシュしました.

私はExcelテンプレートで新しいお金でこのテストを繰り返すつもりです. Excelテンプレートの新しいお金でシンプルなUserformのラベルキャプションを編集できる場合は、退職後のワークブックに関するものが破損しています. いまいましい

応答5# ->にスキップ
4 #
Ron

残念ながら、はい、私の退職のブックは破損しています. VBA UserForm Testは、Excelテンプレートの新しいお金で正しく機能しました.

これは吸います. 私の退職プランナーを傷から再建するために数日の仕事があると思います. オプションを選択した新しいブックにワークシートを新しいブックにコピーすることができる場合は、オプションを選択してください.

あなたの助けをありがとう-あなたは間違いなく問題を壊れたワークブックに絞り込むのを助けました.

応答4# ->にスキップ
3 #
Ron

いいえ-私は間違っていました-それでもクラッシュしています!

私はExcelワークシートで私の全額を再構築し、新しいユーザーフォームを作成し、そしてVBAでラベルキャプションを編集しました. 新しいワークブックの新しいユーザーフォームが正しく表示されています-問題が解決されました.

その後、ワークブックを保存して再開し、マクロを再実行し、再びワークブックを再実行しました. 私の単純なVBAマクロは次のとおりです.

USERFORM1

をロードします

label1.caption= "test"

userform1 show

Label1.caption= "test"の行をコメントアウトした場合、ワークブックをクラッシュさせることなく空白のUserformは正しく表示されます(デフォルトのキャプション "Label1"を使用してlabel1を表示します).

このマクロは、Excel Bookの真新しいお金で完全に一度だけ走った-それから再びExcelをクラッシュし始めました.

応答3# ->にスキップ
1 #
DougRob

を使う

UserForm1

としてdim myform

myform= new userform1

を設定します

myform

.label1.caption= "test"





MyForm= Nothing

を設定します

応答3# ->にスキップ
2 #
KERATL

これが代替構文、または単に無邪気なフォーラムタイプ(私は非常に有罪です)ですが、ただし、私はあなたの最低概念の証明で次のことを期待しているかもしれません.コードの違いがあなたの元のコードとは異なる理由でエラーが解決される可能性があるため、

userform1 show

vs

userform1.show

そしてまた

label1.caption= "test"

vs

UserForm1.Label1.Caption= "Test"

F8を歩くことで、どのコード行がクラッシュしているかを教えてください.