• ベストアンサー

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 のように呼び出すようにしても何も起こりません。 どこがダメなのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 >If D9 = "テスト" Then 直接「D9」と書いても出来ません。 If Range("D9").Value = "テスト" Then または、 If Cells(9, 4).Value = "テスト" Then として下さい。 詳細は、Range、Cellsのヘルプを参照して下さい。

KODAMAR
質問者

お礼

回答ありがとうございます。 そうですよねD9だけじゃだめですよね。 Excelの関数でかいたのをコピーしながらやってたら頭がごちゃごちゃになってました。 ありがとうございました。

その他の回答 (2)

  • Taketoshi
  • ベストアンサー率41% (23/56)
回答No.3

>If D9 = "テスト" Then >MsgBox "テスト" >End if >としても何も起こりません。 この場合だと、D9という変数として取られるようになります。D9の変数はEmptyのままなので、MsgBox "テスト"は何も起こりません。 もし、D9セルの値を監視するのなら、 if cells(9,4).value = "テスト" then MsgBox "テスト" End if としてみてください。

KODAMAR
質問者

お礼

回答ありがとうございます。 #2でもかきましたが、D9のままだと変数扱いになるんですよね。 すっかりボケてました。(休みボケでしょうか…?) ありがとうございました。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

>If D9 = "テスト" Then ここでのD9は、D9 という変数です。 D9 = "テスト" というのをいれてれば、実行されるでしょう。

KODAMAR
質問者

お礼

回答ありがとうございます。 D9だけではだめなんですね。 気づきました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう