2023.06.18スポンサーリンクワークシートに対して※特定の操作が行われた時に実行されるのがイベントプロシージャです。今回はその中のChangeイベントについてエクセルの神髄のVBA100本ノック54本目を題材にしてご紹介します。※特定の操作とは、セルが変更された時、セルをダブルクリックした時、セルを右クリックした時などです。Falseについても詳しく解説します。Falseまとめイベントプロシージャを使用する方法イベントプロシージャを使用する場合、標準モジュールに作成するのではなく、イベントを発生させたいオブジェクトモジュール内にプロシージャを作成します。1仮にSheet1内で特定操作が行われた時に実行されるイベントプロシージャを作成する場合は、VBEのプロジェクトエクスプローラー内のSheet1を選択します。左側のプルダウンからWorkSheetを選択、右側のプルダウンメニューから使いたいイベントの種類を選びます。今回はChangeを選択します。すると、下記のようなChangeイベントプロシージャが自動的に表示されますので、プロシージャ内にコードを記述します。シート、または埋め込みグラフがアクティブになったときに発生します。ワークシートをダブルクリックしたときに発生します。ワークシートを右クリックしたときに発生します。ワークシートが変更されたときに発生します。ワークシートで選択範囲を変更したときに発生します。一覧スポンサーリンクVBA100本ノック54本目イベントを使い、商品コードを入れたら「マスタ」から取得した商品名と単価が直ちに表示されるようにしてください。商品コードがマスタに存在しない場合は商品コードを赤字にしてください。※金額はセルに計算式が入っています。※商品コード列の既定の文字色は「自動」ダウンロードデータはエクセルの神髄VBA100本ノック54本目より「伝票」シート、「マスタ」シートの2シートあります。Sub引数:Targetとはコードを確認すると、Targetが頻出します。SubイベントプロシージャにおけるTargetの役割は、変更されたセルが引数Targetに渡されます。よって、上記コードは、以下のように訳されます。シートの中でイベントが発生するセル範囲を限定しています。'変更セルの行が1行ならば(1行目の変更であれば)マクロ終了つまり、イベントが実行されるセル範囲を赤枠部分に限定するコードです。IntersectメソッドIntersectメソッドは、複数セル範囲の重なっている部分のセル範囲を取得します。重なる部分がない場合はNothingを返します。SubセルA1からE10とセルC1からH10の重なる部分が選択されます。0)Much関数は、指定した範囲内で探したいデータがどの位置にあるかを列・行番号で返す関数です。=Mach(検査値,検査範囲,[照合の種類])[照合の種類]・・1=以下、0=完全一致、-1=以上よって、引数:Targetに入っている「検査値」を以下の検査範囲(「マスタ」シートの1列目)から探して、その行番号を変数iに代入しています。Falseイベントプロシージャ(今回はChangeイベント)は、セルに変更があった時にイベントが実行されます。今回の場合は、「伝票」シートの「商品コード」フィールドのセルが変更された時にイベントが発生するわけです。入力される処理等が行われるわけですが、それらのセルの変更をきっかけにまたイベントが発生します。イベント発生でセルが変更されて、イベントが発生して・・・と無限ループとなります。Falseを設定しておくことでイベントは一旦停止されます。今回の場合であれば、フォントが赤くなる(セルの変更)処理についてはイベントは発生しないということになります。Trueとすることで、イベントの停止を解除しています。False」をVBA100本ノック54本目を題材にして紹介しました。関連記事VBAユーザーフォームとコンボボックスの値の取得コンボボックスの値を取得するためのTextプロパティ、Valueプロパティ、Listプロパティ/ListIndexプロパティを紹介します。VBAユーザーフォームを使ったレコード抽出方法-基本-ユーザーフォームを使ったデータベースの抽出方法の最終回です。汎用的に活用できるコードを紹介しています。VBAVBAのリボンの非表示等の画面設定方法VBAシステム構築の際、ユーザーが自由にシートや列行を追加・削除したり、リボンを触られたりしないような設定(画面設定)の方法について紹介しています。VBAVBAユーザーフォームとコンボボックスExcelVBAのユーザーフォームにおけるコンボボックスの値の追加方法と初期値の設定方法の基本について紹介しています。ExcelExcelVBAを使ったCSVファイルへの書き込み2複数のエクセルファイルを文字コードを指定したうえで、一括でテキストファイルに書き込む方法を解説しています。VBAフォルダ自動作成とファイル保存(コピーを保存)フォルダを自動作成する方法と指定フォルダの中にブックをコピーして保存する方法を紹介しています。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。defined.")}))})();タイトルとURLをコピーしました。