Attribute VB_Name = "Declarations" Option Explicit Public Enum TItem T_ITEM_UNKNOWN = 0 [_First] = 1 T_ITEM_FRONT = 1 T_ITEM_PROBLEM = 2 T_ITEM_SUBJECT_TYPE = 3 T_ITEM_GROUP = 4 T_ITEM_ORGAN = 5 T_ITEM_PERSON = 6 [_Last] = 6 End Enum Public Enum TSubjectType T_SUBJECT_UNKNOWN = 0 [_First] = 1 T_SUBJECT_SOLVER = 1 T_SUBJECT_INVOLVED = 2 T_SUBJECT_POTENTIAL = 3 [_Last] = 3 End Enum Public Const SHAPE_FRONT = "Фронт" Public Const SHAPE_PROBLEM = "Проблема" Public Const SHAPE_SUBJECT_TYPE = "Вид субъектов" Public Const SHAPE_ORGAN = "Организация" Public Const SHAPE_PERSON = "Персона" Public Const SHAPE_GROUP = "Группа" Public Const XL_TYPE_FRONT = "Фронт" Public Const XL_TYPE_PROBLEM = "Проблема" Public Const XL_TYPE_SUBJECT_TYPE = "Вид субъектов" Public Const XL_TYPE_ORGAN = "Организация" Public Const XL_TYPE_PERSON = "Персона" Public Const XL_TYPE_GROUP = "Группа" Public Const SHP_TITLE = "Название" Public Const MAX_STRUCTURE_DEPTH = 20 Public Const CELLSU_POSTYPE = "User.ThesisVariant" Public Const CELLSU_CONTAINER_MARGINS = "User.msvSDContainerMargin" Public Const PROBLEM_PREFIX = "Проблема" Public Const FRONT_PREFIX = "Фронт решения проблем" Public Const DEPSILON = 3 ' Layout manager options Public Const LM_MARGINS_EPSILON = 0.5 / 25.4 ' Increase margins to ammount for line width etc. Public Const LM_VERTICAL_GAP = 2 / 25.4 Public Const LM_HORIZONTAL_GAP = 2 / 25.4 Public Const PAGE_VERTICAL_GAP = 4 / 25.4 Public Const PAGE_HORIZONTAL_GAP = 4 / 25.4 Public Const PAGE_TITLE_GAP = 25 / 25.4 ' Blank space in left corner for schema title Public Const HEIGHT_DOUBLE_THRESHOLD = 130 Public Const HEIGHT_TRIPLE_THRESHOLD = 250 Public Type PageProps width_ As Double height_ As Double frontHeight_ As Double problemHeight_ As Double leftGap_ As Double columnGap_ As Double addHeader_ As Boolean multipage_ As Boolean End Type ' Custom errors Public Enum CustomErrors ERR_XL_INVALID_TYPE = vbObjectError + 1000 ' ERR_SYNC_DOC End Enum ' ===== Excel input ========== Public Const EXCEL_FIRST_ROW = 2 Public Enum DataSourceStructure S_ITEM_ID = 1 S_ITEM_LEVEL = 2 S_ITEM_TYPE = 3 S_ITEM_TEXT_THEME = 4 S_ITEM_TEXT_SUBJECT = 5 End Enum Public Function TextToItemType(sText$) As TItem Select Case sText Case XL_TYPE_FRONT: TextToItemType = T_ITEM_FRONT Case XL_TYPE_PROBLEM: TextToItemType = T_ITEM_PROBLEM Case XL_TYPE_SUBJECT_TYPE: TextToItemType = T_ITEM_SUBJECT_TYPE Case XL_TYPE_GROUP: TextToItemType = T_ITEM_GROUP Case XL_TYPE_ORGAN: TextToItemType = T_ITEM_ORGAN Case XL_TYPE_PERSON: TextToItemType = T_ITEM_PERSON Case Else: TextToItemType = T_ITEM_UNKNOWN End Select End Function Public Function TextToSubjectType(sText$) As TSubjectType Select Case sText Case "Субъекты решения проблемы": TextToSubjectType = T_SUBJECT_SOLVER Case "Субъекты проблемной деятельности": TextToSubjectType = T_SUBJECT_INVOLVED Case "Потенциальные субъекты": TextToSubjectType = T_SUBJECT_POTENTIAL Case Else: TextToSubjectType = T_SUBJECT_POTENTIAL End Select End Function