メインコンテンツへスキップ

Excelでセル値が変更されたときにマクロを実行するにはどうすればよいですか?

通常、Excelでは、F5キーまたは実行ボタンを押してVBAコードを実行できます。 しかし、セルの値が変更されたときに特定のマクロコードを実行しようとしたことがありますか? この記事では、Excelでこのジョブを処理するための簡単なトリックをいくつか紹介します。

特定のセル値がVBAコードで変更されたときに、マクロを実行または呼び出す

VBAコードの範囲内でセル値が変更されたときに、マクロを実行または呼び出す


矢印青い右バブル 特定のセル値がVBAコードで変更されたときに、マクロを実行または呼び出す

セルの値を変更してマクロコードを実行するには、次のVBAコードを使用すると便利です。次のようにしてください。

1。 セルの値が変更された場合にマクロを実行するシートタブを右クリックして、 コードを表示 コンテキストメニューから、開いた状態で アプリケーション用のMicrosoftVisual Basic ウィンドウで、次のコードをコピーして空のモジュールに貼り付けます。

VBAコード:セルの値が変更されたときにマクロを実行します。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Call Mymacro
    End If
End Sub

セルが変更された場合のドキュメント実行マクロ1

Note:上記のコードでは、 A1 コードを実行する特定のセルは、 マイマクロ 実行するマクロ名です。 必要に応じて変更してください。

2。 次に、コードウィンドウを保存して閉じます。これで、セルA1に値を入力または変更すると、特定のコードがすぐにトリガーされます。


矢印青い右バブル VBAコードの範囲内でセル値が変更されたときに、マクロを実行または呼び出す

セルの範囲内でセル値が変更されたときにマクロを実行またはトリガーする場合は、次のコードが役立ちます。

1。 セルの値が変更された場合にマクロを実行するシートタブを右クリックして、 コードを表示 コンテキストメニューから、開いた状態で アプリケーション用のMicrosoftVisual Basic ウィンドウで、次のコードをコピーして空のモジュールに貼り付けます。

VBAコード:セル値が次の範囲で変更されたときにマクロを実行します。

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B100")) Is Nothing Then
Call Mymacro
End If
End Sub

セルが変更された場合のドキュメント実行マクロ2

Note:上記のコードでは、 A1:B100 コードを実行する特定のセルは、 マイマクロ 実行するマクロ名です。 必要に応じて変更してください。

2。 次に、コードウィンドウを保存して閉じます。これで、A1:B100のいずれかのセルに値を入力または変更すると、特定のコードが一度に実行されます。


複数のブックからすべてのマクロを削除する

Kutools for Excel's すべてのマクロをバッチ削除 ユーティリティは、必要に応じて複数のブックからすべてのマクロを削除するのに役立ちます。 今すぐExcel用のKutoolsをダウンロードして無料でお試しください!

Kutools for Excel:300以上の便利なExcelアドインがあり、30日以内に制限なしで無料で試すことができます。 今すぐダウンロードして無料トライアル!


関連記事:

Excelで印刷する前にマクロを自動的に実行するにはどうすればよいですか?

Excelでセル値に基づいてマクロを実行するにはどうすればよいですか?

Excelのドロップダウンリストから選択した値に基づいてマクロを実行するにはどうすればよいですか?

Excelでハイパーリンクをクリックしてマクロを実行するにはどうすればよいですか?

ブックからシートを選択したときにマクロを実行するにはどうすればよいですか?

最高のオフィス生産性向上ツール

人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト 工具 (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 工具 (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 工具 (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット 工具 (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...

kteタブ201905


Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
Comments (18)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
It worked, thanks for the help
This comment was minimized by the moderator on the site
This is exactly what I was looking go for. When a user enters a value in a cell, a simple sort macro would run. The macro runs fine on its own but I get an invalid use of property error using the suggested code.

What could be the issue?
This comment was minimized by the moderator on the site
I am using the code below to hide various columns depending on the selection from a drop-down box located in cell C3, but after a calculation is performed anywhere in the worksheet, ALL columns become UNHIDDEN. How do I fix this?

Private Sub Worksheet_Change(ByVal Target As Range)

Columns("D:F").AutoFit

Dim Proj1 As String
Dim Proj2 As String
Dim Proj3 As String
Dim Proj4 As String
Dim Proj5 As String
Dim Proj6 As String
Dim Proj7 As String
Dim Proj8 As String
Dim Proj9 As String
Dim Proj10 As String

Proj1 = ActiveWorkbook.Sheets("Projects").Range("A1").Value
Proj2 = ActiveWorkbook.Sheets("Projects").Range("A2").Value
Proj3 = ActiveWorkbook.Sheets("Projects").Range("A3").Value
Proj4 = ActiveWorkbook.Sheets("Projects").Range("A4").Value
Proj5 = ActiveWorkbook.Sheets("Projects").Range("A5").Value
Proj6 = ActiveWorkbook.Sheets("Projects").Range("A6").Value
Proj7 = ActiveWorkbook.Sheets("Projects").Range("A7").Value
Proj8 = ActiveWorkbook.Sheets("Projects").Range("A8").Value
Proj9 = ActiveWorkbook.Sheets("Projects").Range("A9").Value
Proj10 = ActiveWorkbook.Sheets("Projects").Range("A10").Value

Dim xRG As Range
Dim xHRow As Integer
Set xRG = Range("C3")
If Not Intersect(Target, xRG) Is Nothing Then

If Target.Value = Proj1 Then
Application.Columns("E:F").Hidden = True
Application.Columns("D").Hidden = False

ElseIf Target.Value = Proj2 Then
Range("D:D, F:F").EntireColumn.Hidden = True
Application.Columns("E").Hidden = False

End If
End If
End Sub
This comment was minimized by the moderator on the site
I am trying to automate 1 workbook (BOM) when another workbook(Parts Status) makes changes. The Parts status file updates every 15 minutes. I need to know how to automate a specific column when these changes occur? Any ideas
This comment was minimized by the moderator on the site
Hi guys, I am solving the following issue: I want to scrape a title of website when link inserted in column A and put this value to relevant cell (next to it) in column B. The issue seems to be that once I paste the website in column A, the code reruns the entire list from column A2 to "last row" as defined in the code. Is there any way to only modify column B once a single column A is modified? I.e. if Ipaste a link in column A36 I get a title in B36, regardless of whether the cell is in the middle of the used range or at the very bottom. I would like to use this without having to re-run multiple inputs as it currently stands; (i.e. the loop "for i =2 to last row")? Also, I would like to change the below from Modular macro i.e. sub to private sub reacting to change (i.e. intersect function) where the 'target' is any cell from A:A range. Many thanks!


Sub get_title_header()



Dim wb As Object

Dim doc As Object

Dim sURL As String

Dim lastrow As Long

lastrow = Sheet1.Cells(Rows.Count, "A").End(xlUp).row



For i = 2 To lastrow

Set wb = CreateObject("internetExplorer.Application")

sURL = Cells(i, 1)



wb.navigate sURL

wb.Visible = False



While wb.Busy

DoEvents

Wend



''HTML document

Set doc = wb.document



Cells(i, 2) = doc.Title



On Error GoTo err_clear

Cells(i, 3) = doc.GetElementsByTagName("h1")(0).innerText

err_clear:

If Err <> 0 Then

Err.Clear

Resume Next

End If

wb.Quit

Range(Cells(i, 1), Cells(i, 3)).Columns.AutoFit

Next i



End Sub




Thank YOU!
This comment was minimized by the moderator on the site
Hola buenas tardes
quisiera saber el codigo para que se active una macro cuando cambia el valor de una celda de una columna, pero este valor cambia por formula,sin que el usuario introduzca ningun valor.
This comment was minimized by the moderator on the site
The macro that you are calling where do you have this located? I have mine in the Modules folder but when I put any value in any cell of the worksheet I get a Compile error saying:
Expected variable or procedure, not module.

Please help.
This comment was minimized by the moderator on the site
Hi, DrCartwright,
Sorry for replying to you so late.
Yes, as you said, the macro code should be located into the Module, and you need to change the code name to your own name as following screenshot shown:
This comment was minimized by the moderator on the site
Hey, useful code. I was thinking if it was possible to insert a ring around the cells that are changed as they are changed? And reset the circles every Monday ?
This comment was minimized by the moderator on the site
Hello, Kevin,
Here is no idea for solving your problem, if you have any good solution, please comment here.
This comment was minimized by the moderator on the site
Worked great for me! My dilemma is that I want it to be a relative reference macro and there is a difference between hitting enter to save the entry and delete to clear the cell.
This comment was minimized by the moderator on the site
This worked first time for me using data validation list which displays text based on the list selection.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations