Excel VBA質問箱 IV

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

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


6512 / 13646 ツリー ←次へ | 前へ→

【44759】再:クリックしてコピー 悩みすぎ 06/11/30(木) 18:50 質問[未読]
【44795】Re:再:クリックしてコピー Kein 06/12/1(金) 15:58 回答[未読]
【44815】Re:再:クリックしてコピー 悩みすぎ 06/12/1(金) 21:47 お礼[未読]

【44759】再:クリックしてコピー
質問  悩みすぎ  - 06/11/30(木) 18:50 -

引用なし
パスワード
   申し訳ありません、先日教えて頂いたコードの続きです。


やっぱり基点から右端のセル範囲を全てクリアせず、残るようにし
ダブルクリックした回数だけ上書きで記録したくて、日がな一日
チャレンジしておりましたが、どうも上手くいきません。


Private Sub CommandButton1_Click()
  With ActiveCell
   If .Column > 200 Then Exit Sub
   If MyR Is Nothing Then
     If MsgBox(.Address(0, 0) & " を基点にしますか", 36) = 6 Then
      Set MyR = Range(.Cells(1), Cells(.Row, 256))
>      MyR.ClearContents
      CommandButton1.Caption = "記録中"
      Application.StatusBar = "☆☆☆ 記録中 ☆☆☆"
     End If
   Else
     If MsgBox("記録を終了しますか", 36) = 6 Then
      Set MyR = Nothing
      CommandButton1.Caption = "停止中"
      Application.StatusBar = "★★★ 停止中 ★★★"
     End If
   End If
  End With
End Sub


>MyR.ClearContents
で全部消さないようにすればいいと思うのですが?・・・お助けを・・・

【44795】Re:再:クリックしてコピー
回答  Kein  - 06/12/1(金) 15:58 -

引用なし
パスワード
   グローバル変数に、カウンター変数を追加すればよいのです。全体を再編集して・・

Private MyR As Range
Private Cnt As Integer

Private Sub Worksheet_Activate()
  Cnt = 0
  Me.CommandButton1.Caption = "待機中"
  With Application
   .DisplayStatusBar = True
   .StatusBar = "●○● 待機中 ○●○"
  End With
End Sub

Private Sub Worksheet_Deactivate()
  Set MyR = Nothing
  With Application
   .StatusBar = False
   .DisplayStatusBar = False
  End With
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
  If MyR Is Nothing Then Exit Sub
  Cnt = Cnt + 1
  If Cnt > MyR.Count Then
   MsgBox "これ以上、値の転記をすることはできません", 48
   Exit Sub
  End If
  Cancel = True
  MyR.Cells(Cnt).Value = Target.Cells(1).Value
End Sub

Private Sub CommandButton1_Click()
  With ActiveCell
   If .Column > 200 Then Exit Sub
   If MyR Is Nothing Then
     If MsgBox(.Address(0, 0) & " を基点にしますか", 36) = 6 Then
      Cnt = 0
      Set MyR = Range(.Cells(1), Cells(.Row, 256))
      CommandButton1.Caption = "記録中"
      Application.StatusBar = _
      "☆☆☆ 記録中 (基点 : " & .Address(0, 0) & ") ☆☆☆"
     End If
   Else
     If MsgBox("記録を終了しますか", 36) = 6 Then
      Set MyR = Nothing
      CommandButton1.Caption = "停止中"
      Application.StatusBar = "★★★ 停止中 ★★★"
     End If
   End If
  End With
End Sub

で、どうでしょーか ?

【44815】Re:再:クリックしてコピー
お礼  悩みすぎ  - 06/12/1(金) 21:47 -

引用なし
パスワード
   Kein さん やりました!

>グローバル変数に、カウンター変数を追加すればよいのです。全体を再編集して・・

深いです・・・???・・・でも完璧です!
すごい・・・感動です!

プログラマーさんなんでしょうか?

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