ヒント:他の言語はGoogle翻訳されています。 訪問することができます English このリンクのバージョン。
ログイン
x
or
x
x
お申し込み
x

or

セルの数式の結果が変更されたときに自動的にマクロを実行する方法

仮に、私が示すスクリーンショットを以下のように列Aのデータに基づいて式および列Bのリストを持って、今、私は、その相対的な細胞と式結果の変更が変更されたときに自動的に特定のマクロコードを実行します。 この仕事をExcelで解決する良いアイデアはありますか?

セル式の結果がVBAコードで変更されたときに自動的にマクロを実行する


セル式の結果がVBAコードで変更されたときに自動的にマクロを実行する


次のVBAコードは、式の結果細胞の変化は、このようにしてくださいしてくださいときに、自動的に特定のコードを実行するためにあなたを助けることができます。

1。 使用するシートタブを右クリックし、 コードを表示 コンテキストメニューから開く アプリケーション用のMicrosoft Visual Basic ウィンドウを開き、以下のコードをコピーして空白のModuleに貼り付けます:

VBAコード:セルの数式の結果が変更されたときに自動的にマクロを実行する:

Private Sub Worksheet_Calculate()
'Updateby Extendoffice
    Dim Xrg As Range
    Set Xrg = Range("C2:C8")
    If Not Intersect(Xrg, Range("C2:C8")) Is Nothing Then
    Macro1
    End If
End Sub

:上記のコードでは、 C2:C8 あなたが使いたい数式セルの範囲ですが、maco1 自動的に実行するマクロの名前です。 必要に応じて変更してください。

2。 式の結果の変化を引き起こすB2の変更、特定のマクロコードを一度にトリガーされます。それから、今、レンジA8のデータが時に、このコードウィンドウを保存して閉じます。


Kutools for Excelは、ほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート そして、以前に使用したもの; セルを暗号化する パスワード付き メーリングリストの作成 そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストや数式を簡単に編集する) レイアウトを読む (多数のセルを簡単に読んで編集できます)。 フィルター範囲に貼り付ける...
  • セル/行/列を結合 データを失うことなく; セルコンテンツの分割。 重複する行/列を結合する...重複セルの防止。 範囲の比較...
  • 重複または一意を選択します空白行を選択 (すべてのセルは空です)。 スーパー検索とファジー検索 多くのワークブックで。 ランダム選択
  • 完全コピー 式の参照を変更せずに複数のセル。 参照を自動作成 複数のシートに 箇条書きを挿入、チェックボックスなど
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷 セルのコンテンツとコメント間の変換...
  • スーパーフィルター (保存して他のシートにフィルタ方式を適用する)。 高度な並べ替え 月/週/日、頻度などによる。 特殊フィルター 太字、斜体で...
  • ワークブックとワークシートを組み合わせる; キー列に基づいて表をマージします。 データを複数のシートに分割する; xls、xlsx、およびPDFのバッチ変換...
  • 300を超える強力な機能。 Office / Excel 2007-2019および365をサポートします。 すべての言語をサポートします。 企業または組織に簡単に展開できます。 フル機能の30日間の無料トライアル。
KTEタブ201905

OfficeタブはOfficeにタブ付きインターフェイスを提供し、作業をより簡単にします

  • Word、Excel、PowerPointでタブ付き編集と読み取りを有効にする、出版社、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を50%向上させ、毎日数百回のマウスクリックを削減します。
オフィシタブ底
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    shan · 27 days ago
    sorry it dosn't work it works if i put data manually. but i want to work it automatically bcz my data is updating by rand calcaulate
  • To post as a guest, your comment is unpublished.
    Cenk · 1 years ago
    So, what is my macro name. where can i find my macro name?
    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hello, Cenk,
      The macro name is the macro code you have inserted into the Excel file, and you just need to change the Macro1 in the above code to your own.
      For example, i insert a code here, and the macro name is: ColorCompanyDuplicates

      Sub ColorCompanyDuplicates()
      'Updateby Extendoffice 20160704
      Dim xRg As Range
      Dim xTxt As String
      Dim xCell As Range
      Dim xChar As String
      Dim xCellPre As Range
      Dim xCIndex As Long
      Dim xCol As Collection
      Dim I As Long
      On Error Resume Next
      If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
      Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
      End If
      Set xRg = Application.InputBox("please select the data range:", "Kutools for Excel", xTxt, , , , , 8)
      If xRg Is Nothing Then Exit Sub
      xCIndex = 2
      Set xCol = New Collection
      For Each xCell In xRg
      On Error Resume Next
      xCol.Add xCell, xCell.Text
      If Err.Number = 457 Then
      xCIndex = xCIndex + 1
      Set xCellPre = xCol(xCell.Text)
      If xCellPre.Interior.ColorIndex = xlNone Then xCellPre.Interior.ColorIndex = xCIndex
      xCell.Interior.ColorIndex = xCellPre.Interior.ColorIndex
      ElseIf Err.Number = 9 Then
      MsgBox "Too many duplicate companies!", vbCritical, "Kutools for Excel"
      Exit Sub
      End If
      On Error GoTo 0
      Next
      End Sub
  • To post as a guest, your comment is unpublished.
    Tommy · 1 years ago
    What's the point of the condition? It'll always return true...in other words: it'll run without it. This also runs whenever any cells on the sheet change value.
  • To post as a guest, your comment is unpublished.
    Varun · 1 years ago
    Thanks a lot! This really helped me out.
    Is there any method to retrieve the address of the changed cell (with formula i.e Column C in this example).
    Thanks.