Excel VBA質問箱 IV

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

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


4975 / 76732 ←次へ | 前へ→

【77371】Re:ダブルクリックのマクロ
発言  β  - 15/8/11(火) 15:55 -

引用なし
パスワード
   ▼コーヒー さん:

こんにちは

      Selection.Offset(0, -5).Select

こうしても Targetは変わりません。I100 等のままです。
ですから
      Target.Value = Date
これで、せっかく 星を付けたセルに日付が書きこまれます。

やるなら Selection.Value = Date でしょうけど、このためにわざわざセルを選択する必要はありません。

CHK_FLG の設定と判定も(アップされたコードだけからいえば)不要だと思います。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

  If Intersect(Target, Range("I3:I3000")) Is Nothing Then Exit Sub

  If Target.Value = "" Then
    Target.Value = "★"
    Target.Offset(, -5).Value = Date
    Cancel = True
  End If
  
End Sub


こうしても
>こんにちは。以前こちらでお世話になったものです。
>
>下記のようにI列のセルをダブルクリックすると、★マークが付くようになっています。
>それと同時に、同じ行の日付が記入されているD列に今日の日付に変わる設定したいです。
>
>やってみたのですが、I列に★がつく代わりに、日付が入ってしまします。
>お手数ですが、ご教授をお願いいたします。
>
>(例)
>D100:8/15 I100:空白
>I100をダブルクリックすると
>D100:8/11 I100:★
>に変わるようにしたい
>
>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
>  Dim CHK_FLG  As Boolean
> 
>
>CHK_FLG = True
>  If Intersect(Target, Range("I3:I3000")) Is Nothing Then CHK_FLG = False
> 
>  If CHK_FLG Then
>    If Target.Value = "" Then
>      Target.Value = "★"
>      Selection.Offset(0, -5).Select
>      Target.Value = Date
>      Cancel = True
>    End If
>    Exit Sub
>  End If
>    
>End Sub
169 hits

【77370】ダブルクリックのマクロ コーヒー 15/8/11(火) 12:28 質問[未読]
【77371】Re:ダブルクリックのマクロ β 15/8/11(火) 15:55 発言[未読]
【77372】Re:ダブルクリックのマクロ コーヒー 15/8/11(火) 17:23 お礼[未読]

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