3

ファイルの場所にあるファイルを一括更新するマクロを開発しました。完全に機能する次のコードを使用していますが、スクリプトの編集部分では、呼び出し編集マクロの変更を機能させるために、各ファイルの VBA モジュールを変更する必要があります。ファイルの一括更新を実行するときに、モジュールの内容も一括更新するにはどうすればよいですか。

Sub Auto_open_change()

    Dim WrkBook As Workbook
    Dim StrFileName As String
    Dim FileLocnStr As String
    Dim LAARNmeWrkbk As String

    PERNmeWrkbk = ThisWorkbook.Name


    FileLocnStr = "C:\Users\gornalla\Desktop\PER Update" 'ThisWorkbook.Path

    Dim StrFile As String
    StrFile = Dir(FileLocnStr & "\*.xlsm")
    Do While Len(StrFile) > 0
        DoStuff (FileLocnStr & "\" & StrFile)
        StrFile = Dir
    Loop

End Sub

Private Sub DoStuff(StrFileName)

    Workbooks.Open (StrFileName)
    'Workbooks(StrFileName).Activate
    ActiveSheet.Unprotect ("147258369")
    Sheets("Property Evaluation Report").Select
    ActiveSheet.Unprotect ("147258369")

        Call Edit

    ActiveWorkbook.RefreshAll
    Sheets("Property Evaluation Report").Select
    ActiveSheet.Protect Password:="147258369", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowUsingPivotTables:=True
    ActiveWorkbook.Close

    Application.SendKeys ("Enter")

End Sub
4

1 に答える 1

7

コードを使用してコードを変更することは可能ですが、使用するのはあまり良い方法ではありません (必要に応じて、いくつかの参照についてはこちらこちらを参照してください)。代わりに、より変更可能な場所に値を保存してそこから参照するか、ユーザーからの入力としてキャプチャすることをお勧めします。

一般的で変更される可能性が低い場所に保存されているテキスト ファイルからデータを読み取ることもできますが、これによりさらに複雑なレベルが追加されます。代わりに、コードで参照できる非表示の列または非表示のワークシートを作成することをお勧めします。必要に応じて、非表示にするだけでなく、ロックして保護することもできます.

非表示のシートまたは列を使用する利点は、データがワークブックに添付されている (外部ファイルは添付されていない) ことと、セッション間で変更を保持できることです。そのフィールドの値を更新すると、次にファイルにアクセスしたときに、最後に使用したファイルが記憶されます。

于 2013-08-30T03:35:30.513 に答える