Private Sub Form_Load() ' номер тестируемого варианта iVar = 1 Call BuildBuffer(iVar) End Sub Public Sub BuildBuffer(iVar As Integer) Dim strBuffer As String, strTemp As String, strNew As String Dim l As Long, lCount As Long Dim lCur As Long, lEnd As Long, lNew As Long Dim dStart As Date ' ' тестирование трех вариантов ' формирование строковой переменной lCount = 200000 ' число циклов strNew = "Новая строка /" ' добавляемая строка dStart = Now ' точка отсчета времени ' создание буфера Select Case iVar Case 1 ' вариант 1 For l = 1 To lCount strBuffer = strBuffer & strNew Next Case 2 ' вариант 2 For l = 1 To lCount strTemp = strTemp & strNew If l Mod 100 = 0 Then strBuffer = strBuffer & strTemp strTemp = "" End If Next strBuffer = strBuffer & strTemp Case 3 ' вариант 3 strBuffer = Space(1) ' начальный буфер lCur = 1 ' текущий указатель в буфере For l = 1 To lCount lNew = Len(strNew) While lCur + lNew - 1 > Len(strBuffer) ' удвоение длины буфера strBuffer = strBuffer & strBuffer Wend Mid$(strBuffer, lCur) = strNew lCur = lCur + lNew Next ' формирование окончательного буфера strBuffer = Left$(strBuffer, lCur - 1) End Select ' вывод информации о затраченном времени MsgBox "Вариант" & Str(iVar) & _ " Количество циклов -" & Str(lCount) & vbCrLf _ & "Количество затраченных секунд = " & _ DateDiff("s", dStart, Now) End Sub