2016-07-05 4 views
0

別のワークブックでworksheet_changeサブルーチンを追加する方法を教えてください。私は毎日のジョブを実行して、サーバーからファイルを取り出し、開いて、書式変更を行ってから、それをエンドユーザーに渡して作業させます。私がファイルに行う必要のある書式設定の変更の1つは、データ検証を通じて依存ドロップダウンリストを作成することです。別のワークブックでworksheet_Changeを追加する

「Main_Category」と「Sub_Category」という2つのフィールドがあるとします。エンドユーザーが標準化されたドロップダウンリストに基づいて選択を行えるようにしたいと考えています。ユーザーが「Main_Category」を選択すると、「Main_Category」に基づいて「Sub_Category」のドロップダウンリストが設定されます。私のジレンマは、 "Sub_Category"を選択した後、ユーザーが "Main_Category"で心を変えた場合、Excelがこの選択をクリアしないことです。

私はworkheet_changeをファイルに追加することを考えています。しかし、私はこれをどうやってやるべきですか?

答えて

0

私はあなたの質問の正確な点を得ているかどうかはわかりませんが、これが役立つことを願っています。

ワークシート上の変更を確認するには、次の2つの主な方法使用できます

  • SelectionChangeを - ワークシートのセルが変更されたときに発生します - ワークシート
  • Changeの選択の変更をする場合に発生します のユーザまたは外部のリンクを介して

あなたはリンクで同じように使用する方法を見つけることができます上のs。基本的には、変更を追跡するシートに対応するメソッドを追加する必要があります(VBEでシートコードを選択してそこにコードを入力することで可能です)。次に、Targetパラメータを使用して変更に関する詳細情報を取得します(例えば、ある範囲の値をクリアまたは更新するために)必要なコードを実行して実行しました。

これは、必要な各ワークブック/ワークシートにコードを追加することを考慮すると、問題なく動作します。

ワークブックにプログラム的にコードを追加します。

をあなたがプログラム的に新しいワークブックにこのコードを追加したい場合は、あなたが上で説明したように、VBAプロジェクトオブジェクトモデルへのアクセスを信頼する必要があります。

が、これは他のプログラムが、変更複製およびExcel内の任意のコードを実行できるようになり、これは、セキュリティの観点から推奨されていないことを何卒ご了承下さい。これが本当に必要な場合は、マクロを実行する前にこのオプションを手動で変更してから再び変更することもできます。

関連する問題