ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] EXCEL VBA 4­Ó§PÂ_°õ¦æ4¥¨¶°»P3«ö¶s

¦^´_ 2# bqwangs
¬O³o¼Ë¶Ü?
  1. Const Sh = "¤u§@ªí1"
  2. Dim Msg As Boolean
  3. Sub Sub_Start()
  4.     Msg = True
  5.     With Sheets(Sh)
  6.         If .[C5] = 1 Then
  7.             ¥¨¶°1
  8.         ElseIf .[C5] = -1 Then
  9.             ¥¨¶°3
  10.         End If
  11.     End With
  12. End Sub
  13. Sub Sub_stop()
  14.      ¥¨¶°2
  15. End Sub
  16. Sub ¥¨¶°1()
  17.     With Sheets(Sh)
  18.         .Range("A8") = 0
  19.         Do While Msg
  20.            .Range("A8") = 1
  21.             DoEvents
  22.         Loop
  23.     End With
  24. End Sub
  25. Sub ¥¨¶°2()
  26.     Msg = False '
  27.     Sheets(Sh).Range("B8") = "0"
  28. End Sub
  29. Sub ¥¨¶°3()
  30.     With Sheets(Sh)
  31.         Do While Msg
  32.            .Range("C8") = -1
  33.             DoEvents
  34.         Loop
  35.     End With
  36. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 5# bqwangs
  1. '³o¨Çµ{§Ç³]¦b SHEET1[¬¡­¶Ã¯ªºª«¥ó¼Ò²Õ]
  2. Option Explicit
  3. Dim Msg As Boolean
  4. Sub ±Ò°Ê¶s()
  5.     If Msg = True Then Exit Sub                        '°±¤îµ{¦¡ªº¹B¦æ
  6.     If [C5] = 1 Then ¥¨¶°1                          '¬°1°õ¦æ¥¨¶°1
  7.     If [C5] = -1 Then ¥¨¶°3                         '¬°1°õ¦æ¥¨¶°3
  8.     If [C5] = 0 Then ¥¨¶°2                          '¬°1°õ¦æ¥¨¶°2
  9.     Application.OnTime Time + #12:00:01 AM#, "SHEET1.±Ò°Ê¶s" '¶¡¹j¤@¬í°õ¦æ ±Ò°Ê¶s
  10.      'Application.Time [®É°õ¦æªº®É¶¡],[°õ¦æªºµ{§Ç]
  11.      '°õ¦æªºµ{§Ç¬O SHEET1[¬¡­¶Ã¯ªºª«¥ó¼Ò²Õ],¤ºªºµ{§Ç­n«ü©úª«¥ó¼Ò²Õªº¦WºÙ
  12. End Sub
  13. Sub °±¤î¶s()
  14.     Do While [C5] <> 0  '·|µ¥¨ìC5Àx¦s®æ¬° 0 ¤~°±¤î
  15.         DoEvents
  16.     Loop
  17.     Msg = True   '°±¤î¦A«×°õ¦æ ±Ò°Ê¶s
  18.     ¥¨¶°2
  19.     End
  20.     '(1)¦pªGC5Àx¦s®æ¬°1 ©Î -1¡A·|µ¥¨ìC5Àx¦s®æ¬° 0 ¤~°±¤î(¤]´N¬O·|°õ¦æ§¹¥¨¶°2)
  21.     '(2)¦pªGC5Àx¦s®æ¬°0¡Aª½±µ°±¤î(¤£·|°õ¦æ¥¨¶°2)
  22.     'Âk¯Ç(1)(2)->°õ¦æ¥¨¶°2
  23. End Sub
  24. Sub ºò«æ¶s()
  25.     Msg = True   '°±¤î¦A«×°õ¦æ ±Ò°Ê¶s
  26.     ¥¨¶°2
  27.     End
  28.     '(1)¦pªGC5Àx¦s®æ¬° 1 ©Î-1 ¡A°¨¤W·|°õ¦æ¥¨¶°2¡A¥ß§Y°±¤î
  29.     '(2)¦pªGC5Àx¦s®æ¬°0¡Aª½±µ°±¤î(¤£·|°õ¦æ¥¨¶°2)(»P°±¤î¶s²Ä2±ø±Ô­z¤@¼Ë)
  30.     'Âk¯Ç(1)(2)->°õ¦æ¥¨¶°2
  31. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2014-4-11 07:45 ½s¿è

¦^´_ 9# bqwangs
¬O³o¼Ë¶Ü?
¤u§@ªí¼Ò²Õ¤Wªºµ{¦¡½X
  1. Dim Msg(1 To 3) As Boolean, C_5 As Integer, Rng As Range
  2. Private Sub Worksheet_Calculate()
  3.     '2 ¿ï 1 :*** ¦p C5 ¬°¤½¦¡ ¥Î¦¹­«ºâ¨Æ¥ó(¤u§@ªí¼Ò²Õªº¹w³]¨Æ¥óµ{§Ç)
  4.     If Not Msg(1) Then
  5.         MsgBox "©|¥¼ «ö¤U±Ò°Ê¯Ã"
  6.     ElseIf Rng <> C_5 Then
  7.         Ex
  8.     End If
  9. End Sub
  10. Private Sub Worksheet_Change(ByVal Target As Range)
  11.     '2 ¿ï 1 :*** ¦p¬Oª½±µ¦bC5¤W§ïÅÜ­È ¥Î¦¹¤u§@ªí¤WÀx¦s®æ¦³§ïÅܨƥó(¤u§@ªí¼Ò²Õªº¹w³]¨Æ¥óµ{§Ç)
  12.     If Not Msg(1) Then
  13.         MsgBox "©|¥¼ «ö¤U±Ò°Ê¯Ã"
  14.     ElseIf Target.Address = "$C$5" Then
  15.         Ex
  16.     End If
  17. End Sub
  18. Private Sub ±Ò°Ê¶s()
  19.     Msg(1) = True
  20.     Set Rng = [C5]
  21.     C_5 = [C5]
  22. End Sub
  23. Private Sub °±¤î¶s()
  24.     Msg(2) = True
  25. End Sub
  26. Private Sub ºò«æ¶s()
  27.     Msg(3) = True
  28. End Sub
  29. Private Sub Ex()
  30.     If Msg(1) And Not Msg(2) And Not Msg(3) Then '±Ò°Ê¶s
  31.         Select Case C_5         '¥ý«eC5ªº­È
  32.             Case 0              'C_5 = 0
  33.                 If Rng = 1 Then 'C5 Åܰʫ᪺­È
  34.                      ¥¨¶°A
  35.                 ElseIf Rng = -1 Then
  36.                     ¥¨¶°C
  37.                 End If
  38.             Case 1              'C_5 = 1
  39.                 If Rng = 0 Then ¥¨¶°B
  40.             Case -1             'C_5 = -1
  41.                 If Rng = 0 Then ¥¨¶°D
  42.         End Select
  43.     ElseIf Msg(2) And Not Msg(3) Then '°±¤î¶s
  44.            If Rng = 0 Then End   'µ{¦¡°±¤î
  45.            Select Case Rng
  46.             Case 1
  47.                 ¥¨¶°B
  48.             Case -1
  49.                 ¥¨¶°D
  50.         End Select
  51.     ElseIf Msg(3) Then          '°±¤î¶s
  52.          If Rng = 0 Then End    'µ{¦¡°±¤î
  53.            Select Case Rng
  54.             Case 1
  55.                 ¥¨¶°B
  56.             Case -1
  57.                 ¥¨¶°D
  58.         End Select
  59.         End                     'µ{¦¡°±¤î
  60.     End If
  61.     C_5 = Rng                   '¬ö¿ýC5ªº­×§ï
  62. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : ¤f»¡¤@¥y¦n¸Ü¡A¦p¤f¥X½¬ªá¡F¤f»¡¤@¥yÃa¸Ü¦p¤f¦R¬r³D¡C
ªð¦^¦Cªí ¤W¤@¥DÃD