VBA Excel. Сохранение массива в текстовый файл

Сохранение одномерного и двумерного массивов в текстовый файл с помощью кода VBA Excel и обратное заполнение массивов данными из текстового файла.

Сохранение массива в текстовый файл

Сохранение одномерного массива

Сохранение одномерного массива в текстовый файл с добавлением разделителя между его элементами.

Объявляем переменную универсального типа, создаем из нее массив, заполнив ее данными с помощью функции Array:

Теперь создаем текстовый файл с помощью метода CreateTextFile. Создаем, а не открываем, для того, чтобы, если такой файл с данными уже существует, от был перезаписан новым пустым файлом.

Если переменную, предназначенную для создания нового объекта TextStream объявить явно: fl As TextStream, то станут доступны подсказки для автозаполнения свойств и методов этого объекта при написании кода.

Сохраняем информацию из массива в текстовый файл с помощью цикла For… Next:

В качестве разделителя элементов массива используется символ «;». Если точка с запятой встречается в содержимом элементов массива, следует использовать другой разделитель.

Закрываем объект TextStream и открываем созданный текстовый файл для просмотра:

Полный код процедуры VBA Excel для сохранения одномерного массива в текстовый файл:

Сохранение двумерного массива

Сохранение двумерного массива в текстовый файл с использованием в качестве разделителей точки с запятой (для элементов в одной строке) и переноса строки.

Раз у нас VBA Excel, то и заполнять двумерный массив будем данными с рабочего листа:

В результате будет создан массив с размерностью (1 to 8, 1 to 4). Первое измерение массива соответствует строкам диапазона, в второе – столбцам.

Создаем текстовый файл (или перезаписываем существующий) и открываем связанный с ним объект TextStream для записи данных из массива:

Записываем данные из двумерного массива в текстовый файл:

Закрываем объект TextStream и открываем созданный текстовый файл для просмотра:

Полный код процедуры VBA Excel для сохранения двумерного массива в текстовый файл:

Заполнение массива из текстового файла

Заполнение одномерного массива

Обратное заполнение с помощью кода VBA Excel одномерного массива данными из созданного текстового файла "C:\test\testfile1.txt":

Заполнение двумерного массива

Обратное заполнение с помощью кода VBA Excel двумерного массива из созданного текстового файла "C:\test\testfile2.txt".

Копируем информацию из текстового файла в переменную myString1:

Что мы теперь имеем? Все данные из файла "C:\test\testfile2.txt" скопированы в переменную myString1 с исходной структурой: со знаком переноса строки в качестве разделителя строк и точкой с запятой в качестве разделителя столбцов. Этой информацией мы и воспользуемся для заполнения массива myArray().

Проверяем заполненный массив копированием данных из него на рабочий лист:

Полный код процедуры VBA Excel для обратного заполнения двумерного массива из текстового файла:

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

2 комментария для “VBA Excel. Сохранение массива в текстовый файл”

  1. Николай

    Добрый день, Евгений!
    Подскажите пожалуйста, как сохранить массив в файл через вызов FileDialog, чтобы можно было назначить произвольное имя и выбрать нужную директорию?

    Диалог открывается, но создать файл и записать туда массив не получается.
    Заранее спасибо!

    1. Евгений

      Здравствуйте, Николай!
      Метод Application.GetSaveAsFilename создает только имя файла, но не создает и не сохраняет файл, в том числе при нажатии кнопки «Сохранить». Для создания файла и заполнения его данными необходим отдельный код, использующий полное имя, записанное в переменную Path.

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.