2017-11-09 9 views
0

Gaus Shaikhの質問と同じ問題に直面していると思いますが、私はあなたのサポートのために皆さんを助けるために、このトピックについて他の言葉を使いたいと思っています。隠されたVBAコード(プロジェクトが表示されないようにロックされています)がユーザーフォームマクロを拒否しています

私の意見では、Gausの質問のタイトルが誤解される可能性があるため、別の質問を作成します。

要約すると、ユーザーフォームを生成するExcelマクロを扱う際に問題があります。実際には、VBAプロジェクトがパスワードで保護されている場合、マクロは機能します。変わった点は、Visual Basic Editor - > VBAプロジェクトのプロパティ - >保護 - >プロジェクトの表示をロックする - > pwを挿入する - > OK)を非表示にすると、プロジェクトがパスワードで保護されていません。

私はここに閉じ込められています。私は解決策を見つけることができません。皆さんは何か考えていますか? (私は2013を使用しています)

ありがとうございます!

GAUS Shaikhさんの質問: VBA password protected project not opening userform

N.B:基本的には、ユーザーフォームを生成する任意のマクロが与え "実行時エラー50289.プロジェクトが保護されています。"例として、空のユーザーフォームを生成する次のマクロは、コードが非表示の場合は失敗し、コードが表示されている場合は機能します。

Public Sub goUserForm() 

    Dim mainframe As Object 

    'Set main frame 
    Set mainframe = ThisWorkbook.VBProject.VBComponents.Add(3)   

    'Show the form 
    VBA.UserForms.Add(mainframe.Name).Show 

End Sub 

問題を完全に理解するには、ワークシートでこのマクロを試してから、コードを非表示にします。文書を保存して閉じ、開きます。あなたのコードを表示しない限り、マクロは動作しません。

+0

コードが動作するアクセスしていない動作しません。だから、私はあなたがもっと多くの情報といくつかのコードを与える必要があると思う。 – Storax

+0

あなたのクイック返信Storaxありがとう。投稿の編集で、エラーの詳細を追加しました。 –

答えて

1

これで明らかになりました。 VBAプロジェクトは保護されているため、コードではアクセスできません。他のコードも使えます。 だから、これは

Set mainframe = ThisWorkbook.VBProject.VBComponents.Add(3) 
VBA.UserForms.Add(mainframe.Name).Show 

コードは、このようなVBAプロジェクトは、それが発表されたとして働くことができない古いポストから

UserForm2.Hide 
UserForm1.Show 
+0

ヒントStoraxありがとうございました。プロジェクトにユーザーフォームがある場合、コードは機能します。 一方、マクロを使用してプロジェクトにユーザーフォームを作成して追加する必要がある場合はどうなりますか? プロジェクトにアクセスせずにエラーを回避しないと、次の行をどのように変更できますか? 'set mainframe = ThisWorkbook.VBProject.VBComponents.Add(3)' 'VBA.UserForms.Add(mainframe.Name).Show' –

+0

コードでユーザーフォームを追加する必要がある場合は、まずVBAプロジェクトのロックを解除する必要があります。私の知る限り、他の方法はありません。 – Storax

+0

私はコードを見ることから自分のコードを保護することができます。しかし、私はこの保護を無効にすると、マクロを実行し、再び自動的に有効にするコードは、次の再起動まで表示されます:( –

関連する問題