Excel で VBA プロジェクトを作成しましたが、そのプロジェクト内には、別のモジュールにコードを書き込むモジュールがあります。私は最終的にプロジェクトをパスワードで保護して、コードを隠したままにしました (これがかなり明白な問題を引き起こすことにすぐには気づきませんでした)。
ユーザーがファイルを操作すると、モジュールはコードを実行しようとしますが、エラーが発生します (パスワードで保護されたプロジェクトはそれ自体を変更できません! 当たり前のことですが :p)。
それで、これを回避する方法として、ファイルの残りの部分をロックしたまま、「編集された部分を保護しないでください」と考えました。そこで、保護されていない .xlam アドインを作成し、そのコードをこの部分に書き込むことにしました。ただし、これを行う方法を理解するのに苦労しています。以下は、別のモジュールにコードを書き込む、私が書いたコードです。
Public Sub errorWrite()
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Dim s As String
Dim d As String
Dim lineNumb As Long
With ThisWorkbook.VBProject.VBComponents.item("NewModule")
.CodeModule.InsertLines j, "Public sub newModule()"
j = j + 1
With ThisWorkbook.VBProject.VBComponents.item("NewModule")
.CodeModule.InsertLines j, "(my code etc..)"
j = j + 1
With ThisWorkbook.VBProject.VBComponents.item("NewModule")
.CodeModule.InsertLines j, "end sub"
end sub
たとえば、.xlam アドイン ( VBA を使用して xlam アドインを更新する) に関する Stack などの情報をいくつか見つけましたが、できるだけシンプルに保ちたいと思います。提案やヒントは大歓迎です。ありがとう!