Динамический массив с учетом уменьшения элементов - VBA

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, подскажите как создать динамический массив из данного кода, но с одним условием. Если TextBoxCoordinate.Value выпадает элемент "C2", то из массива убираются и он сам и вокруг него элементы, например: "B1", "B2", "B3", "C1", "C2", "C3", "D1", "D2" и "D3". И так для каждого элемента. Чтобы с каждым нажатием кнопки массив становился меньше и меньше.
Листинг программы
  1. Sub GenerationCoordinates()
  2. Dim coord()
  3. coord = Array("A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", _
  4. "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", _
  5. "C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "C10", _
  6. "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", _
  7. "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9", "E10", _
  8. "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", _
  9. "G1", "G2", "G3", "G4", "G5", "G6", "G7", "G8", "G9", "G10", _
  10. "H1", "H2", "H3", "H4", "H5", "H6", "H7", "H8", "H9", "H10", _
  11. "I1", "I2", "I3", "I4", "I5", "I6", "I7", "I8", "I9", "I10", _
  12. "J1", "J2", "J3", "J4", "J5", "J6", "J7", "J8", "J9", "J10")
  13. Randomize
  14. Dim q
  15. q = Int(100 * Rnd)
  16. TextBoxCoordinate.Value = coord(q)
  17. End Sub
  18. Private Sub ImageAuto_Click()
  19. GenerationCoordinates
  20. End Sub

Решение задачи: «Динамический массив с учетом уменьшения элементов»

textual
Листинг программы
  1. Option Explicit
  2. Dim col As New Collection, ind&
  3.  
  4. Sub initiate()
  5.     Dim a(), el
  6.     Set col = Nothing
  7.     ind = 12
  8.  
  9.     a = Array("begin", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "end")
  10.     For Each el In a
  11.         col.Add el
  12.     Next
  13. End Sub
  14.  
  15.  
  16. Sub GenerationCoordinates()
  17.     Dim a()
  18.     Dim q&
  19.     Randomize
  20.     q = Int(ind * Rnd) + 1
  21.  
  22.  
  23.     MsgBox col(q + 1)
  24.  
  25.     col.Remove (q + 2)
  26.     col.Remove (q + 1)
  27.     col.Remove (q)
  28.     ind = ind - 3
  29.  
  30.     Select Case q
  31.         Case 1
  32.             col.Add "begin", Before:=1
  33.         Case col.Count + 1
  34.             col.Add "end"
  35.     End Select
  36.  
  37.     If ind = 0 Then MsgBox "по новой!", vbExclamation: initiate
  38. End Sub
  39.  
  40. Private Sub ImageAuto_Click()
  41.     GenerationCoordinates
  42. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы