- ベストアンサー
EXCELでセルの変更をしたらマクロを実行
このようなコードを作成しました。 Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Address = "$D$3") Then ★ End If End Sub ★に MsgBox "変更したよ" といれるとちゃんと表示されます。 ですが、 If D9 = "テスト" Then MsgBox "テスト" End if としても何も起こりません。 Call KEISAN のように呼び出すようにしても何も起こりません。 どこがダメなのでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 >If D9 = "テスト" Then 直接「D9」と書いても出来ません。 If Range("D9").Value = "テスト" Then または、 If Cells(9, 4).Value = "テスト" Then として下さい。 詳細は、Range、Cellsのヘルプを参照して下さい。
その他の回答 (2)
- Taketoshi
- ベストアンサー率41% (23/56)
>If D9 = "テスト" Then >MsgBox "テスト" >End if >としても何も起こりません。 この場合だと、D9という変数として取られるようになります。D9の変数はEmptyのままなので、MsgBox "テスト"は何も起こりません。 もし、D9セルの値を監視するのなら、 if cells(9,4).value = "テスト" then MsgBox "テスト" End if としてみてください。
お礼
回答ありがとうございます。 #2でもかきましたが、D9のままだと変数扱いになるんですよね。 すっかりボケてました。(休みボケでしょうか…?) ありがとうございました。
- taknt
- ベストアンサー率19% (1556/7783)
>If D9 = "テスト" Then ここでのD9は、D9 という変数です。 D9 = "テスト" というのをいれてれば、実行されるでしょう。
お礼
回答ありがとうございます。 D9だけではだめなんですね。 気づきました。 ありがとうございました。
お礼
回答ありがとうございます。 そうですよねD9だけじゃだめですよね。 Excelの関数でかいたのをコピーしながらやってたら頭がごちゃごちゃになってました。 ありがとうございました。