Billには、3つのセルをテストする「保存前」マクロがあります。セルが空の場合、マクロはユーザーの保存を停止します。つまり、ブックを保存する前にセルに入力する必要があります。

ビルはこのワークブックをテンプレートとして保存したいと考えていますが、3つのセルをクリアすると、マクロによってテンプレートとしての保存も停止されます。彼は、テンプレートを「クリーン」にし、デフォルトで3つのセルを空にすることを望んでいます。ユーザーはテンプレートに基づいて新しいワークブックを作成し、セルが入力されない限り(正しく)保存できません。

ビルは、3つのセルを空にして、ブックをテンプレートとして保存する方法を考えています。

実際には、テンプレートを保存するために実行できるさまざまなアプローチがいくつかあります。

1つ目は、ブックの名前をX27TT3W.xlsmなどの難解な名前に変更することです。次に、「保存前」マクロにロジックを追加して、ベースブックの名前がX27TT3Wであるかどうかを確認します。そうである場合は、3つのセルの状態に関係なく、ブック(またはテンプレート)を保存できるようにします。テンプレートを保存したら、Windowsで目的の名前に名前を変更して、ユーザーと共有できます。選択した難解な名前を推測しない限り、3つのセルが入力されていることを確認せずにブックを保存することはできません。

もう1つの方法は、ブックに別のイベントハンドラー(ブックを最初に開いたときに実行されるイベントハンドラー)を追加して、3つのセルの内容をクリアすることです。これは、次のような単純なものである可能性があります:

Private Sub Workbook_Open()

Sheet1.Cells(1,1).Clear     Sheet1.Cells(2,1).Clear     Sheet1.Cells(3,1).Clear End Sub

このマクロは、A1:A3のセルをクリアします。別の範囲をクリアしたい場合は、クリアしたいセルを反映するように3本の線を変更するだけです。次に、3つのセルに何かを入れ(「保存前」マクロでのテストに合格するように)、テンプレートとして保存します。

実装が非常に簡単なもう1つのアプローチは、テンプレートを保存する前にイベントを無効にすることです。これはマクロ内ではなく、Visual BasicEditorのイミディエイトウィンドウ内で実行されます。あなたがする必要があるのはこの単一の行を入力することです:

Application.EnableEvents = False

ブックをテンプレートとしてすぐに保存し、Visual BasicEditorの[イミディエイト]ウィンドウに次の行を入力します。

Application.EnableEvents = True

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(13547)は、Microsoft Excel 2007、2013、2016、2019、およびOffice365のExcelに適用されます。