Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 511f06811a4e974f…

MALICIOUS

Office (OOXML)

2.05 MB Created: 2014-06-30 09:48:09 UTC Authoring application: Microsoft Excel 12.0000 First seen: 2021-06-17
MD5: 7eb0197dfd43558a374b363ff2e42a2b SHA-1: d2a277e1e62510ae240984f8c1c35da0bda06e91 SHA-256: 511f06811a4e974f61b3acb21ef96bbd6a887cc2395df795e6d36f8566390c3e
390 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1218.011 System Binary Proxy Execution: Rundll32 T1105 Ingress Tool Transfer T1203 Exploitation for Client Execution

This Excel document contains a Workbook_Open macro that executes obfuscated VBA code. The script utilizes WScript.Shell and WMI (Win32_Process.Create) to launch processes, indicating an intent to download and execute a second-stage payload. The presence of ActiveX event handlers and Excel4 macro execution further suggests a complex stager designed for initial execution and payload delivery.

Heuristics 10

  • VBA project inside OOXML medium 8 related findings OOXML_VBA
    Document contains a VBA project — VBA macros present
  • Potential Shell call in VBA critical OLE_VBA_SHELL
    Potential Shell call in VBA
    Matched line in script
            Application.DisplayAlerts = True
            VBA.Shell ("explorer.exe " & e), vbNormalFocus
            Exit Sub
  • WScript.Shell usage critical OLE_VBA_WSCRIPT
    WScript.Shell usage
    Matched line in script
                q1 = w1(4)
                CreateObject("wscript.Shell").Run VBA.Chr(34) & q1 & VBA.Chr(34)
            End If
  • VBA WMI Win32_Process launcher critical OLE_VBA_WMI_PROCESS_CREATE
    VBA macro builds or references a WMI moniker for Win32_Process and invokes .Create to start a command. This is a high-confidence macro execution chain that often hides the WMI class name through string concatenation or helper functions.
    Matched line in script
        Else
            Set FSO = CreateObject("Scripting.FileSystemObject")
            Set FL = FSO.CreateTextFile(Application.ThisWorkbook.Path & "\1.txt")
  • Obfuscated auto-exec VBA loader critical OLE_VBA_OBFUSCATED_AUTOEXEC_LOADER
    Auto-exec VBA reconstructs strings with a heavy custom decoder (numeric char-array, repeated hex-string decode, or junk-token Replace removal) and feeds them to a COM-instantiation or execution sink. This obfuscated-loader shape keeps CreateObject/Shell/URL indicators out of the macro source.
    Matched line in script
        Else
            Set FSO = CreateObject("Scripting.FileSystemObject")
            Set FL = FSO.CreateTextFile(Application.ThisWorkbook.Path & "\1.txt")
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
        Else
            Set FSO = CreateObject("Scripting.FileSystemObject")
            Set FL = FSO.CreateTextFile(Application.ThisWorkbook.Path & "\1.txt")
  • GetObject call high OLE_VBA_GETOBJ
    GetObject call
    Matched line in script
        Dim Pochta As Object
        Set Pochta = GetObject(, "OUTLOOK.Application")
        If Pochta Is Nothing Then
  • VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXEC
    Compiled VBA/cache stream contains an auto-execution token together with shell/download/object-execution tokens. This catches p-code-only or source-extraction-failure macro documents where visible source is unavailable.
  • Workbook_Open macro low OLE_VBA_WBOPEN
    Workbook_Open macro
    Matched line in script
    End Sub
    Private Sub Workbook_Open()
        Application.ScreenUpdating = False
  • Embedded URL info EMBEDDED_URL
    One or more URLs were extracted from the document. The URL itself is not a detection — see the per-URL labels for which channel (macro, JS, link annotation, document body, ...) reached each URL.
    URL https://e-xcel.ru/index.php/novosti In document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/nadstrojka/udalit-kontekstnoe-menyu-nadstrojkiIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/nadstrojka/sozdat-kontekstnoe-menyu-nadstrojkiIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/svodnye/filtr-po-diapazonu-yacheekIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/yachejki/kirillitsa-latinitsaIn document text (OOXML body / shared strings)
    • http://e-xcel.ru/index.php/joxcel/spravkaIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/tablitsy/abc-analizIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/yachejki/preobrazovat-chislo-v-chislo-propisyuIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/tablitsy/gruppirovka-po-datam-i-vremeniIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/yachejki/preobrazovat-datu-v-tekstIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/tablitsy/sozdat-plavayushchij-diapazonIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/diagrammy/matrichnaya-diagrammaIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/diagrammy/izmenit-nazvaniya-ryadovIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/yachejki/dobavit-tekst-k-yachejkeIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/diagrammy/izmenit-podpisi-ryadaIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/diagrammy/sluchajnyj-tsvet-dlya-elementov-ryadaIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/diagrammy/odinakovyj-tsvet-dlya-vsekh-ryadovIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/rassylka/sformirovat-spisok-rassylkiIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/formuly/zamenit-formuly-na-znacheniyaIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/yachejki/ob-edinit-yachejki-bez-poteri-dannykhIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/yachejki/sozdat-numerovannyj-spisokIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/kniga/sozdat-oglavlenie-knigiIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/yachejki/sgenerirovat-parol-v-vydelennykh-yachejkakhIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/yachejki/predlozhenieIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/rassylka/rassylka-tolko-ms-outlookIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/listy/poluchit-spisok-listov-knigiIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/tablitsy/ob-edinit-tablitsyIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/tablitsy/transformirovat-tablitsu-v-massivIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/tablitsy/transformirovat-tsvetnuyu-tablitsu-v-massivIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/yachejki/udalit-chast-teksta-iz-yachejkiIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/yachejki/udalit-vse-nepechataemye-simvoly-iz-tekstaIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/yachejki/szhat-probelyIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/listy/modul-upravleniya-listamiIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/khitrosti/kak-ustanovit-zashchitu-na-vse-listy-knigiIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/listy/vstavit-listy-iz-drugoj-knigiIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/nadstrojka/parametry-nadstrojkiIn document text (OOXML body / shared strings)
    • https://e-xcel.ruIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/tablitsy/soputstvuyushchie-tovaryIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/svodnye/modul-upravleniya-polyamiIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/svodnye/prevratit-istochnik-v-diapazonIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/svodnye/zadat-prifiksy-sokrashchenijIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/yachejki/ostavit-v-yachejke-tolko-tekst-udalit-vse-chislaIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/komandy/yachejki/ostavit-v-yachejke-tolko-chisla-udalit-ves-tekstIn document text (OOXML body / shared strings)
    • http://e-xcel.ru/joxcel#donateIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/treningi/prodvinutyj-kurs-ms-excelIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/svodnye-tablitsy-ms-excelIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/diagrammy-ms-excelIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/index.php/joxcelIn document text (OOXML body / shared strings)
    • https://e-xcel.ru/joxcel#downloadIn document text (OOXML body / shared strings)
    • http://www.cbr.ru/currency_base/daily/?UniDbQuery.Posted=True&UniDbQuery.To=In document text (OOXML body / shared strings)
    +8 more URL(s)

Extracted artifacts 2

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source from OOXML) 1774894 bytes
SHA-256: 97e025465f6bf66076682f3fc56503b72d41aa76088498beebb62093acbb7193
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ЭтаКнига"
Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Option Explicit
Dim xcelSheet As New xcel_Class5
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next
    Set xcelSheet.xcelExcel = Nothing
    Set Tekstx = Nothing
    Set OshibkiDiap = Nothing
    Erase TekstMassiv()
    Erase TekstMassiv1()
    Erase TekstAddress()
    If VBA.IsArray(OshibARRAY1) = True Then
        Erase OshibARRAY1
    End If
    If VBA.IsArray(OshibARRAY) = True Then
        Erase OshibARRAY
    End If
    Set OshibDiap = Nothing
    If VBA.IsArray(OshibRArr) = True Then
        Erase OshibRArr
    End If
    If VBA.IsArray(OshibRArr1) = True Then
        Erase OshibRArr1
    End If
    Erase TTNn()
    If VBA.IsArray(TTNMassiv) = True Then
        Erase TTNMassiv
    End If
    If VBA.IsArray(TTNMassiv1) = True Then
        Erase TTNMassiv1
    End If
    Erase TTNMassiv2()
    If VBA.IsArray(TTNn1) = True Then
        Erase TTNn1
    End If
    Dim q As CommandBar
    For Each q In Application.CommandBars
        If q.Type = msoBarTypePopup Then
            q.Reset
            q.Enabled = True
        End If
    Next q
    Application.OnKey "^{m}"
    Application.CommandBars("Cell").Reset
    Application.CommandBars("Row").Reset
    Application.CommandBars("Column").Reset
    Application.CommandBars("Ply").Reset
    Call xcelУбитьСправку
    Dim FSO As Object, FL As Object
    If ЁXCEL_Файл2(Application.ThisWorkbook.Path & "\1.txt") = True Then
        Call xcelЭкспорт
    Else
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Set FL = FSO.CreateTextFile(Application.ThisWorkbook.Path & "\1.txt")
        FL.Close
        Set FSO = Nothing
        Set FL = Nothing
        Call xcelЭкспорт
    End If
    GPut = ThisWorkbook.Path
    If VBA.Dir(GPut & "\ОтменаГруппировки.xlsx") <> "" Then
        VBA.Kill (GPut & "\ОтменаГруппировки.xlsx")
    End If
    If VBA.Dir(GPut & "\Vznak.png") <> "" Then
        VBA.Kill (GPut & "\Vznak.png")
    End If
    Cancel = False
    Application.ThisWorkbook.Saved = True
End Sub
Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    On Error Resume Next
'    Application.ThisWorkbook.IsAddin = False
    Dim FSO As Object, FL As Object
    If ЁXCEL_Файл2(Application.ThisWorkbook.Path & "\1.txt") = True Then
        Call xcelИмпорт
    Else
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Set FL = FSO.CreateTextFile(Application.ThisWorkbook.Path & "\1.txt")
        FL.Close
        Set FSO = Nothing
        Set FL = Nothing
        Call xcelЭкспорт
    End If
'    Application.ThisWorkbook.IsAddin = True
    Call xcelСоздатьСправку
    Set xcelSheet.xcelExcel = Excel.Application
    Call xcelKontekstMenu
    If Application.ThisWorkbook.Worksheets(1).Cells(14, 1) = 1 And VBA.CLng(Application.ThisWorkbook.Worksheets(1).Cells(18, 1).Value) < VBA.CLng(VBA.Date()) Then
        Call xcelПроверитьВерсию1
    End If
    If VBA.CLng(Application.ThisWorkbook.Worksheets(1).Cells(18, 1).Value) < VBA.CLng(VBA.Date()) Then
        Call xcelUved
        Application.ThisWorkbook.Worksheets(1).Cells(18, 1).Value = VBA.CLng(VBA.Date())
    End If
    Application.OnKey "^{m}", "xcelГруппироватьБезПотери1"
    Application.Calculation = xlAutomatic
End Sub
Private Sub xcelУбитьСправку()
    #If VBA7 Then
        Dim Arg As Variant
        Arg = Array("", "")
        Application.MacroOptions "ЁXCEL_Сцепить", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Пароль", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Транслит", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ЧислоПрописью", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_ТекстФормулы", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_КолСлов", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Предложение", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ВПР", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Соответствие", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Email", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_ИмяЛиста", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ИмяКниги", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_НДС", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Прим", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Путь", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ЦветЗаливки", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_ЦветТекста", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_КурсЦБ", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ПутьФ", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Дата", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_ТипДанных", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Шрифт", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_ШрифтР", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Формат", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Ссылка", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_User", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Автор", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Версия", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_КолЛистов", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Строка", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Столбец", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_НазСтроки", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_НазСтолбца", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Квартал", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ДеньНед", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Отделить", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_СегодняСТ", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Проверить", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Шаблон", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Начертание", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Проговорить", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁХCEL_Проговорить", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Напечатан", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Создан", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Сохранен", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ДатаПрописью", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_УбратьЛат", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_УбратьКир", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Гороскоп", "", , , , , "Определенные пользователем", , , , Arg  'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Заменить", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Числа", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Текст", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_РВЗаменить", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_РВИзвлечь", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_РВКолСимв", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_РВНомер", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_РВПроверить", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_РВСчёт", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_КолПовторов", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_РазмерКарт", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Разбить", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_РазбитьКол", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Стаж", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_СтажД", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_СтажДней", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_КартПрим", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁХCEL_КартПрим", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Папка", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Файл", "", , , , , "Определенные пользователем", , , , Arg
        Application.MacroOptions "ЁXCEL_Отступы", "", , , , , "Определенные пользователем", , , , Arg
    #Else
        Application.MacroOptions "ЁXCEL_Сцепить", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Пароль", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Транслит", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ЧислоПрописью", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_ТекстФормулы", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_КолСлов", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Предложение", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ВПР", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Соответствие", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Email", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_ИмяЛиста", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ИмяКниги", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_НДС", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Прим", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Путь", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ЦветЗаливки", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_ЦветТекста", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_КурсЦБ", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ПутьФ", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Дата", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_ТипДанных", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Шрифт", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_ШрифтР", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Формат", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Ссылка", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_User", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Автор", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Версия", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_КолЛистов", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Строка", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Столбец", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_НазСтроки", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_НазСтолбца", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Квартал", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ДеньНед", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Отделить", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_СегодняСТ", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Проверить", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Шаблон", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Начертание", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Проговорить", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁХCEL_Проговорить", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Напечатан", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Создан", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Сохранен", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ДатаПрописью", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_УбратьЛат", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_УбратьКир", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Гороскоп", "", , , , , "Определенные пользователем" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Заменить", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Числа", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Текст", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_РВЗаменить", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_РВИзвлечь", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_РВКолСимв", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_РВНомер", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_РВПроверить", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_РВСчёт", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_КолПовторов", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_РазмерКарт", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Разбить", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_РазбитьКол", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Стаж", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_СтажД", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_СтажДней", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_КартПрим", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁХCEL_КартПрим", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Папка", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Файл", "", , , , , "Определенные пользователем"
        Application.MacroOptions "ЁXCEL_Отступы", "", , , , , "Определенные пользователем"
    #End If
End Sub
Private Sub xcelСоздатьСправку()
    #If VBA7 Then
        Dim Arg As Variant
        Arg = Array("Диапазон ячеек с текстом", "0(Пробел) 1(Без разделителя) 2(;) 3(,) 4(/) 5(-) 6(:) 7(+) 8(Перенос строки) 9(|)", " 1 - Сначала по строке;" & VBA.Chr(10) & " 2 - Сначала по столбцу") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Сцепить", "Функция сцепляет текст из диапазона ячеек", , , , , "ЁXCEL", , , , Arg  'ЁXCEL_FREE
        Arg = Array("Количество символов пароля (от 1 до 50)") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Пароль", "Функция генерирует пароль, состоящий из прописных и заглавных английских букв, цифр и спецсимволов", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Ячейка с текстом") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Транслит", "Функция заменяет русские буквы на латинские (АБВГД -> ABVGD)", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Ячейка с числом", "1 - дописывает рубли и копейки;" & VBA.Chr(10) & "2 - без рублей и копеек (теряется дробная часть)", "1 - коп.;" & VBA.Chr(10) & "2 - копеек", "Вариант округления:" & VBA.Chr(10) & " 1 - 12.999 = 13.00 (в большую сторону)" & VBA.Chr(10) & " 2 - 12.999 = 12.99 (в меньшую сторону)")
        Application.MacroOptions "ЁXCEL_ЧислоПрописью", "Возвращает число написанное текстом (123 -> сто двадцать три)", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с формулой", "Вариант отображения формулы:" & VBA.Chr(10) & " 0 - Русское название;" & VBA.Chr(10) & " 1 - Английское название")
        Application.MacroOptions "ЁXCEL_ТекстФормулы", "Функция показывает синтаксис формулы введенной в ячейку", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "0 - отдельные знаки препинания не будут учитываться;" & VBA.Chr(10) & "1 - отдельные знаки препинания будут учитываться") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_КолСлов", "Функция считает количество слов в ячейке", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Ячейка с текстом", "Знак препинания в конце:" & VBA.Chr(10) & "1(.) 2(!) 3(?) 4(...) 5(:) 6(;) 7(без знака)") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Предложение", "Превращает текст ячейки в предложение (мама мыла раму -> Мама мыла раму.)", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Что ищем", "Где ищем", "Номер столбца, который подставляем.")
        Application.MacroOptions "ЁXCEL_ВПР", "Находит в таблице значения, которые не имеют точного совпадения с исходными", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Текст №1", "Текст №2", "1 - Определяет, насколько Текст №1 соответствует Тексту № 2;" & VBA.Chr(10) & "2 - Определяет, насколько тексты идентичны")
        Application.MacroOptions "ЁXCEL_Соответствие", "Определяет соответствие двух текстов в %", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с адресом электронной почты")
        Application.MacroOptions "ЁXCEL_Email", "Определяет валидность адреса электронной почты", , , , , "ЁXCEL", , , , Arg
        Application.MacroOptions "ЁXCEL_ИмяЛиста", "Возвращает имя текущего листа", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ИмяКниги", "Возвращает имя текущей рабочей книги", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Arg = Array("Ячейка с суммой", "Вариант работы функции:" & VBA.Chr(10) & " 1 - возвращает сумму НДС;" & VBA.Chr(10) & " 2 - возвращает сумму без НДС", "Ставка НДС:" & VBA.Chr(10) & " 1 - НДС 1;" & VBA.Chr(10) & " 2 - НДС 2") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_НДС", "Возвращает сумму НДС или сумму без НДС", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Ячейка с примечанием")
        Application.MacroOptions "ЁXCEL_Прим", "Возвращает текст примечания указанной ячейки", , , , , "ЁXCEL", , , , Arg
        Application.MacroOptions "ЁXCEL_Путь", "Возвращает полный путь к папке текущей рабочей книги", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Ячейка, для которой необходимо определить цвет заливки", "1 - цифровой код (255);" & VBA.Chr(10) & "2 - RGB код (255,000,000);" & VBA.Chr(10) & "3 - HTML код (#FF0000)")
        Application.MacroOptions "ЁXCEL_ЦветЗаливки", "Возвращает цифровой код цвета заливки указанной ячейки", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка, для которой необходимо определить цвет текста", "1 - цифровой код (255);" & VBA.Chr(10) & "2 - RGB код (255,000,000);" & VBA.Chr(10) & "3 - HTML код (#FF0000)")
        Application.MacroOptions "ЁXCEL_ЦветТекста", "Возвращает цифровой код цвета текста указанной ячейки", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Дата, на которую необходимо вывести курс", "Код валюты в формате 'USD'") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_КурсЦБ", "Возвращает курс ЦБРФ на заданную дату для заданной валюты. Необходимо подключение к интернету", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ПутьФ", "Возвращает полный путь к текущей рабочей книге", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Ячейка содержащая дату")
        Application.MacroOptions "ЁXCEL_Дата", "Определяет является ли значение датой", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с данными") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ТипДанных", "Определяет тип данных в ячейке", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Ячейка с данными")
        Application.MacroOptions "ЁXCEL_Шрифт", "Возвращает название шрифта указанной ячейки", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с данными")
        Application.MacroOptions "ЁXCEL_ШрифтР", "Возвращает размер шрифта указанной ячейки", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с данными", "Вариант отбражение формата:" & VBA.Chr(10) & "0 - Русское название;" & VBA.Chr(10) & "1 - Английское название")
        Application.MacroOptions "ЁXCEL_Формат", "Возвращает формат данных указанной ячейки", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с гиперссылкой")
        Application.MacroOptions "ЁXCEL_Ссылка", "Возвращает адрес гиперссылки указанной ячейки", , , , , "ЁXCEL", , , , Arg
        Application.MacroOptions "ЁXCEL_User", "Возвращает имя пользователя", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Автор", "Возвращает имя автора текущей рабочей книги", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Версия", "Возвращает версию MS Excel", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("0 - общее количество листов; 1 - количество рабочих листов;" & VBA.Chr(10) & "2 - количество скрытых листов; 3 - количество защищенных листов") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_КолЛистов", "Возвращает количество листов текущей рабочей книги", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Строка с данными", "Вариант работы функции:" & VBA.Chr(10) & "0 - первое занчение;" & VBA.Chr(10) & "1 - последнее занчение") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Строка", "Возвращает первое или последнее значение из указанной строки", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Столбец с данными", "Вариант работы функции:" & VBA.Chr(10) & "0 - первое занчение;" & VBA.Chr(10) & "1 - последнее занчение") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Столбец", "Возвращает первое или последнее значение из указанного столбца", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Строка с названиями столбцов", "Строка с данными", "Вариант работы функции:" & VBA.Chr(10) & "0 - максимальное значение; 1 - минимальное значение;" & VBA.Chr(10) & "2 - первое значение; 3 - последнее значение")
        Application.MacroOptions "ЁXCEL_НазСтолбца", "Возвращает название столбца, который содержит необходимые данные", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Столбец с названиями строк", "Столбец с данными", "Вариант работы функции:" & VBA.Chr(10) & "0 - максимальное значение; 1 - минимальное значение;" & VBA.Chr(10) & "2 - первое значение; 3 - последнее значение")
        Application.MacroOptions "ЁXCEL_НазСтроки", "Возвращает название строки, которая содержит необходимые данные", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с датой", "Вариант работы функции:" & VBA.Chr(10) & "0 - понедельник, вторник...;" & VBA.Chr(10) & "1 - Пн, Вт...") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ДеньНед", "Возвращает текстовое название дня недели для указанной даты", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Ячейка с датой") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Квартал", "Возвращает номер квартала для указанной даты", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Ячейка с датой и временем", "Вариант работы функции:" & VBA.Chr(10) & "0 - возвращает дату;" & VBA.Chr(10) & "1 - возвращает время")
        Application.MacroOptions "ЁXCEL_Отделить", "Отделяет время от даты или дату от времени", , , , , "ЁXCEL", , , , Arg
        Application.MacroOptions "ЁXCEL_СегодняСТ", "Возвращает текущую дату. Формула не пересчитывается при пресчете листа", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Ячейка с текстом", "0 - проверяет латиницу;" & VBA.Chr(10) & "1 - проверяет кириллицу;" & VBA.Chr(10) & "2 - проверяет числа")
        Application.MacroOptions "ЁXCEL_Проверить", "Проверяет текст ячейки на наличие в нем латиницы, кириллицы или чисел", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с данными", "Ячейка с шаблоном")
        Application.MacroOptions "ЁXCEL_Шаблон", "Проверяет соответствуют ли данные шаблону", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "0 - проверяет полужирный;" & VBA.Chr(10) & "1 - проверяет курсив;" & VBA.Chr(10) & "2 - проверяет подчеркнутый")
        Application.MacroOptions "ЁXCEL_Начертание", "Проверяет начертание текста указанной ячейки", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с данными") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Проговорить", "Проговаривает возвращаемые данные", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Ячейка с данными") 'ЁXCEL_FREE
        Application.MacroOptions "ЁХCEL_Проговорить", "Проговаривает возвращаемые данные", , , , , "_ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Напечатан", "Возвращает дату и время последнего распечатывания текущей рабочей книги", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Сохранен", "Возвращает дату и время последнего сохранения текущей рабочей книги", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Создан", "Возвращает дату и время создания текущей рабочей книги", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Ячейка с датой", "0 - Первое января двухтысячного года;" & VBA.Chr(10) & "1 - Первого января двухтысячного года;" & VBA.Chr(10) & "2 - 01 января 2000 года")
        Application.MacroOptions "ЁXCEL_ДатаПрописью", "Возвращает дату, написанную текстом (01/01/2000 -> Первое января двухтысячного года)", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "0 - убирает слова с латиницей;" & VBA.Chr(10) & "1 - убирает латиницу из слов;" & VBA.Chr(10) & "2 - меняет латиницу на кириллицу")
        Application.MacroOptions "ЁXCEL_УбратьЛат", "Убирает из текста латиницу", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "0 - убирает слова с кириллицей;" & VBA.Chr(10) & "1 - убирает кириллицу из слов;" & VBA.Chr(10) & "2 - меняет кириллицу на латиницу")
        Application.MacroOptions "ЁXCEL_УбратьКир", "Убирает из текста кириллицу", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с датой", "0 - возвращает знак зодиака;" & VBA.Chr(10) & "1 - возвращает знак китайского гороскопа") 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Гороскоп", "Возвращает знак зодиака или знак китайского гороскопа по дате", , , , , "ЁXCEL", , , , Arg 'ЁXCEL_FREE
        Arg = Array("Ячейка с текстом", "Что нужно заменить (диапазон ячеек)", "Чем нужно заменить (диапазон ячеек)")
        Application.MacroOptions "ЁXCEL_Заменить", "Заменяет в указанной ячейке все символы или сочетания из одного диапазона ячеек на символы или сочетания из другого диапазона ячеек", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "Разделитель:" & VBA.Chr(10) & "0(нет), 1(:), 2(,), 3(/), 4(_), 5(пробел), 6(~), 7(-), 8('), 9(;)", "Присутствуют дробные числа:" & VBA.Chr(10) & "0(да), 1(нет)")
        Application.MacroOptions "ЁXCEL_Числа", "Убирает весь текст, оставляет только числа", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "Разделитель:" & VBA.Chr(10) & "0(нет), 1(:), 2(,), 3(/), 4(_), 5(пробел), 6(~), 7(-), 8('), 9(;)")
        Application.MacroOptions "ЁXCEL_Текст", "Убирает все числа, оставляет только текст", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "Регулярное выражение, например: [а-яё]+", "Чем заменяем подстроки", "0 или ЛОЖЬ - не учитывать;" & VBA.Chr(10) & "1 или ИСТИНА - учитывать", "0 или ЛОЖЬ - ищем до первого вхождения;" & VBA.Chr(10) & "1 или ИСТИНА - ищем до последнего вхождения")
        Application.MacroOptions "ЁXCEL_РВЗаменить", "Заменяет подстроки указанным значением", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "Регулярное выражение, например: [а-яё]+", "Номер подстроки: 0 - все подстроки; 1 - первая подстрока; '1,2' - первая и вторая подстроки; '?' - поcледняя подстрока", "0 или ЛОЖЬ - не учитывать;" & VBA.Chr(10) & "1 или ИСТИНА - учитывать", "Знак разделителя между подстроками")
        Application.MacroOptions "ЁXCEL_РВИзвлечь", "Возвращает указанные подстроки", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "Регулярное выражение, например: [а-яё]+", "Номер подстроки", "0 или ЛОЖЬ - не учитывать;" & VBA.Chr(10) & "1 или ИСТИНА - учитывать")
        Application.MacroOptions "ЁXCEL_РВКолСимв", "Возвращает длину подстроки по номеру", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "Регулярное выражение, например: [а-яё]+", "Номер подстроки", "0 или ЛОЖЬ - не учитывать;" & VBA.Chr(10) & "1 или ИСТИНА - учитывать")
        Application.MacroOptions "ЁXCEL_РВНомер", "Возвращает порядковый номер первого символа подстроки", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "Регулярное выражение, например: [а-яё]+", "0 или ЛОЖЬ - не учитывать;" & VBA.Chr(10) & "1 или ИСТИНА - учитывать")
        Application.MacroOptions "ЁXCEL_РВПроверить", "Проверяет текст на наличие подстрок. Возвращает ИСТИНА или ЛОЖЬ", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "Регулярное выражение, например: [а-яё]+", "0 или ЛОЖЬ - не учитывать;" & VBA.Chr(10) & "1 или ИСТИНА - учитывать")
        Application.MacroOptions "ЁXCEL_РВСчёт", "Возвращает количество подстрок", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка со значением", "Диапазон ячеек с текстом")
        Application.MacroOptions "ЁXCEL_КолПовторов", "Подсчитывает сколько раз значение встречается в диапазоне ячеек", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Абсолютный путь к файлу", "0 - возврашает ширину;" & VBA.Chr(10) & "1 - возврашает высоту")
        Application.MacroOptions "ЁXCEL_РазмерКарт", "Возврашает ширину или высоту графического файла в px. по абсолютному пути (PNG, JPG, GIF, ICO, BMP, TIF)", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "Знак разделителя", "Индекс возвращаемой подстроки:" & VBA.Chr(10) & "1 - первая, 2 - вторая, ? - последняя.", "0 - оставить лишние пробелы;" & VBA.Chr(10) & "1 - убрать лишние пробелы")
        Application.MacroOptions "ЁXCEL_Разбить", "Разбивает текст на отдельные подстроки по знаку разделителя и возвращает заданную подстроку по индексу", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ячейка с текстом", "Знак разделителя")
        Application.MacroOptions "ЁXCEL_РазбитьКол", "Разбивает текст на отдельные подстроки по знаку разделителя и возвращает количество подстрок", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Начальная дата", "Конечная дата", "Формат отображения:" & VBA.Chr(10) & "0 - '1 год 0 месяцев 0 дней';" & VBA.Chr(10) & "1 - '1 год'")
        Application.MacroOptions "ЁXCEL_Стаж", "На основе начальной и конечной даты возвращает стаж в виде: '2 года 3 месяца 10 дней'", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Количество отработанных дней", "Среднеей количество дней в году", "Среднеей количество дней в месяце", "Формат отображения:" & VBA.Chr(10) & "0 - '1 год 0 месяцев 0 дней';" & VBA.Chr(10) & "1 - '1 год'")
        Application.MacroOptions "ЁXCEL_СтажД", "На основе количества отработанных дней возвращает стаж в виде: '2 года 3 месяца 10 дней'", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Стаж в виде: '2 года 3 месяца 10 дней'", "Среднее количество дней в году", "Среднее количество дней в месяце")
        Application.MacroOptions "ЁXCEL_СтажДней", "На основе стажа в виде: '2 года 3 месяца 10 дней' возврашает количество отработанных дней", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Абсолютный путь к файлу в виде: C:\test\test.png", "Значение, котрое будет возвращать функция", "Размер картинки в %, не более 100")
        Application.MacroOptions "ЁХCEL_КартПрим", "На основе абсолютного пути к файлу вставляет картинку в примечание ячейки", , , , , "_ЁXCEL", , , , Arg
        Arg = Array("Абсолютный путь к файлу в виде: C:\test\test.png", "Значение, котрое будет возвращать функция", "Размер картинки в %, не более 100")
        Application.MacroOptions "ЁXCEL_КартПрим", "На основе абсолютного пути к файлу вставляет картинку в примечание ячейки", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Абсолютный путь к папке в виде: C:\test")
        Application.MacroOptions "ЁXCEL_Папка", "На основе абсолютного пути к папке определяет ее наличие", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Абсолютный путь к папке в виде: C:\test\test.png")
        Application.MacroOptions "ЁXCEL_Файл", "На основе абсолютного пути к файлу определяет его наличие", , , , , "ЁXCEL", , , , Arg
        Arg = Array("Ссылка на ячейку с текстом")
        Application.MacroOptions "ЁXCEL_Отступы", "Определяет количество отступов перед текстом в указанной ячейке", , , , , "ЁXCEL", , , , Arg
    #Else
        Application.MacroOptions "ЁXCEL_Сцепить", _
                    "Функция сцепляет текст из диапазона ячеек." _
                    & VBA.Chr(10) & "Диапазон - диапазон ячеек." & VBA.Chr(10) & "Разделитель:" _
                    & VBA.Chr(10) & "0(Пробел) 1(Без разделителя) 2(;) 3(,) 4(/) 5(-) 6(:) 7(+) 8(Перенос строки) 9(|)" & VBA.Chr(10) & "Порядок:" & VBA.Chr(10) & _
                    "   1 - Сначала по строке;" & VBA.Chr(10) & _
                    "   2 - Сначала по столбцу", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Пароль", _
                    "Функция генерирует пароль, состоящий из прописных и заглавных английских букв, цифр и спецсимволов." _
                    & VBA.Chr(10) & "Длина - количество символов пароля (целое число от 1 до 50)", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Транслит", _
                    "Функция заменяет русские буквы на латинские (АБВГД -> ABVGD)." & VBA.Chr(10) & _
                    "Ячейка - ячейка с текстом", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ЧислоПрописью", _
                    "Функция переводит число в текст (123 -> сто двадцать три)." _
                    & VBA.Chr(10) & "Число - исходное число." & VBA.Chr(10) _
                    & "ФорматПодписей: 1 - добавляет рубли и копейки; 2 - без рублей и копеек." _
                    & VBA.Chr(10) & "ФорматКоп: 1 - коп.; 2 - копеек." & VBA.Chr(10) _
                    & "Округление: 1 - 1,999 = 2; 2 - 1,999 = 1,99.", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_ТекстФормулы", _
                    "Функция показывает синтаксис формулы введенной в ячейку." _
                    & VBA.Chr(10) & "Ячейка - ячейка содержащая формулу." & VBA.Chr(10) & "Вариант - вариант отображения функции:" _
                    & VBA.Chr(10) & " 0 - Русское название;" & VBA.Chr(10) & " 1 - Английское название", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_КолСлов", _
                    "Функция считает количество слов в ячейке." _
                    & VBA.Chr(10) & "Ячейка - ячейка содержащая текст." _
                    & VBA.Chr(10) & "Знаки:" _
                    & VBA.Chr(10) & "0 - отдельные знаки препинания не будут учитываться;" _
                    & VBA.Chr(10) & "1 - отдельные знаки препинания будут учитываться", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Предложение", _
                    "Превращает текст ячейки в предложение (мама мыла раму -> Мама мыла раму.)." _
                    & VBA.Chr(10) & "Ячейка - ячейка с текстом." & VBA.Chr(10) & _
                    "Знак - знак препинания в конце предложения:" & VBA.Chr(10) & _
                    "1 - точка" & VBA.Chr(10) & "2 - !" & VBA.Chr(10) & "3 - ?" & _
                    VBA.Chr(10) & "4 - многоточие" & VBA.Chr(10) & "5 - :" & VBA.Chr(10) _
                    & "6 - ;" & VBA.Chr(10) & "7 - нет", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ВПР", _
                    "Находит в таблице значения, которые не имеют точного совпадения с исходными." _
                    & VBA.Chr(10) & "Текст - Что ищем?" & VBA.Chr(10) & _
                    "Таблица - Где ищем?" & VBA.Chr(10) & _
                    "Столбец - Номер столбца, который подставляем", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_Соответствие", _
                    "Определяет соответствие двух текстов в %." _
                    & VBA.Chr(10) & "Текст1 - Ячейка с первым текстом." & VBA.Chr(10) & _
                    "Текст2 - Ячейка со вторым текстом." & VBA.Chr(10) & _
                    "Вариант:" & VBA.Chr(10) & "1 - Определяет, насколько Текст№1 соответствует Тексту№2;" & VBA.Chr(10) & "2 - Определяет, насколько два текста идентичны", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_Email", _
                    "Определяет валидность адреса электронной почты." _
                    & VBA.Chr(10) & "Ячейка - ячейка с адресом электронной почты", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_ИмяЛиста", "Возвращает имя текущего листа.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ИмяКниги", "Возвращает имя текущей рабочей книги.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_НДС", "Возвращает сумму НДС или сумму без НДС." & VBA.Chr(10) & "Ячейка - ячейка с суммой." & VBA.Chr(10) & _
                "Вариант - вариант работы функциии:" & VBA.Chr(10) & " 1 - возвращает сумму НДС;" & VBA.Chr(10) & _
                " 2 - возвращает сумму без НДС." & VBA.Chr(10) & "НДС - ставка НДС:" & VBA.Chr(10) & _
                " 1 - 18%;" & VBA.Chr(10) & " 2 - 10%.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Путь", "Возвращает полный путь к папке текущей рабочей книги.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Прим", "Возвращает текст примечания указанной ячейки." & VBA.Chr(10) & _
                    "Ячейка - ячейка с примечанием.", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_ЦветЗаливки", "Возвращает цифровой код цвета заливки указанной ячейки." & _
                    VBA.Chr(10) & "Ячейка - ячейка, для которой необходимо определить цвет заливки." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & "1 - цифровой код (255);" & _
                    VBA.Chr(10) & "2 - RGB код (255,000,000);" & _
                    VBA.Chr(10) & "3 - HTML код (#FF0000)", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_ЦветТекста", "Возвращает цифровой код цвета текста указанной ячейки." & _
                    VBA.Chr(10) & "Ячейка - ячейка, для которой необходимо определить цвет текста." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & "1 - цифровой код (255);" & _
                    VBA.Chr(10) & "2 - RGB код (255,000,000);" & _
                    VBA.Chr(10) & "3 - HTML код (#FF0000)", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_КурсЦБ", "Возвращает курс ЦБРФ на заданную дату для заданной валюты. Необходимо подключение к интернету" & _
                    VBA.Chr(10) & "Дата - дата, на которую необходимо вывести курс." & _
                    VBA.Chr(10) & "Валюта - код валюты в формате 'USD'", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ПутьФ", "Возвращает полный путь к текущей рабочей книге.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Дата", "Определяет является ли значение датой." & _
                    VBA.Chr(10) & "Ячейка - ячейка содержащая дату", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_ТипДанных", "Определяет тип данных в ячейке." & _
                    VBA.Chr(10) & "Ячейка - ячейка с данными", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Шрифт", "Возвращает название шрифта указанной ячейки." & _
                    VBA.Chr(10) & "Ячейка - ячейка с данными", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_ШрифтР", "Возвращает размер шрифта указанной ячейки." & _
                    VBA.Chr(10) & "Ячейка - ячейка с данными", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_Формат", "Возвращает формат данных указанной ячейки." & _
                    VBA.Chr(10) & "Ячейка - ячейка с данными." & _
                    VBA.Chr(10) & "Вариант - вариант отображения формата:" & _
                    VBA.Chr(10) & " 0 - Русское название;" & _
                    VBA.Chr(10) & " 1 - Английское название", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_Ссылка", "Возвращает адрес гиперссылки указанной ячейки." & _
                    VBA.Chr(10) & "Ячейка - ячейка с гиперссылкой", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_User", "Возвращает имя пользователя.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Автор", "Возвращает имя автора текущей рабочей книги.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Версия", "Возвращает версию MS Excel.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_КолЛистов", "Возвращает количество листов текущей рабочей книги." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & " 0 - общее количество листов;" & _
                    VBA.Chr(10) & " 1 - количество рабочих листов;" & _
                    VBA.Chr(10) & " 2 - количество скрытых листов;" & _
                    VBA.Chr(10) & " 3 - количество защищенных листов", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Столбец", "Возвращает первое или последнее значение из указанного столбца." & _
                    VBA.Chr(10) & "Столбец - столбец с данными." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & " 0 - первое значение;" & _
                    VBA.Chr(10) & " 1 - последнее значение", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Строка", "Возвращает первое или последнее значение из указанной строки." & _
                    VBA.Chr(10) & "Строка - строка с данными." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & " 0 - первое значение;" & _
                    VBA.Chr(10) & " 1 - последнее значение", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_НазСтолбца", "Возвращает название столбца, который содержит необходимые данные." & _
                    VBA.Chr(10) & "Названия - строка с названиями столбцов." & _
                    VBA.Chr(10) & "Значения - строка с данными." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & " 0 - максимальное;" & _
                    VBA.Chr(10) & " 1 - минимальное;" & _
                    VBA.Chr(10) & " 2 - первое;" & _
                    VBA.Chr(10) & " 3 - последнее", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_НазСтроки", "Возвращает название строки, которая содержит необходимые данные." & _
                    VBA.Chr(10) & "Названия - столбец с названиями строк." & _
                    VBA.Chr(10) & "Значения - столбец с данными." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & " 0 - максимальное;" & _
                    VBA.Chr(10) & " 1 - минимальное;" & _
                    VBA.Chr(10) & " 2 - первое;" & _
                    VBA.Chr(10) & " 3 - последнее", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_Квартал", "Возвращает номер квартала для указанной даты." & _
                    VBA.Chr(10) & "Дата - ячейка с датой.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ДеньНед", "Возвращает текстовое название дня недели для указанной даты." & _
                    VBA.Chr(10) & "Дата - ячейка с датой." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & " 0 - понедельник, вторник...;" & _
                    VBA.Chr(10) & " 1 - Пн, Вт...", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Отделить", "Отделяет время от даты или дату от времени." & _
                    VBA.Chr(10) & "Дата - ячейка с датой и временем." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & " 0 - возвращает дату;" & _
                    VBA.Chr(10) & " 1 - возвращает время", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_СегодняСТ", "Возвращает текущую дату. Формула не пересчитывается при пресчете листа.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Проверить", "Проверяет текст ячейки на наличие в нем латиницы, кириллицы или чисел." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & " 0 - проверяет латиницу;" & _
                    VBA.Chr(10) & " 1 - проверяет кириллицу;" & _
                    VBA.Chr(10) & " 2 - проверяет числа", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_Шаблон", "Проверяет соответствуют ли данные шаблону." & _
                    VBA.Chr(10) & "Ячейка - ячейка с данными." & _
                    VBA.Chr(10) & "Шаблон - ячейка с шаблоном", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_Начертание", "Проверяет начертание текста указанной ячейки." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & " 0 - проверяет полужирный;" & _
                    VBA.Chr(10) & " 1 - проверяет курсив;" & _
                    VBA.Chr(10) & " 2 - проверяет подчеркнутый", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_Проговорить", "Проговаривает возвращаемые данные." & _
                    VBA.Chr(10) & "Ячейка - ячейка с данными.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁХCEL_Проговорить", "Проговаривает возвращаемые данные." & _
                    VBA.Chr(10) & "Ячейка - ячейка с данными.", , , , , "_ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Напечатан", "Возвращает дату и время последнего распечатывания текущей рабочей книги.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Сохранен", "Возвращает дату и время последнего сохранения текущей рабочей книги.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Создан", "Возвращает дату и время создания текущей рабочей книги.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_ДатаПрописью", "Возвращает дату, написанную текстом (01/01/2000 -> Первое января двухтысячного года)." & _
                    VBA.Chr(10) & "Ячейка - ячейка с датой." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & " 0 - Первое января двухтысячного года;" & _
                    VBA.Chr(10) & " 1 - Первого января двухтысячного года;" & _
                    VBA.Chr(10) & " 2 - 01 января 2000 года", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_УбратьЛат", "Убирает из текста латиницу." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & " 0 - убирает слова с латиницей;" & _
                    VBA.Chr(10) & " 1 - убирает латиницу из слов;" & _
                    VBA.Chr(10) & " 2 - меняет латиницу на кириллицу", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_УбратьКир", "Убирает из текста кириллицу." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & " 0 - убирает слова с кириллицей;" & _
                    VBA.Chr(10) & " 1 - убирает кириллицу из слов;" & _
                    VBA.Chr(10) & " 2 - меняет кириллицу на латиницу", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_Гороскоп", "Возвращает знак зодиака или знак китайского гороскопа по дате." & _
                    VBA.Chr(10) & "Ячейка - ячейка с датой." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & " 0 - возвращает знак зодиака;" & _
                    VBA.Chr(10) & " 1 - возвращает знак китайского гороскопа", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Заменить", "Заменяет в указанной ячейке все символы или сочетания из одного диапазона ячеек на символы из другого диапазона ячеек." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Что - Что нужно заменить (диапазон ячеек)." & _
                    VBA.Chr(10) & "Чем - Чем нужно заменить(диапазон ячеек)", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_Числа", "Убирает весь текст, оставляет только числа." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Разделитель: 0(нет), 1(:), 2(,), 3(/), 4(_), 5(пробел), 6(~), 7(-), 8('), 9(;);" & _
                    VBA.Chr(10) & "Присутствуют дробные числа: 0(да), 1(нет)", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_Текст", "Убирает все числа, оставляет только текст." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Разделитель: 0(нет), 1(:), 2(,), 3(/), 4(_), 5(пробел), 6(~), 7(-), 8('), 9(;)", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_РВЗаменить", "Заменяет подстроки указанным значением." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Выражение (регулярное): пример [а-яё]+." & _
                    VBA.Chr(10) & "Замена - чем заменяем подстроки." & _
                    VBA.Chr(10) & "Регистр: 0 - не учитывать; 1 - учитывать." & _
                    VBA.Chr(10) & "Строка: 0 - до первого вхождения; 1 - до последнего вхождения", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_РВИзвлечь", "Возвращает указанные подстроки." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Выражение (регулярное): пример [а-яё]+." & _
                    VBA.Chr(10) & "Номер (подстроки): 0 - все; '?' - последняя; '1,3' - первая и третья." & _
                    VBA.Chr(10) & "Регистр: 0 - не учитывать; 1 - учитывать." & _
                    VBA.Chr(10) & "Разделитель (между подстроками): пример '-'", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_РВКолСимв", "Возвращает длину подстроки по номеру." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Выражение (регулярное): пример [а-яё]+." & _
                    VBA.Chr(10) & "Номер -  номер подстроки." & _
                    VBA.Chr(10) & "Регистр: 0 - не учитывать; 1 - учитывать", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_РВНомер", "Возвращает порядковый номер первого символа подстроки." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Выражение (регулярное): пример [а-яё]+." & _
                    VBA.Chr(10) & "Номер -  номер подстроки." & _
                    VBA.Chr(10) & "Регистр: 0 - не учитывать; 1 - учитывать", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_РВПроверить", "Проверяет текст на наличие подстрок. Возвращает ИСТИНА или ЛОЖЬ." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Выражение (регулярное): пример [а-яё]+." & _
                    VBA.Chr(10) & "Регистр: 0 - не учитывать; 1 - учитывать", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_РВСчёт", "Возвращает количество подстрок." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Выражение (регулярное): пример [а-яё]+." & _
                    VBA.Chr(10) & "Регистр: 0 - не учитывать; 1 - учитывать", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_КолПовторов", "Подсчитывает сколько раз значение встречается в диапазоне ячеек." & _
                    VBA.Chr(10) & "Ячейка - ячейка со значением." & _
                    VBA.Chr(10) & "Диапазон - диапазон ячеек с тектом", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_РазмерКарт", "Возврашает ширину или высоту графического файла в px. по абсолютному пути (PNG, JPG, GIF, ICO, BMP, TIF)." & _
                    VBA.Chr(10) & "Путь - абсолютный путь к файлу." & _
                    VBA.Chr(10) & "Вариант - вариант работы функции:" & _
                    VBA.Chr(10) & "0 - возвращает ширину, 1 - возвращает высоту", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_Разбить", "Разбивает текст по знаку разделителя и возвращает подстроку по индексу." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Разделитель - знак разделителя." & _
                    VBA.Chr(10) & "Индекс - индекс подстроки: 1 - первая, ..., ? - последняя." & _
                    VBA.Chr(10) & "Пробелы: 0 - оставить пробелы, 1 - убрать пробелы", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_РазбитьКол", "Разбивает текст на отдельные подстроки по знаку разделителя и возвращает количество подстрок." & _
                    VBA.Chr(10) & "Ячейка - ячейка с текстом." & _
                    VBA.Chr(10) & "Разделитель - знак разделителя", , , , , "ЁXCEL"
       Application.MacroOptions "ЁXCEL_Стаж", "На основе начальной и конечной даты возвращает стаж в виде: '2 года 3 месяца 10 дней'." & _
                    VBA.Chr(10) & "НачДата - начальная дата." & _
                    VBA.Chr(10) & "КонДата - конечная дата." & _
                    VBA.Chr(10) & "Формат отображения: 0 - '1 год 0 месяцев 0 дней', 1 - '1 год'", , , , , "ЁXCEL"
       Application.MacroOptions "ЁXCEL_СтажД", "На основе количества отработанных дней возвращает стаж в виде: '2 года 3 месяца 10 дней'." & _
                    VBA.Chr(10) & "КолДней - количество отработанных дней." & _
                    VBA.Chr(10) & "Год - количество дней в году." & _
                    VBA.Chr(10) & "Месяц - количество дней в месяце." & _
                    VBA.Chr(10) & "Формат: 0 - '1 год 0 месяцев 0 дней', 1 - '1 год'", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_СтажДней", "На основе стажа в виде: '2 года 3 месяца 10 дней' возвращает количество отработанных дней." & _
                    VBA.Chr(10) & "Стаж - стаж в виде: '2 года 3 месяца 10 дней'." & _
                    VBA.Chr(10) & "Год - среднее количество дней в году." & _
                    VBA.Chr(10) & "Месяц - среднее количество дней в месяце", , , , , "ЁXCEL"
        Application.MacroOptions "ЁXCEL_КартПрим", "На основе абсолютного пути к файлу вставляет картинку в примечание ячейки." & _
                    VBA.Chr(10) & "Путь - абсолютный путь к файлу в виде: C:\test\test.png." & _
                    VBA.Chr(10) & "Возврат - значение, котрое будет возвращать функция." & _
                    VBA.Chr(10) & "Процент - размер картинки в %, не более 100", , , , , "ЁXCEL"
        Application.MacroOptions "ЁХCEL_КартПрим", "На основе абсолютного пути к файлу вставляет картинку в примечание ячейки." & _
                    VBA.Chr(10) & "Путь - абсолютный путь к файлу в виде: C:\test\test.png." & _
                    VBA.Chr(10) & "Возврат - значение, котрое будет возвращать функция." & _
                    VBA.Chr(10) & "Процент - размер картинки в %, не более 100", , , , , "_ЁXCEL"
        Application.MacroOptions "ЁXCEL_Папка", "На основе абсолютного пути к папке определяет ее наличие." & _
                    VBA.Chr(10) & "Путь - абсолютный путь к папке в виде: C:\test.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Файл", "На основе абсолютного пути к файлу определяет его наличие." & _
                    VBA.Chr(10) & "Путь - абсолютный путь к файлу в виде: C:\test\test.png.", , , , , "ЁXCEL" 'ЁXCEL_FREE
        Application.MacroOptions "ЁXCEL_Отступы", "Определяет количество отступов перед текстом указанной ячейки." & _
                    VBA.Chr(10) & "Ячейка - адрес ячейки с текстом.", , , , , "ЁXCEL" 'ЁXCEL_FREE
    #End If
End Sub
Private Sub xcelЭкспорт()
    Dim Data As Variant, q As String, i As Long, j As Long
    On Error Resume Next
    With Application
        q = .ThisWorkbook.Path
        Open q & "\1.txt" For Output As #1
        If Err.Number <> 0 Then
            Close #1
            Open q & "\1.txt" For Output As #1
        End If
'        .ThisWorkbook.IsAddin = False
        For i = 1 To 18
            For j = 1 To 13
                Data = .ThisWorkbook.Worksheets(1).Cells(i, j).Value
                If Data = 0 Then
                    Data = ""
                End If
                If j <> 13 Then
                    Write #1, Data;
                Else
                    Write #1, Data
                End If
            Next j
        Next i
'        .ThisWorkbook.IsAddin = True
        Close #1
    End With
End Sub
Private Sub xcelИмпорт()
    Dim Data As Variant, q As String, i As Long, j As Long, s As Variant, v As Variant, w As Variant
    i = 1
    On Error Resume Next
    With Application
'        .ThisWorkbook.IsAddin = False
'        For i = 1 To 18
'            For j = 1 To 13
'                .ThisWorkbook.Worksheets(1).Cells(i, j).Value = ""
'            Next j
'        Next i
        i = 1
        q = .ThisWorkbook.Path
        Open q & "\1.txt" For Input As #1
        If Err.Number <> 0 Then
            Close #1
            Open q & "\1.txt" For Input As #1
        End If
        Do Until EOF(1)
            Line Input #1, Data
            s = VBA.Split(Data, ",", , vbTextCompare)
            For j = 1 To UBound(s) + 1
                If i = 1 And j = 12 Then
                    v = s(j - 1)
                    w = .ThisWorkbook.Worksheets(1).Cells(i, j).Value
                    v = VBA.CDbl(VBA.Replace(v, "Версия: ", "", , , vbTextCompare))
                    w = VBA.CDbl(VBA.Replace(w, "Версия: ", "", , , vbTextCompare))
                    If w < v Then
                        .ThisWorkbook.Worksheets(1).Cells(i, j).Value = VBA.Replace(s(j - 1), """", "", , , vbTextCompare)
                    End If
                Else
                    .ThisWorkbook.Worksheets(1).Cells(i, j).Value = VBA.Replace(s(j - 1), """", "", , , vbTextCompare)
                End If
            Next j
            i = i + 1
        Loop
        Close #1
'        .ThisWorkbook.IsAddin = True
    End With
End Sub
Private Sub xcelUved()
    Dim q As String, w As String, e As Object, s As String, r As String, t As Long, b As String, w1 As Variant, _
    i As Long, j As Long, q1 As String
    On Error GoTo a
'    q = Application.ThisWorkbook.Worksheets(1).Cells(1, 12)
    w = "https://e-xcel.ru/index.php/novosti"
    Set e = CreateObject("MSXML2.XMLHTTP")
    If Err.Number <> 0 Then
        Set e = CreateObject("MSXML.XMLHTTPRequest")
    End If
    e.Open "GET", w, False
    e.Send
    s = e.ResponseText
    r = VBA.Mid(s, VBA.InStr(1, s, "<td>", vbTextCompare), 400)
    t = VBA.InStr(1, r, "</tr>", vbTextCompare)
    b = VBA.Left(r, t - 1)
    w1 = VBA.Split(b, "</td>", , vbTextCompare)
    For i = 0 To UBound(w1)
        w1(i) = VBA.Replace(w1(i), "<td>", "", , , vbTextCompare)
        w1(i) = Application.WorksheetFunction.Clean(w1(i))
    Next i
    If VBA.CDbl(w1(0)) > VBA.CDbl(Application.ThisWorkbook.Worksheets(1).Cells(15, 1)) Then
        Select Case VBA.CDbl(w1(3))
            Case 1
                j = VBA.MsgBox(w1(1) & VBA.Chr(10) & w1(2), vbYesNo + vbInformation)
            Case 2
                j = VBA.MsgBox(w1(1) & VBA.Chr(10) & w1(2), vbYesNo + vbQuestion)
            Case 3
                j = VBA.MsgBox(w1(1) & VBA.Chr(10) & w1(2), vbYesNo + vbExclamation)
            Case Else
        End Select
        Application.ThisWorkbook.Worksheets(1).Cells(15, 1) = VBA.CDbl(w1(0))
        If j = 6 Then
            q1 = w1(4)
            CreateObject("wscript.Shell").Run VBA.Chr(34) & q1 & VBA.Chr(34)
        End If
    End If
    Exit Sub
a:
End Sub
Private Sub xcelKontekstMenu()
    Dim r As CommandBarButton
    Dim k As Long, w As String, i As Long, q As Object
    k = Application.CommandBars("Cell").Controls.Count
    For i = 1 To k
        w = Application.CommandBars("Cell").Controls(i).Caption
        If w = "Календарь (Дата)" Or w = "Часы (Время)" Then
            Exit Sub
        End If
    Next i
    k = Application.CommandBars("Row").Controls.Count
    For i = 1 To k
        w = Application.CommandBars("Row").Controls(i).Caption
        If w = "Переместить выделенные строки" Or w = "Рокировка выделенных строк" Then
            Exit Sub
        End If
    Next i
    k = Application.CommandBars("Column").Controls.Count
    For i = 1 To k
        w = Application.CommandBars("Column").Controls(i).Caption
        If w = "Переместить выделенные столбцы" Or w = "Рокировка выделенных столбцов" Then
            Exit Sub
        End If
    Next i
    k = Application.CommandBars("Ply").Controls.Count
    For i = 1 To k
        w = Application.CommandBars("Ply").Controls(i).Caption
        If w = "Отсортировать листы по убыванию" Or w = "Отсорти
... (truncated)
vbaProject_00.bin vba-project OOXML VBA project: xl/vbaProject.bin 6385152 bytes
SHA-256: a08f20af5ec6aa3034bf65da467d24a78e15e051ccf7f765a95c17a0c9d88af7