Основы офисного программирования и язык VBA


Обмен информацией между документами


Когда речь идет о системе документов, то один из основных вопросов - организация обмена информацией между отдельными документами системы. Когда речь идет о системе проектов, то, как правило, существует сравнительно небольшая по объему общая информация, которая используется во всех проектах. Сейчас мы и поговорим о том, как организовать такой общий информационный пул, содержащий глобальную информацию уровня системы проектов. Задача состоит в том, чтобы хранимые данные могли быть доступны во всех проектах для чтения и записи. Решить задачу можно по-разному, перечислим основные способы:

  • Выделим один из проектов, который будем называть основным, и в стандартном модуле этого проекта зададим множество Public переменных, в совокупности и определяющих общую для всей системы информацию. Систему документов спроектируем так, чтобы их проекты были связаны по ссылке, и корнем дерева был основной документ, хранящий глобальную информацию. В этом случае каждый проект будет иметь доступ к этой информации. Напомним, циклические ссылки между проектами не разрешены, отсюда следует, что нельзя часть информации поместить в проект А, часть в проект В и сделать эту информацию общедоступной для обоих проектов. Возможна только древесная организация хранения общей информации. Самая общая информация хранится в корневом проекте, в "дочерних" проектах хранится информация необходимая потомкам этих дочерей, и так до терминальных проектов.
  • Второй способ состоит в том, что общая для всех проектов информация размещается в виде списков Excel, в ячейках выделенной рабочей книги, играющей роль основного документа. Этот способ основан на том, что не только VBA обеспечивает взаимодействие проектов, возможно взаимодействие самих документов, ссылки между ними. Известно, что ссылки на ячейки книги Excel допустимы и широко распространены. Так что страницы Excel часто используются как удобное средство для передачи информации между документами. Чуть ниже на примере мы продемонстрируем этот способ передачи информации.


    Начало  Назад  Вперед