Помощь - Поиск - Пользователи - Календарь
Полная версия: MsgBox (VBA)
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Евгений
Доброго времени суток!
Никак не могу справиться с задачей:
Результаты вычислений вывести в документ MS Word (с этим справился) и с помощью оператора вывода
MsgBox. А вот с последним заморочка, никак на получается все результаты в одном окне вывести.
Код
Dim Матрица(1 To 5, 1 To 5) As Integer
Dim Массив(10) As Integer
Dim h As Integer
Dim s As String
Private Type Матрицы
Массив As String
End Type
Private Sub CommandButton1_Click()
Open "Матрицы2.doc" For Output As #1
Макс = Матрица(1, 5)
Мин = Матрица(1, 5)
For i = 1 To 5
For j = 1 To 5
Матрица(i, j) = Val(InputBox("Введите элемент матрицы:", "Введите элемент матрицы:"))
If Матрица(i, j) > Макс Then Макс = Матрица(i, j)
If Матрица(i, j) < Мин Then Мин = Матрица(i, j)
h = Макс - Мин
Массив(10) = h
Print #1, Tab(3); Массив(10)
Next j
Next i
Close #1
Open "Матрицы2.doc" For Input As #1
While Not EOF(1)
Input #1, s
MsgBox s
Wend
Close #1
End Sub
volvo
Тебе надо в MsgBox-е вывести всю матрицу, что-ли? Так это вот так делается:

Код
Private Sub st()
   Dim s As String
   Dim v As Integer

   s = ""
   For j = 1 To 3
      For i = 1 To 3
         v = Val(InputBox("Input value:", "Input value:"))
         s = s + " " + CStr(v)
      Next i
      s = s + vbCr
   Next j
   MsgBox s
End Sub
, в результате вся матрица выводится одним вызовом...
Евгений
volvo, очередной раз спасибо вам огромное!
Но всетаки хотелось бы узнать, как из файла несколько строк поместить в одном MsgBox-е. Что то у меня получается либо каждое слово в отдельном, либо в одном , но только первая строка.
volvo
Все точно так же, как я показал выше:

Код
Dim Mx(1 To 5, 1 To 5) As Integer
Dim h As Integer
Dim s As String ' Это будем читать из файла
Dim MyS As String ' Здесь будем конструировать то, что покажет MsgBox

Private Sub CommandButton1_Click()
   Open "doc2.doc" For Output As #1
   Max = Mx(1, 5)
   Min = Mx(1, 5)
   For i = 1 To 5
      For j = 1 To 5
         Mx(i, j) = Val(InputBox("Input value:", "Input value:"))
         If Mx(i, j) > Max Then Max = Mx(i, j)
         If Mx(i, j) < Min Then Min = Mx(i, j)
         h = Max - Min
         Print #1, Tab(3); h
      Next j
   Next i
   Close #1
  
   MyS = vbNullString
   Open "Doc2.doc" For Input As #1
   While Not EOF(1)
      Input #1, s
      MyS = MyS + s + " " ' Добавляем прочитанную строку и пробел к результату
   Wend
   Close #1
  
   MsgBox MyS ' И только теперь, после цикла, выводим MsgBox
End Sub

Я убрал все лишние типы и переменные. Единственное, что здесь "не так" - это: ты вроде вводишь матрицу, а получаешь в окошке массив, то есть все вытянуто в одну строку. Если хочешь - добавь строчку, чтоб на каждой пятой итерации к MyS добавлялся еще и перевод строки - тогда будет настоящая матрица.
Евгений
Спасибо! Сам тоже вроде разобрался, теперь результат выводит и в файл, и в MsgBox, и в форму, осталось еще в ячейки Excel вывести...
Евгений
Цитата
осталось еще в ячейки Excel вывести...

С этим вообще все просто оказалось smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.