Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


33299 / 76734 ←次へ | 前へ→

【48658】Re:Chageイベントについて
発言  ichinose  - 07/4/28(土) 20:19 -

引用なし
パスワード
   こんばんは。

>なぜ、前回のレスで返信は同じツリーにしてほしいといわれているのにも
>かかわらず、「新規投稿」をするのでしょうか?
関連する内容が別スレッドになっていると、非常に閲覧しづらいですよね!!
この後、同じ疑問を抱えた方がこの掲示板を訪れても円滑に参照できないと思いませんか?

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構文、変数の型宣言が
>難しく感じますが徐々に学んでいきたいと思いますので宜しくお願いします。
>まったく基本的なことに関してです。
>
>「返信」というのが見えませんかね?
>
>また、種別は質問なら「質問」をお礼なら「お礼」を
>選択するようにしてください。
>(つうかそのままじゃないか。)
3 hits

【48652】Chageイベントについて 久保 07/4/28(土) 16:34 お礼
【48653】Re:Chageイベントについて Blue 07/4/28(土) 18:47 発言
【48658】Re:Chageイベントについて ichinose 07/4/28(土) 20:19 発言
【48660】Re:Chageイベントについて 久保 07/4/28(土) 22:40 お礼

33299 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free