• ベストアンサー

エクセルVBAのChangeイベント時の再計算

angel_Zの回答

  • ベストアンサー
  • angel_Z
  • ベストアンサー率66% (12/18)
回答No.3

こんにちは。 これもだめですか? Changeイベントの最初に If ActiveSheet.Name <> Me.Name Then Exit Sub

taikobo_ryosho
質問者

お礼

たびたびのご回答有難うございます。 試してみましたが、やはりうまくいかないようです。 あきらめて、ボタンを設置しようと思います。 有難うございました。

関連するQ&A

  • Excel VBA でイベント"Worksheet_Change"を使

    Excel VBA でイベント"Worksheet_Change"を使って,データの追加処理中に,イベントが連続発生してしまい,エラー発生となります。解決方法のヒントがありませんか? 1)イベント発生を一時的に受け付けない構文の "Application.EnableEvents = False" を処理ルーチンの先頭に入れています。 2)データテーブル表の特定処理「データを追加のため,"セル挿入"→"データ投入"」を行うとイベントの連続発生があるので,"セル挿入"と"データ投入"との間に "Application.Wait (Now() + TimeValue("00:00:01"))" を入れて,タイミングを遅らせていますが効果ありません。

  • ExcelのVBA動作中の再計算禁止について

    ワークシート上に多数のチェックボックスを設置し、 一括管理のために簡単なVBAを記述しました。 Sub チェックボックス一括TRUE() With Application .ScreenUpdating = False .Calculation = xlCalculationManual CheckBoxes.Value = True .Calculation = xlCalculationAutomatic End With End Sub これだと瞬間で処理が完了するのですが、当初は .Calculation = xlCalculationManual .Calculation = xlCalculationAutomatic の二行をそれぞれ EnableCalculation = False EnableCalculation = True としていて、これは相当遅くなります(後者が遅い)。 速度の違いから両社は明らかに異なる動作をしていると思いますが、 調べてはみたものの自分にはそれぞれの処理の意味がよく理解できていません。 どなたかご教授いただければ。

  • エクセルマクロのChangeイベント

    以前Changeイベントをこちらで教えて頂いたのですが、うまく使えず困っています。 Changeイベントの対象となるセルには値を検索するvlookup関数の数式が入力されていて、値が検索できたらコピーするというマクロをChangeイベントで実行しようとしているのですが、うまくいきません。 Changeイベントはセルの中の数式が変化しないと実行されないのでしょうか?数式の結果が変わっただけでは実行しませんか?教えて下さい。

  • 手動計算時の条件付書式判定

    excel2010 条件付き書式の判定に制約あるのでしょうか? A1,B1,C1セルに数値を設定し、 C2セルに=SUM(A1:C1)と設定します。 C2セルの条件付書式は、セルの値 次の値より大きい =500 上記条件で文字色を赤 としています。 計算方法の設定は手動。 また、マクロで下記を設定しています Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Row = 1) And (Target.Column >= 1 And _ Target.Column <= 3) Then 'セルの値に変更があったときに実行したい処理を記述 Calculate End If End Sub C2セルが500より大きくなったら、数値が赤になるはずですが、変わりません。 計算は実施しているのになぜ赤色にならないのでしょう? 下記の様にマクロを変更し、計算方法の設定を自動にすると正しく判定されます。 Private Sub Worksheet_Change(ByVal Target As Range) Application.Calculation = xlCalculationAutomatic '自動 xlCalculationManual If (Target.Row = 1) And (Target.Column >= 1 And _ Target.Column <= 3) Then 'セルの値に変更があったときに実行したい処理を記述 Calculate End If Application.Calculation = xlCalculationManual End Sub 上記で、とりあえずいけたのですが、計算はしているのに条件判定されないのが??? です。

  • VBからExcelファイルを開くときの再計算の解除方法

    VB6.0からExcelファイルを開くときに、 再計算処理が走ってしまい、 大きなファイルの場合とても時間がかかってしまっています。 開く前に、再計算は行わないで開く。 などの設定はできませんか? Dim xlsObj As Excel.Application ' ココに入れてもまだExcelオブジェクトが生成されていないのでエラー //xlsObj.Calculation = xlCalculationManual Set xlsFile = xlsObj.Workbooks.Open(ファイルパス) ' ココに入れたらファイル開いて再計算処理が走ったあとなので、すでに手遅れ。 //xlsObj.Calculation = xlCalculationManual なにかいい案がありましたら、 教えてください。

  • VBA 数式の計算が止まらない

    下記マクロはE列に1~10を記入し、G列に数式で2倍して記入するものです。 数式の計算を事前に止めてる筈ですが、ステップモードで実行し確認すると、全部計算されてます。 Application.Calculation = xlCalculationManual これが効いてないないのです。 なぜでしょうか? Sub Macro1() For i = 1 To 10 Cells(i, "E") = i Next i Application.Calculation = xlCalculationManual For i = 1 To 10 Cells(i, "G").Formula = "=E" & i & "*2" Next i Application.Calculation = xlCalculationAutomatic End Sub

  • VBAの再計算が反映されない件につきまして

    はじめまして。 大変恐れ入りますが、1つお伺いさせてください。 VBAにて計算結果が反映されない事象が発生しています。 コードは下記の通りです。 === Application.Calculation = xlCalculationManual For i = iFR To iTO Step iST Range(iCL) = i 'パラメータ設定 Application.CalculateFullRebuild 変数 = Cells(現在行, 1) '計算結果を変数/セル等に代入 Next === 要は、一旦高速化のために、Manualにしてから 再計算(計算結果がおかしくなるのを防ぐため すべての関係性をリセットした計算) して、任意の値をセルに書き込みます。 しかし、上記のCalculateFullRebuildの計算結果がセルに反映されない事象が発生しています。 おかしいなと思って、デバッグでF8を押しっぱなしにすると、確かに計算されない時があります。 気持ち、CalculateFullRebuildのあとで、F8を押すのを待つと、正しく反映されるようです。 これは高速すぎて、Excelのセル反映が間に合わないために生じる現象なのでしょうか?それとも計算エンジンの問題でしょうか? 正直とても困っています。 どなたか同じ体験をされた方、有識者の方、教えて頂ければ幸いです。 宜しく御願い申し上げます。 追伸:簡単ではりますが、環境を記述させて頂きました。 === Core2Duo、メモリ2GB Excel 2007 SP1のVBA ===

  • Excel VBA イベントプロシージャを2つ記述する(基本です)

    基本的な事なのですが、Excelのイベントプロシージャで2つプログラムを作るにはどうやって記述すればよいのでしょうか? 具体的には、worksheetのchangeイベントで、セルC5の値を変えた時と、セルG7の値を変えた時の2通りのマクロを作成したいのです。 Private Sub Worksheet_Change(ByVal Target As Range) C5を変えた時の処理 End Sub Private Sub Worksheet_Change(ByVal Target As Range) G7を変えた時の処理 End Sub このように書けばよいのでしょうか?そうするとTargetがかぶっておかしくなる気がします。。 お願いします。

  • VBA changeイベントを複数入れたい

    VBA changeイベントを複数入れたい VBAは初心者で、以前もこちらでお世話になりました。 F4セルに入力した際、VLOOKUPで検索し、該当がなければメッセージボックスを出し、 該当があれば、そのまま次に進む、というchangeイベントが既にあります。 ここに、E4セルに入力した数字が、同じシートのE列5行目以下と重複していた場合、 エラーメッセージを出す、とのをつけたしたいと思っています。 IFを使えばいい、ということはわかるのですが、どこに入れたらいいのかがわからず・・・。 すでにあるVBAは以下のとおりです。 Private Sub Worksheet_Change(ByVal Target As Range) '処分受託者(入力用名称)を入力して、処分業者名簿になければエラーメッセージを出す。 Dim rang1 As Range Dim rang2 As Range Dim 処分受託者名称 As String Dim LastRow As Long LastRow = Worksheets("処分業者名簿").Cells(Rows.Count, "b").End(xlUp).Row Set rang2 = Worksheets("処分業者名簿").Range("b4:b" & LastRow) Set rang1 = Range("f4") If Intersect(Target, rang1) Is Nothing Then Exit Sub On Error Resume Next 処分受託者名称 = WorksheetFunction.VLookup(Target.Value, rang2, 1, 0) If Err.Number > 0 Then MsgBox Target.Value & " はありません" Range("f4").Select Else End If End Sub この、どこに重複の場合はエラーメッセージを出す、というのを入れればいいのか、 教えてください・・・。

  • VBA:イベントの準備を別のイベントにより行いたい。詳しくは↓↓↓↓↓↓↓↓↓↓↓↓↓

    VBAのイベントについて質問です。イベント1と勝手に私が定義したイベント処理があると致します。通常は、ある動作の後イベント1が発生する仕組みですが、これを例えばKYE[t]を押すという動作により始めて、イベント10が起動できる準備に入り、さらにある別の動作に入ると初めてイベント1が動作するというようにしたいです。 私は大まかには以下の二つの連結で成立つと考えています。宜しくお願い致します。 1.Application.OnKey "^{t}", "イベント1" 2.Private Sub Worksheet_Change(ByVal Target As Excel.Range) '⇒例としてこれをイベント1とする。