ワークシートのイベントを追加するには

ワークシートを選択したとき、ダブルクリックしたときのイベントを取得し、特定の操作させることができます。

「ワークシートを開いたときに特定のセルを選択させる」、「セルを変更したときに大文字に変える」といったことができるようになります。

イベントは Worksheet_イベント名 のように書きます。

これは、VBE(エディタ)の上部にある(Genaral)でWorksheetを、(Declarations)でOpenを選択することで同じ記述が自動で行われます。

イベントによって引数の書き方が違うので、自分で書かずに(Genaral)(Declarations)から選択してください。

ワークシートを選択したときのイベント
Private Sub Worksheet_Active ()
・・・
End Sub


セルを変更したときのイベント
Private Sub Worksheet_Change (Target As Range)
・・・
End Sub


ワークシートを選択したときに特定のセルを選択するサンプル

Cells(1,1).Select でセルA1を選択しています。
Private Sub Worksheet_Open ()
    ' A1を選択
    Cells(1,1).Select
End Sub


セルを変更したときに大文字に変えるサンプル

引数にもある Target は変更されたセル範囲になります。
Ucase(Target) で大文字に変更しています。

Application.EnableEvents でイベントの抑制を制御します。

これがないと、Ucaseでまた Worksheet_Change が発生して、無限ループになってしまいます。
初めにFalseでイベントの抑制を開始させています。

また、最後にTrueでイベント抑制を解除しています。

これがないと、Worksheet_Change が発生しなくなります。
False のあとは True を設定するようにしてください。
Private Sub Worksheet_Change (Target As Range)
    ' イベント抑制を開始
    Application.EnableEvents = False
    ' 大文字に変更
    Target = Ucase(Target)
    ' イベント抑制を解除
    Application.EnableEvents = True
End Sub


ワークブックのイベントの種類

イベント名内容
Activeワークシートがアクティブになったときに発生
BeforeDoubleClickワークシートがダブルクリックされたとき、既定の処理がされる前に発生
BeforeRightClickワークシートが右クリックされたとき、既定の処理がされる前に発生
Calculateワークシートが再計算されたときに発生
Changeワークシートのセルが変更されたときに発生
Deactiveワークシートが非アクティブになったときに発生
FollowHyperLinkワークブック内のハイパーリンクがクリックされると発生
PivotTableUpdateピボットテーブルが更新されたときに発生
SelectionChangeワークシートで選択範囲が変更されると発生



Excel VBA講座

関連リンク
 セル、シート、ブックの参照や操作、
 書式設定に関するサンプル集。

 VBScriptの文字列、日付、ファイルの  操作に関するサンプル集。




セルの参照
セルを扱う
セルの範囲を扱う
行や列を扱う
セルに値を取得・設定する
セルに文字列で取得する
セルを選択する
選択しているセルを参照する
セル数、行数、列数を求める
行番号、列番号を求める
セルに名前を付けて参照する
行・列を表示・非表示にする
セルの位置を取得する
表全体を参照する
表の終端を取得する
セルのアドレスを取得する
セルを検索する
セルを並び替える

セルの書式
フォントサイズを設定する
フォント名を設定する
フォントの太字・斜体を設定する
取消線を設定する
上付き文字を設定する
下付き文字を設定する
セルの表示形式を設定する
配置を設定する
横書き・縦書きを設定する
文字の折り返しを設定する
セルを結合・解除する
セルの背景色・文字色を設定する
セルに罫線を引く(線の位置)
セルに罫線を引く(線の種類)
セルに罫線を引く(線の太さ)
セルに罫線を引く(線の色)
セル範囲の周囲に罫線を引く
セルを挿入する
セルを削除する
行の高さ・列の幅を設定する
行の高さ・列の幅を自動調整する
セルをロックする
文字列の一部の書式を設定する
セルに数式を設定する
セルに条件付き書式を設定する
セルにハイパーリンクを設定する
セルに入力規則を設定する
セルに入力規則を削除する
セルの入力規則を詳細設定する


Copyright (C) ExcelVBA@Workshop All rights reserved.