[[20180603192328]] 『VBAを自動で実行するには』(初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAを自動で実行するには』(初心者)

連続入力するために、あるセルの値をアクティブ行にコピーするVBAを書きました
しかし、毎回VBAを実行する操作をしないと、コピーされません
シートに変化があったときに、自動でVBAを実行させるのはどこで設定したらよいのでしょうか?
今までは作成したボタンを押すと実行する、いったものしか作ったことがないのでわかりません

このVBAはこの条件のときに発動する、というトリガ設定のようなものはどこでやるのでしょうか?

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 こんばんは ^^
VBAイベント、VBAモジュール
なんかで検索されると、たくさん、詳しい説明のあるサイトが出てきますよ。
>シートに変化があったときに
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

 End Sub
当該のシートモジュールでよく使いますよ。
全セルを対象なんかにするとエクセル様が休止状態なんかになることがあるので
工夫が必要です。^^;
(隠居じーさん) 2018/06/03(日) 19:58

 Private Sub Worksheet_Change(ByVal Target As Range)

 End Sub
もよくつかいます。
前のは違うセルを選択しただけでイベントが
これは
セルの値が変わったらイベントが
だったと思います。
詳しくは検索で調べてくださいね。
(隠居じーさん) 2018/06/03(日) 20:05

 既に指摘いただいていますが、重なって恐縮です。

 イベントプロシージャというものです。
 こうした、
 ・セルの選択の変更したとか、
 ・セルの内容を変更したこと
 などを、Excel君が感知して、自動的に実行されるものを
 イベントプロシージャといいます。

 (イベントというのは、ユーザーのなんらかの予め定められた事象、動作をいいます。
 そうしたイベントをトリガー(契機)として動作するので、その名があります。)

 ワークシートレベル、ワークブックレベルのそれぞれにあります。
 ワークブックレベルでは、例えば、ブックを開いたときに自動実行させるもの、
 ブックを閉じる時に自動実行されるものなどがあります。

 ポイントは、
 1.セルの選択状態の変更、セルの内容変更など特定シートに限定する場合は、
    シートモジュールというところにそのプロシージャを書きます。
    [標準モジュールに書いても動作はしません]

 2.イベントプロシージャーは、プロシージャ名、引数などは厳密に決められていて、
    ユーザーは変更できません。
    変更できるのは、プロシージャのなかの命令だけです。

 ・どんなイベントプロシージャがあるのか、
 ・具体的な使い方
 といった点については、書籍を購入して学習してください。

 ネットであれば、例えば、
 「Excel(エクセル) VBA入門:ワークシートのイベント」
 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html
 などがまずは参考になるでしょう。      

(γ) 2018/06/03(日) 20:16


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.