- ベストアンサー
”戻り値”が変化したときに、マクロを実行したい
SherlockHolmes2の回答
- SherlockHolmes2
- ベストアンサー率40% (175/429)
詳細が分からないので、何とも言えませんが・・。 「戻り値が変化する元となるアクション」が何かしらあるはずですので、そこに着目したら良いかと思いますが。
関連するQ&A
- エクセルマクロ(VBA)で指定したセルが変化したときに実行するには?
VBAでsheetの中のworksheet_changeなどでマクロを書くと、そのシー トの中のどのセルを変化させてもマクロが実行されるのですが、これ を、A1とc1とc2が変化したときだけ処理を実行させたいのです。 以下のマクロのどこかを編集すると、そのようなことが出来るのでし ょうか? Private Sub Worksheet_SelectionChange(ByVal Target As Range) ----実行する内容---- End Sub Private Sub Worksheet_Change(ByVal Target As Range) ----実行する内容---- End Sub
- ベストアンサー
- オフィス系ソフト
- エクセルVBAに関して
VBAの知識があまりないので教えて頂きたいのですが、セルの内容が変更されたら マクロが実行される Private Sub Worksheet_Change(ByVal Target As Range) というのがあるかと思います。 セルに書かれた関数によって、セルの内容が変化したときにマクロが実行されるVBA関数はあるのでしょうか?
- 締切済み
- Visual Basic
- EXCELでセルの値が変化したときだけにマクロ実行
教えてください。 EXCELのA1セルの値が1→0に変化したときにMacro1を実行、0→1に変化したときにMacro2を実行したいと思い、以下のマクロを「シート名タブ右クリック」→「コードの表示」で開く画面に打ちました。 そうしたところキーボードからA1セルに1や0を打ち込むとMacro1・Macro2を実行するのですが。A1セルに関数式を入れ自動で1→0・0→1に変化してもMacro1・Macro2が実行されません。この場合どう修正すればMacroが実行されるようになりますか? ※ちなみにA1セルの関数式はある条件を満たしたら1、そうでない時0という式です。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" And Target.Value = 0 Then Macro1 End If If Target.Address = "$A$1" And Target.Value = 1 Then Macro2 End If End Sub
- ベストアンサー
- オフィス系ソフト
- Excelでセルの値を変化させた時にマクロを実行するには?
"A1"のセルに値を入れるとマクロが実行するように組んだのですが、問題が発生しました。 Private Sub Worksheet_Change(ByVal Target As Range) If Target = Range("A1") Then cells(1,2)=5 ・・・・ End If End Sub ここでA1に"5"を入力すると、B1に5と入力されるのですが、Target=5と認識してしまい、A1と同じ値になるので無限ループになってしまいます。 なにか回避策はないでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBA マクロを動かさない
(1)ある行のセルを変更したら動くマクロがあります。 Private Sub Worksheet_Change(ByVal Target As Range) (2)ある行のセルに数値を入れるマクロがあります。 Private Sub CommandButton_Click() (2)のマクロが動くと(1)がその後に発動して上書きをしてしまうようです。 これを発動させないようにスキップするにはどうしたらいいのでしょうか?
- ベストアンサー
- Visual Basic
- エクセルVBAでセル変化したら別のセルへコピーする
おはようございます。VBAをはじめて浅い初心者です。 あるセルに数字および文字列が入力されたら違うセルへコピーしたいのですがどのようにすればできますか。 Private Sub Worksheet_Change(ByVal Target As Range)とか 使用してつくればいいのですか?教えてください。
- 締切済み
- オフィス系ソフト
- エクセルでセルに文字が入力されたらマクロを実行
前回どなたかが質問されて回答を見せてもらったら私のやりたいことと同じだったので実行してみましたが出来なかったのでもう一度質問をさせてください。 1.実行したのですが、なにも実行されません。 2.実行したらメッセジBOXだけは実行するのですが、後のコマンドが実行されずにエラーになります。 もう一度詳しく教えてください。 マクロ初心者ですよろしくお願いします。 1.【シートモジュールで条件判定し、マクロを起動する】 通常はこちらの方法が使われます。 Private Sub Worksheet_Change(ByVal Target As Range) '変化のあったセルがA1セルか? If Target.Address = "$A$1" Then '条件判定:A1セルの値は 1 か? If Target.Value = 1 Then MsgBox "A1セルは条件を満たしました" End If End If End Sub 2.【ワークシート上で条件判定し、マクロを起動する】 処理内容にもよっては不向きな場合もありますが、こんな方法も あります。 マクロを Sub ではなく、Function 、、つまり関数にしてしまいます。 Function TestMacro() '<-- Sub を Function に替える MsgBox "A1セルは条件を満たしました" TestMacro = "" '戻り値はなし End Function そして、ワークシートの B1 セルに次の式を入力します。()は必須 です。 =IF(A1=1,TestMacro(),"")
- ベストアンサー
- オフィス系ソフト
- エクセルVBAについて、ある領域の中のセルが変化したらマクロが実行され
エクセルVBAについて、ある領域の中のセルが変化したらマクロが実行される方法を教えて下さい。 下記のようなイメージです。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If ActiveCell.Columns("A:A") Then 上記のようなイメージで2通り教えて下さい。 ・A列が選択された時 ・A列のうちで例えばA3セル以降が選択された時 宜しくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- エクセル95のマクロ
エクセル95で Private Sub Worksheet_Change(ByVal Target As Range) というのは使えるんでしょうか? リターン押したときに移るセルを操作したいので 代わりになるものでもあれば教えて頂きたいです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのマクロ
セルの値が変わったら動くマクロですが、2つ書くとエラーが出ます。 どのように直したらいいでしょうか? Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address If Intersect(Target, Range("EK22")) Is Nothing Then Exit Sub Else Range("EK24:EM28").Select Selection.ClearContents End If End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("EK24")) Is Nothing Then Exit Sub Else Range("EK27:EM28").Select Selection.ClearContents End If End Sub
- ベストアンサー
- Excel(エクセル)
お礼
ご回答いただきありがとうございます。 なるほど、「戻り値が変化する元となるアクション」 という観点が抜けていました。 勉強になります。ありがとうございます!