• ベストアンサー

VBA シートイベント

シートイベントについて教えて下さい。 A3〜A100まで計算式が入っています。 そのため、A3〜A100のセルにカーソルが動いた時に注意メッセージを表示しています。シートイベントで設定しています。 ファイル保存時、入力漏れチェックのプログラムも入れています。 入力漏れチェック実行時、自動的にA列に設定したシートイベントも実行され、メッセージボックスが表示されてしまいます。 入力漏れチェック時は、A列のシートイベントを実行不可にしたいです。 良い方法はありませんでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1615/2454)
回答No.1

以下のようにしてみてください。 Application.EnableEvents = False 入力漏れチェックのコードでイベントを実行したくないところ Application.EnableEvents = True

himawari8181
質問者

お礼

ありがとうございます!! 理解できました。 m(_ _)m

Powered by GRATICA

関連するQ&A

  • 【VBA】シートを跨いで合計する方法

    ご教示宜しくお願いします。 現在のシートから最後のシートまでの合計値が入っているセルを合計し、 メッセージボックスにて表示させたいです。メッセージボックスとする理由は、シートを増やしたくない為です。 状況は下記です。 各シートのA列最終行には予め「合計」の文言が有り、そのE列に予め「合計値」が計算されています。 宜しくお願い致します。

  • エクセルVBAで、

    あらかじめシート2のA列に食べ物の名前、B列にカロリーが記入してあり、 シート1のJ2にシート2に記入してある食べ物を入力すると、メッセージボックスで何カロリーあるのか表示されるプログラムが組みたいんですけど、 そう組んだらいいのかわからないので、教えてほしいです。

  • エクセルシートの保護

    エクセルのシートに保護をかけたいのですが、 シートの中に、チェックボックスがあります。 チェックボックスの「コントロールの書式設定」で 「ロック」のチェックをはずしても、 シートの保護をかけると、チェックボックスにも保護がかかってしまいます。 シートの保護をかける時、 「データー」のチェックをはずすと、 チェックボックスにもチェックが入れられるようになるのですが、 それでは、他のセルにも入力が可能になってしまいます。 つまり、シート全体に保護をかけたいし、 当然、チェックボックスの機能も使いたいのですが、 セルの書式設定にある保護と フォーム・コントロールの書式設定にある「ロック」「文字列のロック」を、 どのように組み合わせればよいのでしょうか? そもそも、シート全体に保護をかけたいし、 チェックボックスの機能も使いたいのは、 可能なのでしょうか?

  • エクセル マクロでsheet2に自動書き込み

    マクロで、グループボックス内でチェックボックスを作り、チェックされたらA列(A1~A10まで)に表示するように作りました。入力ボタンを作り、Sheet2(A列~J列)へ移すようにしました。しかし、2つの項目しかチェックされていなかった場合、空白が目立ち記録を見るととても見づらいです。そこで、空白がある場合は前に詰めるような記述はあるのでしょうか? (例)2つなら、C列とJ列に表示その他は、空白状態。→2つなら、A~B列に自動に詰める。 このようにしたいのですが、出来ますか?

  • エクセル2003 シート保護中のキー操作

    エクセル2003を使用していますが、シートの保護時に、「ロックされたセル範囲の選択」のチェックをはずすと、キー操作でロックされていないセルの移動も制限されてしまいます。 現象を再現する設定としては、 1.新規ファイルにて、A列・B列を選択し、書式設定で、保護タブのロックのチェックをはずす 2.ツールの「シートの保護」にて、「ロックされたセル範囲の選択」のチェックのみはずし、保護実行。 3.A1にカーソルを合わせ、タブキーや矢印キー、Enterを押すとA1、B1のみ移動して下のセルへは移動しない。 通常のようにA1→B1→A2→B2→A3・・・とキー操作で移動できるようには出来ますでしょうか? なぜこのような現象が起こるのでしょうか? 文字を入力していけば、入力した最終セルのひとつ下まではカーソルはいきますが、その下へは行きません。エクセルの設定でできなければ、VBAで同じ操作が出来ればと考えております。。 どなたか知っている方がいらっしゃれば、いただけませんでしょうか?

  • [エクセル2003] VBA シートの表示・非表示

    シート1にチェックボックス その他シート名=1月~12月 とあり、チェックボックスにチェックを入れると今月の月のみのシートを表示させる方法(シート1はそのまま)。またチェックが外れると全月シート表示に切り替わる(シートの位置は変わらず)。 といった感じのことをやりたいのですが、書式のシート表示の設定は調べてわかったのですが、チェックボックスで切り替えがしたので分かる方よろしくお願いします。

  • VBAでシートからコンボボックスにデータを設定する方法

    VBAにてフォーム起動時にシート内に設定した 値をコンボボックスに取り込みたいのですが・・。 たとえばA列に連続で入力されているデータを 取り込むなど・・。 設定データ数は動的に変化します。

  • VBA シート上のチェックボックスの値の取得

    (作業環境 windowsXP Excel2007 作業対象のブックは.xls) シート上に1ブックにつき3000個ほどのチェックボックスがあります。 このブックが現在約1000個、すでに配布・回収されております。 これからチェックボックスの選択状況やセルに入力された値をマクロで収集するのです。 大半のチェックボックスにはすでに「リンクするセル」の設定がされており、そのセルの値を参照すればチェック状態の取得は容易なのですが、 最初にこのブックを作った方が一部のチェックボックス群(3000個中500個程度)にリンクの設定をするのを忘れていたのです。 このリンク設定のされていないチェックボックスの値の取得についてご質問です リンクセルの設定をするのであれば sub a() ActiveSheet.Shapes("Check Box 1").Select Selection.LinkedCell = "$A$1" ・ end sub でいいのでしょうが、これだとselectのはずみで チェックボックスがTrueになってしまします。 リンクせずに直接チェックボックスの値をブール型で取得しようと思い dim a as boolern a = Activesheet.checkboxes(1).value としましたが、ためしに別ブックのシート上に1つだけチェックボックスを作って実行すると、チェック状態にかかわらずTrueが返ります。 checkboxesの使い方がダメなんでしょうか? 求める回答としては (1)上記のやり方でもできるが、間違っている部分がある (2)上記以外のやり方でもっと簡単な(早い)やりかたがある のどちらかのようなアドバイスをいただけると幸甚です。 よろしくおねがいします

  • チェックボックスに連動した他シートの参照

    以前も似たような質問をしたのですが、以下のようなことは可能でしょうか? S1シートの該当のチェックボックスにチェックを入れるとその行のデータがS2シートに表示される。 下の例では、B、D列のデータがS2シートのA,B列に表示される。 [S1]| A | B | C | D | E | - - - -- - - - - - - - -  1 | あ | い | う | え | □ |←チェックボックス1 - - - -- - - - - - - - -  2 | お | か | き | く | □ |←チェックボックス2 - - - -- - - - - - - - -  3 | け | こ | さ | し | □ |←チェックボックス3 - - - -- - - - - - - - -  4 | す | せ | そ | た | □ |←チェックボックス4 - - - -- - - - - - - - - 【1】 ○チェックボックス1と3にチェック [S2]| A | B |  - - - -- - -  1 | い | え |  - - - -- - -  2 | こ | し |  - - - -- - -  3 |   |   |  - - - -- - -  4 |   |   |  - - - -- - - 【2】 ○チェックボックス2と3と4にチェック [S2]| A | B |  - - - - - -  1 | か | く |  - - - - - -  2 | こ | し |  - - - - - -  3 | せ | た |  - - - - - - ○上記状態でチェックボックス3のチェックをはずす  [S2]| A | B |  - - - - - -  1 | か | く |  - - - - - -  2 | せ | た |  - - - - - -

  • AccessのVBAで「イベント」を捉える方法について

    フォームを作り、その上に2列×15個のテキストボックスを配置しました。(2列15行の「表」(ひょう)のような状態です。) 左列は入金関係、右列は出金関係金額を入力します。 一番下行のテキストボックス2つは各列の合計(入金合計・出金合計)を入れたいのです。 各列の、どれかのテキストボックスに値が入力されたら、即時にその列の合計を変えたいのです。 複数の(同種と仮定して)コントロールをグループ的にまとめて考えて、そのどれかにイベントが起こったことを捉える方法はあるのでしょうか。14×2個のテキストボックスのChangeイベントを書けば良いとかを思い付くのですが鬱陶しいのと、VBAプログラムのレパートリーを広げたくて、どなたか(不可能という結論も含めて)、ご存知の方は教えてください。 98・Access97・Access2000です。

専門家に質問してみよう