| 
    
     |  | こんばんは。 
 >なぜ、前回のレスで返信は同じツリーにしてほしいといわれているのにも
 >かかわらず、「新規投稿」をするのでしょうか?
 関連する内容が別スレッドになっていると、非常に閲覧しづらいですよね!!
 この後、同じ疑問を抱えた方がこの掲示板を訪れても円滑に参照できないと思いませんか?
 
 www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=48644;id=excel
 
 
 >ただシートがかわるとRangeクラスのActivateメソッドの失敗という
 >エラーが出ました。
 このエラーが出ないようなコードにしたつもりです。
 
 Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address = Range("C3").Address Then
 With Sheets("Sheet2")
 .Select
 .Range("c3").Activate
 '    ↑Rangeの前に「.]があるのは確認されていますか?
 End With
 End If
 End Sub
 
 再度、実行してみてください。
 
 上記のコードは
 
 「当該シート(例えば、Sheet1)のセルC3に値が入力されると
 Sheet2が選択され、次いでSheet2のセルC3を選択する」
 
 というコードです。
 
 そういう仕様(動作)にしたいのですよね?
 
 
 >Range("C3").Activateのコードをはずすとうまく出来ましたが
 
 と記述すると、確かにエラーが発生します。
 
 違いをよく見比べてください。
 
 
 >
 >またIf Target = Range("C3")Thenは、どこがおかしいのか教えて下さい。
 
 >>セルA1を変更してもA1とC3の内容が同じなら、
 >>コードが実行されてしまいます。
 
 と前回記述しました。
 
 If Target = Range("C3") Then
 
 としてしまうと
 
 セルC3に15が入力されていた場合、
 
 セルA1でもセルB1でも(どのセルでも)15と入力すれば、
 コードが実行されてしまいます。
 
 そういう仕様ではないですよね?
 
 再度、確認してください。
 
 
 >VBAが理解出来ないと言いましたが全て理解できない訳ではありません。
 >今回質問したイベント発生等条件が細かくなるとVBA構文、変数の型宣言が
 >難しく感じますが徐々に学んでいきたいと思いますので宜しくお願いします。
 >まったく基本的なことに関してです。
 >
 >「返信」というのが見えませんかね?
 >
 >また、種別は質問なら「質問」をお礼なら「お礼」を
 >選択するようにしてください。
 >(つうかそのままじゃないか。)
 
 
 |  |