Библиотеки для excel 2007

Время на прочтение
7 мин

Количество просмотров 312K

Приветствую всех.

В этом посте я расскажу, что такое VBA и как с ним работать в Microsoft Excel 2007/2010 (для более старых версий изменяется лишь интерфейс — код, скорее всего, будет таким же) для автоматизации различной рутины.

VBA (Visual Basic for Applications) — это упрощенная версия Visual Basic, встроенная в множество продуктов линейки Microsoft Office. Она позволяет писать программы прямо в файле конкретного документа. Вам не требуется устанавливать различные IDE — всё, включая отладчик, уже есть в Excel.

Еще при помощи Visual Studio Tools for Office можно писать макросы на C# и также встраивать их. Спасибо, FireStorm.

Сразу скажу — писать на других языках (C++/Delphi/PHP) также возможно, но требуется научится читать, изменять и писать файлы офиса — встраивать в документы не получится. А интерфейсы Microsoft работают через COM. Чтобы вы поняли весь ужас, вот Hello World с использованием COM.

Поэтому, увы, будем учить Visual Basic.

Чуть-чуть подготовки и постановка задачи

Итак, поехали. Открываем Excel.

Для начала давайте добавим в Ribbon панель «Разработчик». В ней находятся кнопки, текстовые поля и пр. элементы для конструирования форм.

Появилась вкладка.

Теперь давайте подумаем, на каком примере мы будем изучать VBA. Недавно мне потребовалось красиво оформить прайс-лист, выглядевший, как таблица. Идём в гугл, набираем «прайс-лист» и качаем любой, который оформлен примерно так (не сочтите за рекламу, пожалуйста):

То есть требуется, чтобы было как минимум две группы, по которым можно объединить товары (в нашем случае это будут Тип и Производитель — в таком порядке). Для того, чтобы предложенный мною алгоритм работал корректно, отсортируйте товары так, чтобы товары из одной группы стояли подряд (сначала по Типу, потом по Производителю).

Результат, которого хотим добиться, выглядит примерно так:

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

Кодим

Для начала требуется создать кнопку, при нажатии на которую будет вызываться наша програма. Кнопки находятся в панели «Разработчик» и появляются по кнопке «Вставить». Вам нужен компонент формы «Кнопка». Нажали, поставили на любое место в листе. Далее, если не появилось окно назначения макроса, надо нажать правой кнопкой и выбрать пункт «Назначить макрос». Назовём его FormatPrice. Важно, чтобы перед именем макроса ничего не было — иначе он создастся в отдельном модуле, а не в пространстве имен книги. В этому случае вам будет недоступно быстрое обращение к выделенному листу. Нажимаем кнопку «Новый».

И вот мы в среде разработки VB. Также её можно вызвать из контекстного меню командой «Исходный текст»/«View code».

Перед вами окно с заглушкой процедуры. Можете его развернуть. Код должен выглядеть примерно так:

Sub FormatPrice()End Sub

Напишем Hello World:

Sub FormatPrice()
    MsgBox "Hello World!"
End Sub

И запустим либо щелкнув по кнопке (предварительно сняв с неё выделение), либо клавишей F5 прямо из редактора.

Тут, пожалуй, следует отвлечься на небольшой ликбез по поводу синтаксиса VB. Кто его знает — может смело пропустить этот раздел до конца. Основное отличие Visual Basic от Pascal/C/Java в том, что команды разделяются не ;, а переносом строки или двоеточием (:), если очень хочется написать несколько команд в одну строку. Чтобы понять основные правила синтаксиса, приведу абстрактный код.

Примеры синтаксиса

' Процедура. Ничего не возвращает
' Перегрузка в VBA отсутствует
Sub foo(a As String, b As String)
    ' Exit Sub ' Это значит "выйти из процедуры"
    MsgBox a + ";" + b
End Sub' Функция. Вовращает Integer
Function LengthSqr(x As Integer, y As IntegerAs Integer
    ' Exit Function
    LengthSqr = x * x + y * y
End FunctionSub FormatPrice()
    Dim s1 As String, s2 As String
    s1 = "str1"
    s2 = "str2"
    If s1 <> s2 Then
        foo "123""456" ' Скобки при вызове процедур запрещены
    End IfDim res As sTRING ' Регистр в VB не важен. Впрочем, редактор Вас поправит
    Dim i As Integer
    ' Цикл всегда состоит из нескольких строк
    For i = 1 To 10
        res = res + CStr(i) ' Конвертация чего угодно в String
        If i = 5 Then Exit For
    Next iDim x As Double
    x = Val("1.234"' Парсинг чисел
    x = x + 10
    MsgBox xOn Error Resume Next ' Обработка ошибок - игнорировать все ошибки
    x = 5 / 0
    MsgBox xOn Error GoTo Err ' При ошибке перейти к метке Err
    x = 5 / 0
    MsgBox "OK!"
    GoTo ne

Err:
    MsgBox 

"Err!"

ne:

On Error GoTo 0 ' Отключаем обработку ошибок

    ' Циклы бывает, какие захотите
    Do While True
        Exit DoLoop 'While True
    Do 'Until False
        Exit Do
    Loop Until False
    ' А вот при вызове функций, от которых хотим получить значение, скобки нужны.
    ' Val также умеет возвращать Integer
    Select Case LengthSqr(Len("abc"), Val("4"))
    Case 24
        MsgBox "0"
    Case 25
        MsgBox "1"
    Case 26
        MsgBox "2"
    End Select' Двухмерный массив.
    ' Можно также менять размеры командой ReDim (Preserve) - см. google
    Dim arr(1 to 10, 5 to 6) As Integer
    arr(1, 6) = 8Dim coll As New Collection
    Dim coll2 As Collection
    coll.Add "item""key"
    Set coll2 = coll ' Все присваивания объектов должны производится командой Set
    MsgBox coll2("key")
    Set coll2 = New Collection
    MsgBox coll2.Count
End Sub

Грабли-1. При копировании кода из IDE (в английском Excel) есь текст конвертируется в 1252 Latin-1. Поэтому, если хотите сохранить русские комментарии — надо сохранить крокозябры как Latin-1, а потом открыть в 1251.

Грабли-2. Т.к. VB позволяет использовать необъявленные переменные, я всегда в начале кода (перед всеми процедурами) ставлю строчку Option Explicit. Эта директива запрещает интерпретатору заводить переменные самостоятельно.

Грабли-3. Глобальные переменные можно объявлять только до первой функции/процедуры. Локальные — в любом месте процедуры/функции.

Еще немного дополнительных функций, которые могут пригодится: InPos, Mid, Trim, LBound, UBound. Также ответы на все вопросы по поводу работы функций/их параметров можно получить в MSDN.

Надеюсь, что этого Вам хватит, чтобы не пугаться кода и самостоятельно написать какое-нибудь домашнее задание по информатике. По ходу поста я буду ненавязчиво знакомить Вас с новыми конструкциями.

Кодим много и под Excel

В этой части мы уже начнём кодить нечто, что умеет работать с нашими листами в Excel. Для начала создадим отдельный лист с именем result (лист с данными назовём data). Теперь, наверное, нужно этот лист очистить от того, что на нём есть. Также мы «выделим» лист с данными, чтобы каждый раз не писать длинное обращение к массиву с листами.

Sub FormatPrice()
    Sheets("result").Cells.Clear
    Sheets("data").Activate
End Sub

Работа с диапазонами ячеек

Вся работа в Excel VBA производится с диапазонами ячеек. Они создаются функцией Range и возвращают объект типа Range. У него есть всё необходимое для работы с данными и/или оформлением. Кстати сказать, свойство Cells листа — это тоже Range.

Примеры работы с Range

Sheets("result").Activate
Dim r As Range
Set r = Range("A1")
r.Value = "123"
Set r = Range("A3,A5")
r.Font.Color = vbRed
r.Value = "456"
Set r = Range("A6:A7")
r.Value = "=A1+A3"

Теперь давайте поймем алгоритм работы нашего кода. Итак, у каждой строчки листа data, начиная со второй, есть некоторые данные, которые нас не интересуют (ID, название и цена) и есть две вложенные группы, к которым она принадлежит (тип и производитель). Более того, эти строки отсортированы. Пока мы забудем про пропуски перед началом новой группы — так будет проще. Я предлагаю такой алгоритм:

  1. Считали группы из очередной строки.
  2. Пробегаемся по всем группам в порядке приоритета (вначале более крупные)
    1. Если текущая группа не совпадает, вызываем процедуру AddGroup(i, name), где i — номер группы (от номера текущей до максимума), name — её имя. Несколько вызовов необходимы, чтобы создать не только наш заголовок, но и всё более мелкие.
  3. После отрисовки всех необходимых заголовков делаем еще одну строку и заполняем её данными.

Для упрощения работы рекомендую определить следующие функции-сокращения:

Function GetCol(Col As IntegerAs String
    GetCol = Chr(Asc("A") + Col)
End FunctionFunction GetCellS(Sheet As String, Col As Integer, Row As IntegerAs Range
    Set GetCellS = Sheets(Sheet).Range(GetCol(Col) + CStr(Row))
End FunctionFunction GetCell(Col As Integer, Row As IntegerAs Range
    Set GetCell = Range(GetCol(Col) + CStr(Row))
End Function

Далее определим глобальную переменную «текущая строчка»: Dim CurRow As Integer. В начале процедуры её следует сделать равной единице. Еще нам потребуется переменная-«текущая строка в data», массив с именами групп текущей предыдущей строк. Потом можно написать цикл «пока первая ячейка в строке непуста».

Глобальные переменные

Option Explicit ' про эту строчку я уже рассказывал
Dim CurRow As Integer
Const GroupsCount As Integer = 2
Const DataCount As Integer = 3

FormatPrice

Sub FormatPrice()
    Dim I As Integer ' строка в data
    CurRow = 1
    Dim Groups(1 To GroupsCount) As String
    Dim PrGroups(1 To GroupsCount) As String

    Sheets(

"data").Activate
    I = 2
    Do While True
        If GetCell(0, I).Value = "" Then Exit Do
        ' ...
        I = I + 1
    Loop
End Sub

Теперь надо заполнить массив Groups:

На месте многоточия

Dim I2 As Integer
For I2 = 1 To GroupsCount
    Groups(I2) = GetCell(I2, I)
Next I2
' ...
For I2 = 1 To GroupsCount ' VB не умеет копировать массивы
    PrGroups(I2) = Groups(I2)
Next I2
I =  I + 1

И создать заголовки:

На месте многоточия в предыдущем куске

For I2 = 1 To GroupsCount
    If Groups(I2) <> PrGroups(I2) Then
        Dim I3 As Integer
        For I3 = I2 To GroupsCount
            AddHeader I3, Groups(I3)
        Next I3
        Exit For
    End If
Next I2

Не забудем про процедуру AddHeader:

Перед FormatPrice

Sub AddHeader(Ty As Integer, Name As String)
    GetCellS("result", 1, CurRow).Value = Name
    CurRow = CurRow + 1
End Sub

Теперь надо перенести всякую информацию в result

For I2 = 0 To DataCount - 1
    GetCellS("result", I2, CurRow).Value = GetCell(I2, I)
Next I2

Подогнать столбцы по ширине и выбрать лист result для показа результата

После цикла в конце FormatPrice

Sheets("Result").Activate
Columns.AutoFit

Всё. Можно любоваться первой версией.

Некрасиво, но похоже. Давайте разбираться с форматированием. Сначала изменим процедуру AddHeader:

Sub AddHeader(Ty As Integer, Name As String)
    Sheets("result").Range("A" + CStr(CurRow) + ":C" + CStr(CurRow)).Merge
    ' Чтобы не заводить переменную и не писать каждый раз длинный вызов
    ' можно воспользоваться блоком With
    With GetCellS("result", 0, CurRow)
        .Value = Name
        .Font.Italic = True
        .Font.Name = "Cambria"
        Select Case Ty
        Case 1 ' Тип
            .Font.Bold = True
            .Font.Size = 16
        Case 2 ' Производитель
            .Font.Size = 12
        End Select
        .HorizontalAlignment = xlCenter
    End With
    CurRow = CurRow + 1
End Sub

Уже лучше:

Осталось только сделать границы. Тут уже нам требуется работать со всеми объединёнными ячейками, иначе бордюр будет только у одной:

Поэтому чуть-чуть меняем код с добавлением стиля границ:

Sub AddHeader(Ty As Integer, Name As String)
    With Sheets("result").Range("A" + CStr(CurRow) + ":C" + CStr(CurRow))
        .Merge
        .Value = Name
        .Font.Italic = True
        .Font.Name = "Cambria"
        .HorizontalAlignment = xlCenterSelect Case Ty
        Case 1 ' Тип
            .Font.Bold = True
            .Font.Size = 16
            .Borders(xlTop).Weight = xlThick
        Case 2 ' Производитель
            .Font.Size = 12
            .Borders(xlTop).Weight = xlMedium
        End Select
        .Borders(xlBottom).Weight = xlMedium ' По убыванию: xlThick, xlMedium, xlThin, xlHairline
    End With
    CurRow = CurRow + 1
End Sub

Осталось лишь добится пропусков перед началом новой группы. Это легко:

В начале FormatPrice

Dim I As Integer ' строка в  data
CurRow = 0 ' чтобы не было пропуска в самом начале
Dim Groups(1 To GroupsCount) As String

В цикле расстановки заголовков

If Groups(I2) <> PrGroups(I2) Then
    CurRow = CurRow + 1
    Dim I3 As Integer

В точности то, что и хотели.

Надеюсь, что эта статья помогла вам немного освоится с программированием для Excel на VBA. Домашнее задание — добавить заголовки «ID, Название, Цена» в результат. Подсказка: CurRow = 0 CurRow = 1.

Файл можно скачать тут (min.us) или тут (Dropbox). Не забудьте разрешить исполнение макросов. Если кто-нибудь подскажет человеческих файлохостинг, залью туда.

Спасибо за внимание.

Буду рад конструктивной критике в комментариях.

UPD: Перезалил пример на Dropbox и min.us.

UPD2: На самом деле, при вызове процедуры с одним параметром скобки можно поставить. Либо использовать конструкцию Call Foo(«bar», 1, 2, 3) — тут скобки нужны постоянно.

title manager ms.date ms.audience ms.topic keywords ms.assetid ms.localizationpriority

Creating XLLs

soliver

11/16/2014

Developer

reference

dlls [excel 2007], calling into excel,xlAutoFree function [Excel 2007],xlAutoFree12 function [Excel 2007],xlcall32.lib [Excel 2007],xlAutoRegister function [Excel 2007],xlcall.cpp [Excel 2007],xlAutoRemove function [Excel 2007],xlAddInManagerInfo function [Excel 2007],xlAutoAdd function [Excel 2007],xlAutoOpen function [Excel 2007],xlAutoClose function [Excel 2007],DLLs [Excel 2007], turning into XLLs,XLLs [Excel 2007], calling into Excel,xlAutoRegister12 function [Excel 2007],xlcall.h [Excel 2007],xlAddInManagerInfo12 function [Excel 2007]

7754998f-4e13-4a37-9724-43b6ee6c919b

high

Creating XLLs

Applies to: Excel 2013 | Office 2013 | Visual Studio

If your DLL is self-contained or relies only on other libraries, you must know how to enable Microsoft Excel to access its functions and commands. For more information, see Access DLLs in Excel.

However, if your DLL needs to access Excel functionality (for example, to get the contents of a cell, to call a worksheet function, or to interrogate Excel to obtain workspace information), your code must be able to call back into Excel.

The Excel C API provides several functions that enable DLLs to call back into Excel. To access these, the DLL must be linked statically at compile time with the Excel 32-bit library, xlcall32.lib. The static library is downloadable from Microsoft as part of the Microsoft Excel 2013 XLL SDK, which includes both 32-bit and 64-bit versions of this library.

Enabling DLLs to Call Back into Excel

For a DLL to be able to access the functionality in Excel and get or set workspace information, it must first obtain the addresses of the Excel callback functions Excel4, Excel4v, Excel12, and Excel12v. The last two were introduced in Excel 2007 and are available in subsequent versions. To access all of these, the DLL project must include references to the following files from the Excel 2013 XLL SDK. If you want to access only the first two callbacks (in any version of Excel), your project needs to include only the first two files.

Xlcall.h

The Xlcall.h file contains the following items:

  • Function prototypes for all callback functions.

  • Definitions of the data structures that the callbacks use to exchange data between the DLL/XLL and Excel, and data-type constant definitions.

  • Definitions of the C API function and command equivalents of the worksheet, macro sheet functions, and supported Excel commands.

  • Definitions of callback function return values.

You should use the #include directive for this file, directly or indirectly via another header file, in all files that access the C API or that handle data types that the C API uses.

Xlcall32.lib

The Xlcall32.lib library exports the first two callbacks, Excel4 and Excel4v, and also the XlCallVer function. Without a reference to this library in your project, the linker cannot create the XLL if you have used any of these callbacks in your code. (You can obtain the addresses of these functions by linking dynamically to the equivalent Xlcall32.dll that is copied to your system as part of a normal Excel installation.)

Xlcall.cpp

The Excel callbacks Excel12 and Excel12v are not exported in Xlcall32.lib. This ensures that XLL projects that you create starting in Excel 2007 will also work with earlier versions of Excel. The Xlcall.cpp module contains code for the Excel12 and Excel12v functions, which call into an Excel entry point starting in Excel 2007, or return a safe error value if you are running an earlier version of Excel. You should include this module in your project if you want to create an XLL that runs starting in Excel 2007 and that is able to use the new data types that handle larger grids and longer Unicode strings.

[!NOTE]
Starting with the Excel 2010 SDK, this file can be compiled for both 32-bit and 64-bit XLLs.

Turning DLLs into XLLs: Add-in Manager Interface Functions

An XLL is a DLL that exports several procedures that are called by Excel or the Excel Add-in Manager. These procedures are described briefly here and discussed in detail in Add-in Manager and XLL Interface Functions. All of these DLL callbacks start with the prefix xlAuto. Only one of these, the command xlAutoOpen, is required. It is called when the add-in is activated, and it is typically used to register XLL functions and commands with Excel and to do other initialization tasks. The function signatures and example implementations of all of the xlAuto functions are provided in later sections.

Even though xlAutoOpen is the only required one of these callbacks, your add-in may also need to export others depending on its behavior.

Excel 2007 introduced a new data type, XLOPER12, to accommodate larger grids and to support long Unicode strings. XLOPER12 is described later in this topic. Whereas xlAuto functions take or return the old data type XLOPER, new versions of these functions were introduced in Excel 2007 that use XLOPER12 data types. With the exception of xlAutoFree12, which you must sometimes implement to avoid XLOPER12 memory leaks, you can safely omit all the version 12 xlAuto functions, in which case, starting in Excel 2007, Excel calls the XLOPER versions.

xlAutoOpen

Excel calls the xlAutoOpen function whenever the XLL is activated. The add-in will be activated at the start of an Excel session if it was active in the last Excel session that ended normally. The add-in is activated if it is loaded during an Excel session. The add-in can be deactivated and reactivated during an Excel session, and the function is called on reactivation.

You should use xlAutoOpen to register XLL functions and commands, initialize data structures, customize the user interface, and so on.

If your add-in implements and exports the xlAutoRegister function or the xlAutoRegister12 function, Excel might attempt to activate and register a function or command without first calling the xlAutoOpen function. In this case, you should ensure that your add-in is sufficiently initialized for your function or command to work properly. If it is not, you should either fail the attempt to register the function or command, or carry out the necessary initialization.

xlAutoClose

Excel calls the xlAutoClose function whenever the XLL is deactivated. The add-in will be deactivated when an Excel session ends normally. If the user deactivates the add-in during an Excel session, the function is called.

You should use xlAutoClose to unregister functions and commands, release resources, undo customizations, and so on.

[!NOTE]
There is a known issue with the unregistration of functions and commands. For more information, see Known Issues in Excel XLL Development.

xlAutoAdd

Excel calls the xlAutoAdd function whenever the user activates the XLL during an Excel session by using the Add-In Manager. This function is not called when Excel starts and loads a preinstalled add-in.

You can use this function to display a custom dialog box that tells the user that the add-in has been activated, to read from or write to the registry, or to check licensing information.

xlAutoRemove

Excel calls the xlAutoRemove function whenever the user deactivates the XLL during an Excel session by using the Add-In Manager. This function is not called when an Excel session closes, normally or abnormally, with the add-in installed.

You can use this function to display a custom dialog box that tells the user that the add-in has been deactivated, or to read from or write to the registry.

xlAddInManagerInfo/xlAddInManagerInfo12

Excel calls the xlAddInManagerInfo function when the Add-in Manager is invoked for the first time in an Excel session. If Excel passes an argument equal to 1, this function should return a string (typically, the name of the add-in); otherwise, it should return #VALUE!.

Starting in Excel 2007, Excel calls the xlAddInManagerInfo12 function in preference to the xlAddInManagerInfo function if it is exported by the XLL. The xlAddInManagerInfo12 function should work in the same way as the xlAddInManagerInfo function to avoid version-specific differences in the behavior of the XLL. The xlAddInManagerInfo12 function should return an XLOPER12 data type, whereas the xlAddInManagerInfo function should return an XLOPER data type.

xlAutoRegister/xlAutoRegister12

Excel calls the xlAutoRegister function whenever a call has been made to the XLM function REGISTER, or the C API equivalent xlfRegister function, with the return and argument types missing for the function being registered. The xlAutoRegister function allows the XLL to search its internal lists of exported functions and commands to register the function with the argument and return the specified types.

Starting in Excel 2007, Excel calls the xlAddInRegister12 function in preference to the xlAddInRegister function if it is exported by the XLL.

[!NOTE]
If xlAddInRegister/ xlAddInRegister12 tries to register the function without supplying the argument and return types, a recursive calling loop occurs that eventually overflows the call stack and causes Excel to close or stop responding.

xlAutoFree/xlAutoFree12

Excel calls the xlAutoFree/xlAutoFree12 function just after an XLL worksheet function returns an XLOPER/ XLOPER12 data type with a flag set that tells Excel there is memory that the XLL still needs to release. This enables the XLL to return dynamically allocated arrays, strings, and external references to the worksheet without memory leaks. Starting in Excel 2007, the XLOPER12 data type is supported. For more information, see Memory Management in Excel.

[!NOTE]
Starting in Excel 2007, when Excel is configured to use multithreaded worksheet recalculation, the xlAutoFree/ xlAutoFree12 function is called on the same thread that was just used to call the function that returned it. The call to xlAutoFree/ xlAutoFree12 is always made before any subsequent worksheet cells are evaluated on that thread. This simplifies thread-safe design in your XLL. For more information, see Multithreaded Recalculation in Excel.

Creating 64-bit XLLs

Excel and user-defined functions can run on 64-bit operating systems to take advantage of performance benefits over 32-bit operating systems. Excel passes values in XLOPER12 structures that include information about the types for the data. Be careful when you convert between values in the XLOPER12 structure and native types like int or pointers to preserve the values in the larger type.

See also

Call XLL Functions from the Function Wizard or Replace Dialog Boxes

Add-in Manager and XLL Interface Functions

Developing Excel XLLs

Установка надстроек в Excel 2003/2007/2010/2013/2016 процесс однотипный для всех версий, но имеет и некоторые различия. Условно можно разбить механизм установки надстроек в Excel на несколько шагов. Рассмотрим процедуру установки надстроек подробно для каждой из перечисленных версий Excel в отдельности. Для этого нам понадобится надстройка (чаще всего это файл с расширением .xla, но бывают и другие) и установленное приложение Excel со встроенным редактором Visual Basic.

 Для тех кому лучше один раз увидеть — представлен видеоролик по установке и подключениюsmotret-video

Шаг 1.  Сохраняем файл надстройки на компьютер и запоминаем место его хранения (расположения).

Шаг 2. Запускаем приложение Excel 2003 и выбираем меню «Сервис»/»Надстройки…»

Установка надстроек в Excel 2003

После выбора пункта меню «Надстройки…» появляется список доступных надстроек, которые можно подключать и отключать установкой и снятием галочек перед названиями соответствующих надстроек.

Ustanovka nadstroek Excel 2003 2

Шаг 3. Для добавления (подключения) новой надстройки, нажимаем кнопку «Обзор». При нажатии на эту кнопку, появляется вот такое окно «Обзор»:

Ustanovka nadstroek Excel 2003 3

Excel отправляет нас искать надстройки в папку с названием Addins и это не с проста. Именно здесь и должны располагаться файлы надстроек для максимально быстрого доступа к ним как приложения, так и самого пользователя. Размещение надстроек в папке Addins ускорит загрузку приложения Excel и подключение к ней надстройки (надстроек) при последующих запусках. Остается переместить файл надстройки с того места, которое мы запомнили в Шаге 1, в эту папку (можно и прямо в это окно, чтобы не искать саму папку на жестком диске). Если по каким-то причинам Вы не смогли, либо не захотели размещать свои надстройки в папке Addins, то через окно «Обзор» просто добираетесь до того места, куда сохранили файл надстройки. Дважды кликнув по выбранному файлу, Вы добавите его в список доступных надстроек. Вот собственно и все, надстройка установлена. 

В случае установки готовых надстроек (макросов) для Excel 2003, взятых с этого сайта, по окончании установки будет сформирована новая панель инструментов с кнопками, запускающими макросы.

Ustanovka nadstroek Excel 2003 4

Установка надстроек в Excel 2007

Устанавливать надстройки в Excel 2007 не сложнее, чем в Excel 2003. Рассмотри по шагам.

Шаг 1. Сохраняем файл надстройки на компьютер и запоминаем место его хранения (расположения).

Шаг 2. Запускаем приложение Excel 2007, нажимаем кнопку «Office» Knopka Office и выбираем «Параметры Excel» как показано на рисунке

Ustanovka nadstroek Excel 2007 1

Шаг 3. В появившемся окне «Параметры Excel» в поле «Управление:» выбираем «Надстройки Excel» и жмем кнопку «Перейти…»

Ustanovka nadstroek Excel 2007 2

Шаг 4. В очередном окне с названием «Надстройки» появляется список доступных надстроек, которые можно подключать и отключать установкой и снятием галочек перед названиями соответствующих надстроек. Для добавления (подключения) новых надстроек, нажимаем кнопку «Обзор».

Ustanovka nadstroek Excel 2007 3

Появляется окно «Обзор», которое отправляет нас искать надстройки в папку с названием Addins и это не случайно.

Ustanovka nadstroek Excel 2007 4 Именно в этом месте и должны располагаться файлы надстроек для максимально быстрого доступа к ним как приложения, так и самих пользователей. Размещение надстроек в папке Addins ускоряет загрузку приложения Excel и подключение к нему надстройки (надстроек) при последующих запусках. Перемещаем (добавляем) в это окно (в эту папку) файл, который присутствовал в Шаге 1. Если по каким-то причинам Вы не смогли, либо не захотели расположить свои надстройки в папке Addins, то через окно «Обзор» просто добираетесь до того места, где был изначально сохранен файл надстройки. Дважды кликаете по выбранному файлу и надстройка добавляется в список доступных надстроек. Все, надстройка установлена. Обращаю Ваше внимание на то, что если после установки файл надстройки будет перемещен в другое место жесткого диска, либо название папки, в которой он находится будет изменено, то весь процесс установки придется повторить заново.

Если Вы устанавливали готовые надстройки для Excel 2007, взятые с этого сайта, то после окончания процесса установки на ленте будет сформирована новая вкладка «Надстройки». При этом в настраиваемой панели инструментов будут отображены кнопки, запускающие макросы.

Ustanovka nadstroek Excel 2007 5

Установка надстройки в Excel 2010

Стоит заметить, что в Excel 2010 редактор Visual Basic устанавливается как отдельный компонент пакета с наименованием «Общие средства Office» и называется «Visual Basic для приложений». Узнать установлен ли у Вас редактор Visual Basic — очень просто. Нужно его запустить! О том как это сделать, можно прочитать отдельно. Если редактор Visual Basic не запустился — доустанавливаем его. Итак, переходим непосредственно к установке надстроек в Эксель!

Установить надстройку в Excel 2010 можно аналогично тому как это делается в Excel 2007.

Шаг 1. Сохраняем файл надстройки на компьютер и запоминаем место его хранения (расположения).

Шаг 2. Запускаем приложение Excel 2010, выбираем вкладку «Файл», а затем «Параметры Excel» как показано на рисунке

Ustanovka nadstroek Excel 2010 1

Шаг 3. В появившемся окне «Параметры Excel» в поле «Управление:» выбираем «Надстройки Excel» и жмем кнопку «Перейти…»

Ustanovka nadstroek Excel 2010 2

Шаг 4. В очередном окне с названием «Надстройки» появляется список доступных надстроек, которые можно подключать и отключать установкой и снятием галочек перед названиями соответствующих надстроек. Для добавления (подключения) новых надстроек, нажимаем кнопку «Обзор».

Ustanovka nadstroek Excel 2010 3

Появляется окно «Обзор», которое отправляет нас искать надстройки в папку с названием Addins и это имеет свой смысл.

Ustanovka nadstroek Excel 2010 4 Именно в этом месте и должны располагаться файлы надстроек для максимально быстрого доступа к ним как приложения, так и самих пользователей. Размещение надстроек в папке Addins ускоряет загрузку приложения Excel и подключение к нему надстройки (надстроек) при последующих запусках. Перемещаем (добавляем) в это окно (в эту папку) файл, который присутствовал в Шаге 1. Если по каким-то причинам Вы не смогли, либо не захотели расположить свои надстройки в папке Addins, то через окно «Обзор» просто добираетесь до того места, где был изначально сохранен файл надстройки. Дважды кликаете по выбранному файлу и надстройка добавляется в список доступных надстроек. Все, надстройка установлена. Обращаю Ваше внимание на то, что если после установки файл надстройки будет перемещен в другое место жесткого диска, либо название папки, в которой он находится будет изменено, то весь процесс установки придется повторить заново.

Если Вы устанавливали готовые надстройки для Excel 2010, взятые с этого сайта, то после окончания процесса установки на ленте будет сформирована новая вкладка «Надстройки». При этом в настраиваемой панели инструментов будут отображены кнопки, запускающие макросы. 

Ustanovka nadstroek Excel 2010 5

Начиная с Excel 2010 появилась возможность установки надстроек на вкладке «Разработчик».

Установка надстройки в Excel 2013

Надстройки в Excel 2013 устанавливаются через Файл/Параметры/Надстройки после чего нажимается кнопка «Перейти» и в менеджере надстроек подключаются необходимые надстройки. Окно менеджера надстроек можно вызывать кнопкой, расположенной на вкладке «Разработчик».

Быстрая установка надстроек через вкладку «Разработчик»

Начиная с Excel 2010 на вкладку «Разработчик» добавлена новая группа кнопок «Надстройки». По умолчанию эта вкладка на ленте Excel отсутствует, для её отображения необходимо зайти в меню Файл/Параметры/Настройка ленты и в правой части диалогового окна установить флажок перед полем «Разработчик». После этого на ленте приложения появляется одноименная вкладка с группой кнопок «Надстройки». При помощи одной из них вызывается менеджер надстроек, в котором можно  произвести выбор файла устанавливаемой надстройки.

ustanovka nadstroek v excel 2013

При помощи кнопки, расположенной рядом, можно управлять COM-надстройками.

Установка, подключение и отключение надстроек в Excel 2016 и выше

Как и в более ранних версиях окно менеджера надстроек вызывается одним из двух способов, либо через меню Файл/Параметры/Надстройки/Перейти, либо через вкладку «Разработчик», которую предварительно необходимо отобразить на ленте.

Другие материалы по теме:

XLL-надстройка представляет собой скомпилированный на C/C++ файл динамической библиотеки Windows, специально предназначенной для использования в Excel. Разработчикам предоставляется специальная библиотека C API (Excel XLL SDK). Использование языка C/С++ с возможностью управления памятью позволяют разработать самые мощные и производительные функции для работы с данными Excel.

В тестах до 35 раз быстрее кода написанного на VBA.

Технические характеристики:

Последняя стабильная Release-версия (х32 и х64): 4.4 от 18/12/2022
Продукт написан на С/С++

Область применения — Excel 2007 (х32, х64) и выше (для Excel x32 — версия библиотеки (х86), для Excel х64 — версия (х64)). Не поддерживается WinXP.

Содержит библиотеку BedvitCOM (весь функционал BedvitCOM ). Данные версии продуктов — распространяются бесплатно.

НЕ нужно устанавливать или удалять в системе, это один файл (+файл сохранений .bin), подключается как «обычная» надстройка .xla, .xlam или открывается как файл Excel

НЕ нужен .NET Framework, НE нужны какие либо другие библиотеки, НЕ нужна регистрация или активация, НЕ нужно подключение к Интернет

Для ленивых (как я), добавил установщик (Install…), который сам поместит библиотеку в нужную папку и подключит (cостоит из 2 частей. т.к. в единой сборке (предыдущая версия) переодически вызывает рефлексию у антивируса, несмотря на то, что код открыт, и легко проверяется отсутствие вредоносного функционала.).

Как установить и настроить?

Функционал:

1.Вычисления любой точности (в системах счисления с основанием от 2 до 36) на исходниках библиотеки MPIR, Edition 3.0.0 (на основе библиотеки GMP) на С/С++

2.Обработка txt (csv)-файлов (поиск, сортировка, удаление дубликатов, подсчёт строк и др.)

3.Инструменты для работы с массивами (сортировка, удаление дубликатов, транспонирование, изменение размерности с сохранением данных, фильтрация и т.д.)

4.Работа со строками:

+хеширование строки разными алгоритмами SHA (+ новейшие SHA3) , 

+получить/удалить любые символы Unicode из строки

+удалить из текста лишние пробелы

+поиск вхождения подстроки в строку

+заменить одну подстроку на другую

+поиск строки в одномм массиве с выводом данных из второго массива (соответствующим похиции найденного значению в первом массиве)

5.Генератор QR-кода + конвертации графических форматов из одного в другой

5.1  Функцией в Excel: QRcodePrint

5.2 Кодом VBA

Описание функционала, примеры и подробный разбор методов можно посмотреть в блоге.

QR-код на блог.

6.Подбор слагаемых под нужную сумму (по алгоритму от MCH)

7. Прочие команды меню

+ Help: Содержание + Лог текущей версии библиотеки.
+ Открыть (сохраненные настройки)
+ Сохранить в файл (текущие настройки)
+ Влияющие ячейки (на выделенный диапазон)
+ Зависимые ячейки (от выделенного диапазона)
+ Работа с Форматами ячеек (задать, сохранить, выбрать сохраненный и т.д.)
+ Конвертировать число сохраненное как текст в число (с удалением пробелов, мягких переносов, непечатаемых символов между цифрами) — реализовано v2.0.1.7
+ Разорвать связи на текущем листе с другими ЛИСТАМИ этой книги и внешними файлами
+ Транспонирование на месте
+ Работа с именами (показать скрытые, удалить ошибочные, удалить все),в т.ч. скрытые, не отображаемые в диспетчере имён
+ Перевести условное форматирование в обычный формат ячейки в выделенном диапазоне или на всем листе — реализовано v3.0.0.0
+ Подбор слагаемых под нужную сумму
+ Выделить разным цветом группы дубликатов в выделенном диапазоне или на всем листе с выводом статистики — реализовано v2.0.2.4
+ Быстрый поиск значений на листе
+ Вывести на новый лист список всех листов текущей книги (с гиперссылкой)
+ Вывести на новый лист список всех ячеек текущей книги, содержащих ошибку (с гиперссылкой) — реализовано v2.0.2.4
+ Вывести на новый лист список всех внешних связей или ячеек текущей книги, содержащих ссылку на другую книгу(с гиперссылкой) — реализовано v3.0.0.0
+ Удалить пустые строки и столбцы в данных на листе
+ А,R — Стиль ссылок: А1, R1C1
+ Блок работы с VBA-кодом (хранение, выполнение, просмотр по паролю и т.д.)
+ BedvitCOM: ON/OFF — Автоматическое подключение библиотеки BedvitCOM в References (VBA)
+ XLL Язык меню: RU, EN (сейчас поддерживается только RU)
+ XLL Диалог: пользовательский диалог пои выполнении команд: ON-включен, OFF- выключен.
+ XLL API: возможность использования команд XLL в VBA, с задаваемыми параметрами(
первый параметр для каждой команды — API диалога: «0»-Запрос пользователю, «1»-Да, «2»-Нет, «3»-Отмена.
Задаётся отдельно для каждого диалога, т.е. строка «0123» задаёт 4 параметра: «Запрос пользователю», «Да», «Нет», «Отмена» на 4 последовательных диалога)

+ Функции листа:

+ Сумма прописью (разные форматы)

+ ОБЪЕДИНИТЬ (TEXTJOIN) текст из диапазона и (или) строк, вставляя между текстовыми значениями указанный разделитель или массив разделителей — реализовано v2.0.1.7

8. XLL хранение и выполнение VBA кода, или защита VBA кода от просмотра (подробнее по ссылке)

Более подробно (с примерами) в моем блоге на www.cyberforum.ru

Библиотека/Надстройка распространяется бесплатно.

ПЕРЕЙТИ К ЗАГРУЗКЕ НАДСТРОЕК

EXCELTools VBA

Установочный файл надстройки — EXCEL Tools VBA

Excel Tools VBA – надстройка, дополняющая MS Excel уникальными инструментами, которая позволяет автоматизировать рутинные и монотонные операции в MS Excel

Основные функции:

  • 42 пользовательские функции
  • 54 различных инструмента для работы с книгой MS Excel
  • инструменты для работы с листами активной книги
  • инструменты для выполнения операций над ячейками листа
  • прочие инструменты

ПЕРЕЙТИ К ДОКУМЕНТАЦИИ

ПОДЕЛИТЬСЯ ССЫЛКОЙ НА НАДСТРОЙКУ

Version: 3.6 от 20.11.2021

ПЕРЕЙТИ К ЗАГРУЗКЕ НАДСТРОЕК

MACROTools VBA Excel

Установочный файл надстройки – MACRO Tools VBA

Инструмент автоматизации разработки макросов в редакторе VBE MS Excel

Основные функции:

  • удаление паролей с проектов VBA, книг и листов Excel
  • автоматическое форматирование кода, расстановка и удаление отступов в коде
  • автоматическая нумерации строк кода
  • микро подстройка элементов в формах

ПЕРЕЙТИ К ДОКУМЕНТАЦИИ

ПОДЕЛИТЬСЯ ССЫЛКОЙ НА НАДСТРОЙКУ

Version: 1.9 от 09.02.2022

ПЕРЕЙТИ К ЗАГРУЗКЕ НАДСТРОЕК

MACROTools VBA Word

Установочный файл надстройки – MACRO Tools VBA

Инструмент автоматизации разработки макросов в редакторе VBE MS Word

Основные функции:

  • удаление паролей с проектов VBA, документов Word
  • автоматическое форматирование кода, расстановка и удаление отступов в коде
  • автоматическая нумерации строк кода
  • микро подстройка элементов в формах

ПЕРЕЙТИ К ДОКУМЕНТАЦИИ

ПОДЕЛИТЬСЯ ССЫЛКОЙ НА НАДСТРОЙКУ

Version: 1.8.3 от 09.02.2022

ПЕРЕЙТИ К ЗАГРУЗКЕ НАДСТРОЕК

WORDTools VBA

Установочный файл надстройки — WORD Tools VBA

Надстройка автоматизации рутинных и монотонных операций в MS WORD

Основные функции:

  • вставка прописью чисел различных форматов: финансовый, процентный, штуки
  • вставка дат прописью на основе календаря
  • вставка времени прописью
  • авто форматирование текста на основе пользовательских настроек

ПЕРЕЙТИ К ДОКУМЕНТАЦИИ

ПОДЕЛИТЬСЯ ССЫЛКОЙ НА НАДСТРОЙКУ

Version: 1.5 от 09.02.2022

ПЕРЕЙТИ К ЗАГРУЗКЕ НАДСТРОЕК

IMAGETools VBA

Установочный файл надстройки — IMAGE Tools VBA

Image Tools VBA — надстройка для импорта иконок, MS Office на листы Excel и получения их названия, содержит 7842 иконки для MS Office 2013 или более поздних версий Excel.

Основные функции:

  • алфавитная галерея выбора иконок
  • вставка иконки на лист книги Excel, в формате png
  • использование название иконки для кода VBA

ПЕРЕЙТИ К ДОКУМЕНТАЦИИ

ПОДЕЛИТЬСЯ ССЫЛКОЙ НА НАДСТРОЙКУ

Version: 1.2 от 11.08.2020

ПЕРЕЙТИ К ЗАГРУЗКЕ НАДСТРОЕК

STYLETools VBA

Установочный файл надстройки — STYLETools VBA

Надстройка автоматизации рутинных и монотонных операций по созданию презентаций на основе файлов Excel

Основные функции:

  • автоматизация создания презентаций на основе файлов Excel
  • настройка дополнительной пользовательской палитры
  • инструмент пипетка для копирования цветов

Новая надстройка!

ПОДЕЛИТЬСЯ ССЫЛКОЙ НА НАДСТРОЙКУ

Version: 1.0

Библиотека функций в Excel

​Смотрите также​ потомственный программист по​ выборе способа реализации​C_sanches​ на лыжах мечтает…​​2. TMS FlexCel​​ запаковать не получилось.​ в указанном вами​ его в dataset.​ мало где используется.​ решить вашу «проблему».​: Здравствуйте, не могу​В меню​ Вы увидите результат.​ увидите, как вставить​содержит функции для​ результаты для наиболее​В этом уроке мы​ C#​ функции отпал. Нужна​

​: а каким образом​Ну а по​ — из всех​ Походу руки кривые​ компоненте не нашел​Насчет картинок не​ Так что остановлюсь​Рекомендую не использовать​ объявить Excel в​Сервис​ Результат показывает, что​ функцию из библиотеки​

Как получить доступ к библиотеке

​ работы с датами​ распространенных функций Excel,​ познакомимся с самым​, думаю на указанно​ именно библиотека. Желательно​ его встроить в​ поводу «будет использовать​​ 3 испытанных на​​ у меня.)))​

Библиотека функций в Excel

​ функции открытия готового​ знаю не пробовал…​ на «родном» варианте​

Вставить функцию

​ для обработки документов​ коде c#, так​выберите пункт​ доставка заказа заняла​​ Excel, позволяющую вычислить​​ и временем в​ таких как СУММ,​ объемным и часто​

Библиотека функций в Excel

Автосумма

​ ресурсе и здесь,​​ на C#.​​ файл Excel?​ на разных ПК​ данный момент больше​qwertehok​ шаблона.​umatkot​

Библиотека функций в Excel

Последние

​serg4242​​ сам офис (эта​​ как нужен дальнейший​Ссылки​ 4 рабочих дня.​ количество рабочих дней,​

Библиотека функций в Excel

Финансовые

​ формулах. Например, функция​​ СРЗНАЧ, СЧЕТ, МАКС​​ посещаемым разделом Microsoft​ на планете, есть​bedvit, подскажите, пожалуйста,​​The_Prist​​ в разных книгах»​ всего понравилась. Не​​: работает​​qwertehok​

Библиотека функций в Excel

Логические

​:​​: Подскажите компонент для​​ библиотека — «мостик»​ экспорт данных из​.​Так же, как и​ в течение которых​СЕГОДНЯ​ и МИН.​ Excel –​ специалисты по С#​ какие нибудь статьи​: Смотря какие вычисления​ — неясно, в​​ нашел косяков +​​да нет же,​

Библиотека функций в Excel

Текстовые

​: откройте примеры -​​yagami2​​ работы с Excel.​ между вашим приложением​ датагрид в эксель.​В разделе​ формулы, функции в​ должна быть произведена​возвращает текущую дату,​Команда​​Библиотекой функций​​ намного прокаченней меня.​ о создании библиотеки​ должны производиться. Если​​ чем проблема для​​ работа с файлами​

Библиотека функций в Excel

Дата и время

​ работает она с​​ там есть чтение​​, кажется, это делается​ Надо: читать .xls​ и офисом). Для​ Референсы на офис​​Доступные ссылки​​ Excel могут быть​ доставка товара. В​​ а функция​​Последние​. Мы рассмотрим структуру​

Библиотека функций в Excel

Ссылки и массивы

​ Из литературы я​​ на C# для​​ громоздкие, то смотреть​ макросов. У меня​ формата xml, Xls,​ xlsx​ xls​​ стандартным ODBC драйвером​​ и .xlsx, в​ таких целей можно​ добавил все. Подскажите,​установите флажок для​ скопированы в смежные​​ нашем случае мы​​ТДАТА​

Библиотека функций в Excel

Математические

​дает доступ к​​ библиотеки, из каких​​ пользовался гуглом -​ подключения ее потом​ стоит в сторону​ много таких и​ Xls.​ну посмотри ты​плохо​​ и, кстати, делает​​ идеале с возможностью​ использовать сторонние библиотечки,​​ с какого боку​​ библиотеки объектов, которую​​ ячейки. Наведите курсор​​ будем использовать данные​​дополнительно к дате​​ функциям Excel, с​

Библиотека функций в Excel

Другие функции

​ категорий и команд​​ тем, библиотек, примеров​​ в Excel’е. Или​ C++ и создания​ проблем нет. Может​3. zexmlss простенькая​ примеры — они​Setix​ это рекордно быстро,​ чтения картинок из​ которые позволяют работать​

Библиотека функций в Excel

Как вставить функцию из библиотеки

​ зайти.​ требуется задействовать в​ на ячейку, которая​ в столбцах B​ еще и время.​ которыми Вы работали​ она состоит. К​ на С# -​ примеры такой реализации,​ XLL. Вычисления по​ тут стоит пояснить​ библиотека с исходным​ идут вместе​

  1. ​: В общем формируется​ как вставка данных​ ячеек; создавать документы.​ с документами напрямую,​Библиотека функций в Excel
  2. ​P.S. В Visual​​ вашем проекте Visual​​ содержит функцию. Затем​ и C для​​В категории​​ недавно.​
  3. ​ каждой категории приведено​​ множество.​​ буду очень благодарен!​ скорости тогда дадут​ точнее проблему следует?​​ кодом, доступно описан​​PS я писал​Библиотека функций в Excel
  4. ​ временная таблица с​ в DataSet, так​ Сейчас использую Microsoft​​ без необходимости иметь​​ studio 2012 я​ Basic.​ нажмите левую кнопку​ расчета времени доставки.​Библиотека функций в Excel
  5. ​Ссылки и массивы​​Категория​​ небольшое описание, которое​К Примеру:​Андрей VG​ фору всем остальным​ЦитатаC_sanches написал: на​ класс. От остальных​​ в xlsxlsx точно,​​ помощью SQL запроса​ и загрузка в​​ Office, но он​​ на машине установленный​
  6. ​ совсем чайник.​Примечание:​​ мыши и, не​​Выделите ячейку, которая будет​Библиотека функций в Excel
  7. ​содержатся функции, которые​Финансовые​ даст Вам общее​на Хабрахабре.​: Доброе время суток.​Библиотека функций в Excel

​ вариантам.ЦитатаC_sanches написал:​ каком языке лучше​ отстает тем что​ читал из экселя​ в БД. В​ Excel из DataSet.​ не на всех​ офис.​MansMI​ Чтобы ускорить компиляцию, снимите​ отпуская ее, перетащите​ содержать формулу. В​ предназначены для просмотра​содержит функции для​ представление о предназначении​Сразу вам скажу,​C_sanches, есть такой​

Библиотека функций в Excel

​Макросы в их​

office-guru.ru

Добавление библиотек объектов в проект Visual Basic

​ писатькакой лучше знаете​​ нет возможности работать​ точно​ шаблоне Excel указывается​Setix​ машинах стоит. Также​Погуглите OpenXML SDK​: C# using System.Runtime.InteropServices;​ флажки для библиотек​ маркер автозаполнения по​ нашем примере это​ и поиска информации.​ финансовых расчетов, например,​ функций, входящих в​ если вы хорошо​ проект , там​ файлах не используютсяИ​ЦитатаC_sanches написал: будет​ с диаграммами и​krapotkin​ место вывода таблицы​: Кто может посоветовать​

​ работал с NPOI,​ или ClosedXML.​ using Excel =​ объектов, которые не​ ячейкам, которые необходимо​

Добавление объекта

​ ячейка D3.​ Например, Вы можете​ сумма периодического платежа​ библиотеку. В конце​ знаете VBA, но​ достаточно много и​

  1. ​ что? Нельзя использовать?​​ ли приводить вызов​​ комментарием, Они хоть​​: для работы с​​ с помощью спец.​

    Выбор параметров меню '' Сервис ''

  2. ​ библиотеку или компоненты​​ но он не​​MsGuns​ Microsoft.Office.Interop.Excel; ……………… //Проект/Добавить​ будут использоваться в​ заполнить. Функция будет​Выберите вкладку​

    Диалоговое окно доступные ссылки

    ​ добавить гиперссылку (​​ПЛТ​ урока мы на​ не знаете C#,​ примеров, есть и​ Т.к.ЦитатаC_sanches написал:​

  3. ​ функции в этой​ и описаны в​ файлами Excel довольно​​ меток (а также​​ для работы с​ поддерживает .xlsx. Желательно​: Спасибо за ответ.​ ссылку/NET/Microsoft.Office.Interop.Excel //http://www.sql.ru/forum/620401/funkcii-dlya-raboty-s-excel-iz-c try​​ проекте.​​ скопирована, а значения​

  4. ​Формулы​​ГИПЕРССЫЛКА​​или процентная ставка​ примере разберем, как​​ написать надстройку .xlam​​ группа, обсуждающая вопросы​им нужна некая​

  5. Найдите объект

Отображение вкладки «Разработчик»

  1. ​ библиотеке к зависанию​​ классе, но сохраняются​​ неплохо подходит Libre​​ нужные колонки (тоже​​ файлами (Xls и​​ простой, быстрый и​​Ссылка на библиотеку​

  2. ​ { app =​​Чтобы задать порядок доступа​​ вычислены в зависимости​​на Ленте, чтобы​​) в ячейку или​​ по кредиту​​ вставить функцию из​

  3. ​ вам будет значительно​​ использования. В частности​​ функция, которой нет​​ или крашу Excel’я?зависит​​ только в формате​

support.office.com

Как подключить библиотеки для работы с Excel

​ Office, который тоже​​ спец метки)). Суть:​ Xlsx). Желательно чтобы​ с нормальным описанием.​ добавляется (Core),но interopt​ new Excel.Application(); app.Workbooks.Open(tbFile.Text,​ к библиотекам объектов,​ от строк или​ открыть​ вернуть значение, которое​СТАВКА​
​ библиотеки.​ проще и быстрее.​ bedvit создал свою​

​ в Excelто её​​ от того, как​ Xml, Xslx формат​ поддается автоматизации​ прочитать шаблон, найти​ работать можно было​lexus-tikhvin​ не появляется. Поставил​ obj, obj, obj,​ в разделе​ столбцов.​Библиотеку функций​

CyberForum.ru

Библиотека для работы с Excel в Windows Form

​ расположено на пересечении​​.​
​В Microsoft Excel имеются​ Но если уж​ библиотеку с использованием​ и можно написать​ напишите код библиотеки.​
​ их вырезает.​еще есть TMS​ метки, вывести между​ без установки Excel.​: OfficeOpenXml.​ вместо 2003-го 2007-й​ obj, obj, obj,​Доступные ссылки​Автор: Антон Андронов​.​ заданных строки и​
​Функции из категории​ сотни самых различных​ вы решили… дерзайте​
​ этого проекта.​ как раз на​
​ Напишите правильно -​C_sanches​

​ FlexCell​​ метками информацию. В​​qwertehok​​Не уверен насчет​ офис и все​ obj, obj, obj,​
​выберите любую библиотеку​Примечание:​В группе команд​ столбца (​Логические​ функций, которые делятся​bedvit​Успехов.​ VBA и использовать​ не будет приводить.​:​Setix​ связи с этим​
​: платный или бесплатный?​ чтения, использую для​

​ заработало.​​ obj, obj, obj,​
​ и переместите ее​Мы стараемся как​Библиотека функций​ИНДЕКС​используются для проверки​ по категориям. Все​
​: Причем для увеличения​bedvit​ на листе:​C_sanches​Всем привет!​

​: И так опробовал​​ формирование шаблона на​​Setix​​ быстрого создания и​xxxxXML установить не​ obj, obj); }​​ вверх или вниз​​ можно оперативнее обеспечивать​, выберите нужную категорию.​).​ аргументов на соответствие​ эти функции составляют​ быстродействия, в моем​: C_sanches, почитайте, то​

​bedvit​​: Пользователи уже имеют​​Нужно написать функцию со​​ 3 библиотеки:​ уровне кода не​: В идеале бесплатный.​ форматирования excel-файла.​ могу, т.к. по​MsGuns​ с помощью кнопок​ вас актуальными справочными​ В нашем случае​Категория​ определенному значению или​ общую библиотеку. Вам​

CyberForum.ru

Независимая библиотека для работы с Excel

​ случае, использовались библиотеки​​ что советует Андрей​: C_sanches, все зависит​ Excel-файлы со всеми​ сложными вычислениями. И​1. XLSReadWriteII 5.2,​ приемлемо так как​ Просто пока ничего​Rius​ требованию заказчика, проект​: Здравствуйте !​приоритета​ материалами на вашем​ мы выберем​Математические​ условию. Например, если​ нет необходимости досконально​

​ написанные на С​​ VG, ExcelDNA -​
​ от ваших знаний,​ вычислениями, которые доступны​ возникло несколько вопросов:​TMS FlexCell,​

​ шаблон доступен для​​ найти не могу​: Если пойдёт только​ должен быть в​Необходимо в проекте​.​

​ языке. Эта страница​​Дата и время​​включает в себя​​ сумма заказа меньше​ изучать каждую функцию,​
​ с ассемблерными вставками​

​ в некоторых случаях​​ вот использования библиотеки,​ Excel без сторонних​1. Что лучше, сохранить​zexmlss​ правки пользователю (форматирование​ путного. Требуется на​ xlsx, то упомянутый​
​ «чистой» VS-2012​
​ работать с книгами​

​Чтобы добавить в раздел​​ переведена автоматически, поэтому​.​ функции для обработки​
​ $50, то добавляется​
​ но познакомиться с​ (сторонние), здесь я​ очень полезная разработка,​
​ написанной на C#​ библиотек и надстроек.​

​ код как надстройка​​Не много о​​ строк, столбцов). Нужен​​ основе шаблона сделать​ выше способ. Как​Usaga​ Excel. Для этого,​Доступные ссылки​ ее текст может​Выберите нужную функцию из​ числовых аргументов, выполняющие​

CyberForum.ru

Xls и Xlsx библиотеки и компоненты для работы с файлами

​ цена доставки $4.99,​​ несколькими основными из​ пасс… Поэтому прирост​ особенно если вы​ для Excel (VBA)​ Но им нужна​ (*.xla) или в​ каждой:​

​ компонент или библиотека​​ отчет без использования​

​ начать: Генерируем OfficeOpenXML-документы​​:​ как я узнал,​другую библиотеку, нажмите​ содержать неточности и​ выпадающего меню. Мы​ различные математические и​ а если больше,​

​ каждой категории будет​​ производительности от обычного​
​ планируете писать на​ (автором этих строк).​
​ некая функция, которой​ отдельную библиотеку (макрос​1. Начну с​ чтобы прочитать файл​ Excel.​
​ за 5 минут.​MsGuns​

​ используется библиотека Microsoft.Office.Interop.Excel.​​ кнопку​ грамматические ошибки. Для​ выберем функцию​ тригонометрические вычисления. Например,​ то стоимость доставки​ весьма полезно.​ кода на С#​ C# для Excel​ Используется для расчета​ нет в Excel,​ не подойдет, т.к.​ платной XLSReadWriteII 5.2​ заполнить данными и​qwertehok​NewOrdered​, установка библиотеки «чистоту»​

​Но если ее​​Обзор​ нас важно, чтобы​ЧИСТРАБДНИ​
​ вы можете округлить​

​ не взимается. В​​Чтобы получить доступ к​ в dll/xll и​ (VBA). Скачайте и​ больших чисел (длинная​ поэтому и встал​ функция будет использоваться​ — обладает почти​ сохранить.​: на форуме обсуждался​:​ проекта не портит.​ добавить явно в​и укажите путь​ эта статья была​, чтобы вычислить количество​ значение (​ данном примере целесообразно​ библиотеке функций Excel,​ VBA в xlam​ установите Microsoft Visual​ арифметика).​ вопрос о написании​ в нескольких Excel-книгах​ полным функционалом для​

​qwertehok​​Приёмы работы с​serg4242​ К тому же,​ Using, то компилятор​

​ к необходимому файлу.​​ вам полезна. Просим​ рабочих дней между​ОКРУГЛ​
​ использовать функцию​ выберите вкладку Формулы.​ возможно будет не​
​ Studio 2015 (бесплатная​Но это когда​ библиотеки. Пользователь только​​ на разных ПК)​​ работы с файлами​: я тебе написал​ zexmlss​, взгляните на эту​Microsoft.Office.Interop.Excel​ ругается на отсутствие​На верхней панели выберите​ вас уделить пару​ датами заказа и​

​), найти значение Пи​​ЕСЛИ​
​ Все возможные категории​ столь высок, что​ версия, с незначительными​
​ критически важно считать​ подключит ее и​2. Если это библиотека,​
​ xlsx и xls.​ уже — эта​отличный компонент, на​ библиотеку​

​- тоже сторонняя​​ ‘Office’ в пространстве​Excel​ секунд и сообщить,​ получения товара.​ (​
​.​ и команды вы​

​ бы компенсировать быстроту​​ для ваших целей​ быстро и наиболее​
​ сможет использовать. Макросы​
​ то на каком​
​ Много различных классов​
​ библиотека позволяет читать​ сайте есть все​
​http://epplus.codeplex.com/​ библиотека, её в​ имен. Попытка добавить​>​ помогла ли она​Появится диалоговое окно​ПИ​В категории​ можете увидеть в​ разработки в VBA,​ ограничениями).​ эффективно использовать ресурсы​ в их файлах​ языке лучше писать​ и описаний, и​ экселевские файлы​ примеры и почта​umatkot​ .NET нету, тащится​ ссылку через обозреватель​настройки​ вам, с помощью​Аргументы функции​), произведение (​Текстовые​
​ группе​ и преодоления порога​Поделайте простые задания,​ ПК.​ не используются.ЦитатаThe_Prist написал:​ (подойдет ли C#)?​ прочего. На версии​Setix​ автора — связаться​
​: Странно, заметил, за​ с офисным пакетом.​ решений (раздел COM,​>​ кнопок внизу страницы.​. Здесь вы можете​ПРОИЗВЕД​содержатся функции, которые​Библиотека функций​ вхождения в новый​ к примеру, .​В вашем случае,​ какой лучше знаетет.е.​

CyberForum.ru

Написание библиотеки для Excel

​3. Вычисления будут сложными​​ 5,2 нашел 1​

​: Поставил библиотеку посмотрел​

​ можно​ собой черту, что​ Так, что условие​

​ библиотека Microsoft Excel​панель инструментов и ленты​ Для удобства также​ ввести или выбрать​), промежуточные итоги (​ работают с текстом​.​ язык.​

​ Там же можно​ возможно, можно просто​ нет принципиальной разницы,​ и их будет​

​ косяк при попытке​ с чем работает​из платных -​ всегда при ответе,​ «чистоты» вы уже​ 12.0 Object Library)​.​ приводим ссылку на​

​ ячейки, которые будут​

​ПРОМЕЖУТОЧНЫЕ.ИТОГИ​​ в качестве значений​Разберем, какую задачу выполняет​C_sanches​ создать тему, если​ обойтись надстройкой (*.xla)​ на чем будет​ очень много. Используя​
​ записать ячейку с​ она.​ XLSReadWriteII​ получается, что с​ нарушили.​ проблему не решила.​В разделе​ оригинал (на английском​ составлять аргументы. Мы​) и многое другое.​ аргументов. С помощью​
​ каждая из команд​: Андрей VG, bedvit,​ вам потребуется помощь​
​ или (*.xlam)​ написана библиотека? В​ библиотеку, будет ли​ данными в формате​1. Работу с​Setix​ кем-то спорю. Так​MsGuns​Студия 2012, на​

​Настройка ленты​​ языке) .​ введем B3 в​Раздел​ них можно решать​ группы:​ спасибо за ссылки​ (это не реклама),​bedvit​ плане скорости работы​ приводить вызов функции​ «{}» вместо фигурной​ файлами Xls совсем​: zexmlss: там идет​ вот же: закон​:​ ПК установлен Excel​выберите​В своем коде можно​ поле​Другие функции​ такие задачи, как​Если у Вас возникли​ и пояснения.​ может и я​

​: Это проще и​​ и возможности добавить​ в этой библиотеке​ скобки «}» выводит​ не обнаружил.​ создание самого шаблона​ подлости.​

​Usaga​​ 2003​Основные вкладки​ задействовать другие объекты​

​Нач_дата​​содержит дополнительные категории​ преобразование текста в​ проблемы с поиском​C# выбран, т.к.​ чем-то смогу помочь​ нужно только знания​ функцию, которая будет​ к зависанию или​ — «/» на​
​2. Там представленна​ с помощью кода.​Используйте ClosedXml)))​, Спасибо еще раз,​
​Подскажите, пожалуйста, что​и установите флажок​ приложения, задав ссылки​и С3 в​ библиотеки функций, такие​ нижний регистр (​ необходимой функции в​

​ его знаю (что​​ (когда будет время).​ VBA.​ доступна потом в​ крашу Excel’я?​ более поздних версиях​ работа с xml​ У меня не​https://github.com/ClosedXML​ но, судя по​
​ делать.​Разработчик​ на библиотеку объектов​ поле​ как Статистические, Инженерные,​
​СТРОЧН​ Excel, команда​ не сказать о​ Потом, если вы​

​C_sanches​​ ячейках Excel’я​Спасибо!​ не могу сказать​

​ и​​ много другая задача.​yagami2​ количеству материала в​Спасибо за любую​.​ этого приложения.​
​Кон_дата​ Аналитические, Проверка свойств​) или замена части​Вставить функцию​ VBA).​
​ поймете, что это​: именно это и​Пытливый​The_Prist​ не тестировал. Сохраняет​РАСПАКОВАННЫМ​ Шаблон условно создает​: Меня в своем​

​ Сети, interop, пожалуй,​​ помощь​
​Нажмите кнопку​На вкладке «Разработчик» откройте​.​ и значений, а​ текста на другое​позволяет найти ее​Буду пробовать реализовывать​ для вас интересно​ важно в моей​
​: Если встроить код​

​: вопрос из разряда​​ все стандартные форматы​xlsx файлом. При​ пользователь. Моя цель​ время вот эта​ самый популярный вариант​Usaga​Сохранить​ окно проекта Visual​Если аргументы введены правильно,​ также функции, оставленные​ значение (​ при помощи ключевых​ то, что задумал.​ и вы готовы​
​ задаче. Только будут​ функции в файл,​ «как провести лето».​ (xml,xls,xlsx). Есть возможность​ этом не приведены​ открыть этот шаблон​ библиотека очень выручила​ работы из шарпа​:​и закройте​ Basic. Увидеть вкладки​ нажмите​ для поддержки совместимости​ЗАМЕНИТЬ​ слов.​ Еще раз всем​ писать на C#,​ использоваться не большие​ то эта функция​:)​ Кому-то нравится дикарем​ перевода в другие​ примеры, чем запаковывать​ взять данные что​https://exceldatareader.codeplex.com/​ с Экселем. Поменял​MsGuns​Параметров Excel​ «разработчик» отображается ниже,​ОК​
​ с предыдущими версиями​
​).​
​Команда​ спасибо. Если будут​ далее почитайте по​ числа, а большое​ будет доступна в​ на море, кому-то​ форматы Html и​ файл потом. Попробовал​ есть в шаблоне​:)

​Берет excel файл​​ офис, все равно​, добавление ссылки на​.​ если она еще​.​ Excel.​Категория​Автосумма​ вопросы, обязательно сюда​ COM, XLL, DLL.​ количество небольших чисел.​ файле, в чем​ All-inclusive подавай, а​ прочие. Подробнее на​ поработать с распакованным​ и по ним​ и целиком пихает​ старый 2003 сейчас​

​ эту библиотеку должно​​Loathem​ не открыта.​Функция будет вычислена, и​
​В следующем примере Вы​Дата и время​позволяет автоматически вычислять​ обращусь.​
​ Признаться я не​UPD: Вопрос о​ проблема? Пользовательская функция.​ кто-то в Альпы​ сайте у производителя.​ файлом, а потом​

planetaexcel.ru

​ заполнить отчет. Просто​

Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

12.02.2010, 17:42

247

здесь больше нет…

3372 / 1670 / 184

Регистрация: 03.02.2010

Сообщений: 1,219

13.02.2010, 13:45

 [ТС]

2

В этой теме участники форума выкладывают свои (и чужие) наработки

Для пользователей Excel 2007:
— это пользовательская вкладка в Excel 2007 (через XML-внутренности), на которой сгруппированы часто используемые мной встроенные команды и некоторые общие макросы; все реализовано в надстройке Ribbon.xlam, так что изменение интерфейса производится на уровне всего приложения.

Всем, кто хочет изменить неизменяемую Ленту, прошу.
Будут вопросы, обращайтесь



12



здесь больше нет…

3372 / 1670 / 184

Регистрация: 03.02.2010

Сообщений: 1,219

13.02.2010, 17:36

 [ТС]

3

Для любителей полушутливых макросов:



11



10027 / 2616 / 84

Регистрация: 17.02.2009

Сообщений: 10,364

13.02.2010, 19:10

4



3



Частенько бываю

749 / 330 / 42

Регистрация: 20.06.2007

Сообщений: 854

26.05.2010, 11:07

5

При большом количестве открытых книг не всегда удобно переключаться между ними, видеть одновременно названия через интерфейс Excel. Надстройка добавляет настраиваемую панель с названиями открытых книг и удобным переходом. Может кому сгодится.



14



5590 / 1580 / 406

Регистрация: 23.12.2010

Сообщений: 2,366

Записей в блоге: 1

11.01.2011, 16:02

6

3 вида блуждания, реализованные до кучи как заставки в Морском бое.



5



5590 / 1580 / 406

Регистрация: 23.12.2010

Сообщений: 2,366

Записей в блоге: 1

12.01.2011, 09:20

7

Еще блуждание — питонов.



3



695 / 236 / 18

Регистрация: 17.01.2011

Сообщений: 583

Записей в блоге: 1

07.06.2011, 11:49

8

Разработчики Excel выложили надстройку очень симпатичного всплывающего календаря samradDatePicker.xls . При активации ячейки содержащей дату, любой книги Excel, рядом с датой появляется смайлик календаря, щёлкнув по которому можно вызвать этот всплывающий календарик. Что бы он был у вас постоянно под рукой, поставьте этот файл на автозагрузку.



9



40 / 15 / 0

Регистрация: 03.11.2010

Сообщений: 13

14.11.2011, 12:29

9

Шутливый макрос.
Движение кнопки от наведения на него курсора.
Нажать не возможно.
Убегает.

Больше не знаю что написать. (Пароли сняты).



10



Апострофф

Заблокирован

17.11.2011, 21:56

10

Первый вариант

SpecCharCls

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Public Function SpecCharCls( _
        ByVal strSearchIn As String, _
        Optional ByVal blnTrim As Boolean = False, _
        Optional ByVal blnSpaseDelete As Boolean = False _
        ) As String             '=== функция: очистка строки от спец. символов
    ' strSearchIn       - исходная строка
    ' blnTrim           - флаг: удалить начальные и конечные пробелы из итоговой строки
    ' blnSpaseDelete    - флаг: удалить все пробелы
    Dim i As Integer
    Dim siMid As String * 1     ' выделенный символ
    'Dim strNew As String        ' "очищенная" строка
    'Dim siAsc As Integer        ' ANCI код символа
    'Dim siLen As Integer        ' длинна очищаемой строки
    
    SpecCharCls = strSearchIn    ' перадаём строку локальной переменной
    ' удаляем все пробелы из строки
    ' если удаляем все пробелы, лучше это сделать сразу - цикл будет короче
 
'    If blnSpaseDelete = True Then SpecCharCls = Replace(SpecCharCls, " ", "")
    If blnSpaseDelete Then SpecCharCls = Replace(SpecCharCls, " ", "") 'зачем лишние сравнения для булевой переменной
    'siLen = Len(SpecCharCls)     ' считаем длинну строки
    For i = 1 To Len(SpecCharCls)      ' перебераем все символы строки по циклу
        siMid = Mid(strSearchIn, i, 1)  ' получаем символ из строки
        'siAsc = Asc(siMid)              ' преобразовываем полученный символ в ANCII код
        If siMid < " " Then SpecCharCls = Replace(SpecCharCls, siMid, "")  ' удаляем спец.символ
    Next i
    ' удаляем пробелы в начале и в конце строки. Это лучше делать в конце цикла,
    ' т.к. в исходной строке могут быть пробелы "экранированные" спец. символами
 
'    If blnTrim = True Then SpecCharCls = Trim(SpecCharCls)
    If blnTrim Then SpecCharCls = Trim(SpecCharCls) 'зачем лишние сравнения с True?
    'SpecCharCls = SpecCharCls             ' возвращаем результат
End Function

То же самое, только в два раза быстрее

SpecCharCls3

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Public Function SpecCharCls3( _
        ByVal strSearchIn As String, _
        Optional ByVal blnTrim As Boolean = False, _
        Optional ByVal blnSpaseDelete As Boolean = False _
        ) As String             '=== функция: очистка строки от спец. символов
    ' strSearchIn       - исходная строка
    ' blnTrim           - флаг: удалить начальные и конечные пробелы из итоговой строки
    ' blnSpaseDelete    - флаг: удалить все пробелы
    Dim b() As Byte, a() As Byte
    b = strSearchIn
    ReDim a(UBound(b))
    Dim i As Long, J As Long
    For i = 0 To UBound(b) Step 2
      If b(i) >= 32 - blnSpaseDelete Or b(i + 1) > 0 Then
        a(J) = b(i)
        a(J + 1) = b(i + 1)
        J = J + 2
      End If
    Next i
    ReDim Preserve a(J - 1)
    If blnTrim Then SpecCharCls3 = Trim$(a) Else SpecCharCls3 = a
End Function

И для любителей экстрима

SpecCharCls4

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Option Explicit
Private Type TSafeArray
    Dims As Integer
    Features As Integer
    ElementSize As Integer
    Locks As Integer
    Handle As Long
    DataPtr As Long
    Length As Long
    LBound As Long
End Type
 
Private Declare Sub SetCharArray Lib "msvbvm60" Alias "GetMem4" (ByRef SafeArrayPtr As Long, ByRef CharArray() As String * 1)
 
Dim sa As TSafeArray, a() As String * 1
 
Public Function SpecCharCls4(ByVal strSearchIn As String) '
SetCharArray VarPtr(sa), a
With sa
    .Dims = 1
    .Features = 128
    .ElementSize = 2
    .Locks = 0
    .Handle = 0
    .LBound = 0
    .DataPtr = StrPtr(strSearchIn)
    .Length = Len(strSearchIn)
End With
 
Dim I As Long
For I = 0 To UBound(a)
  If a(I) < " " Then a(I) = Chr$(0)
Next I
SpecCharCls4 = Trim$(Replace(strSearchIn, Chr$(0), ""))
SetCharArray 0&, a
End Function

Как пользоваться:

Visual Basic
1
2
3
4
Sub qqq()
Dim s$: s = "   " & vbTab & "  dfghjdf  " & vbTab & "   dsthf  " & vbLf & "  kln  jkn   " & vbCr & "      "
  MsgBox SpecCharCls3(s, True, True)
End Sub

Нужны проверки, явно присутствуют возможности для оптимизации.
Но даже на этой стадии данный код быстрее вышеизложенных.

Другие сообщения этой темы: Очистка строки от от спец. символов («Tab», перевод каретки и пр.)



10



KoGG

5590 / 1580 / 406

Регистрация: 23.12.2010

Сообщений: 2,366

Записей в блоге: 1

12.01.2012, 15:05

11

Макросы и пользовательские функции для работы с цветом. Цвета более насыщенные в Офисе 2007 и 2010.

Visual Basic
1
2
Function СумЕслиЦвет(Oblast As Range, Obrazec As Range) As Variant
' Суммирует заданный диапазон ячеек при условии, что RGB цвет фона слагаемого совпадает с цветом фона ячейки образца.
Visual Basic
1
2
Function СчетЕслиЦвет(Oblast As Range, Obrazec As Range) As Variant
' Считает число ячеек в заданном диапазоне, цвет фона которых совпадает с цветом фона ячейки образца.
Visual Basic
1
2
Sub Сортировка_строк_по_цвету()
' Сортирует строки в порядке цветов в спектре, либо в обратном порядке, предварительно индексируя цвета до ближайшего спектрального, либо - при цветоразличии компоненнтов не более 5% от среднего – до оттенка серого.
Visual Basic
1
2
Sub Создать_спектральную_матрицу()
' Закрашивает выделенную область спектральными и промежуточными цветами в заданном порядке.
Visual Basic
1
2
Sub Цветовое_насыщение_области()
'Изменяет цвет фона ячеек выделенной области на ближайший насыщенный спектральный цвет, либо на оттенок серого при цветоразличии компонентов не более 5% от среднего.
Visual Basic
1
2
Sub Обесцвечивание_области()
' Изменяет цвет фона ячеек выделенной области на ближайший оттенок серого.
Visual Basic
1
2
Sub Раскрасить_последовательность()
' Изменяет цвет фона каждой ячейки выделенной области строки или столбца на последовательный спектральный цвет.

Вложения

Тип файла: xls Работа_с_цветом.xls (64.5 Кб, 490 просмотров)



9



KoGG

5590 / 1580 / 406

Регистрация: 23.12.2010

Сообщений: 2,366

Записей в блоге: 1

28.01.2012, 14:50

12

Перевод крякозябров, возникщих при копировании из VBE , в кириллицу (Word).

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Крякозябр_в_Кириллицу()
' Переводит последствия неправильного копирования из VBE обратно в кириллицу
' в тексте документа Word.
    Dim iUni As Integer, oChar As Range
    For Each oChar In ActiveDocument.Characters
        iUni = AscW(oChar.Text)
        Select Case iUni
             Case 168, 184, 192 To 255
                oChar.Select
                Selection.TypeText (Chr(iUni))
             Case Else
        End Select
    Next
End Sub

Добавил чувствительность к регистру.



7



5590 / 1580 / 406

Регистрация: 23.12.2010

Сообщений: 2,366

Записей в блоге: 1

14.02.2012, 09:37

13

. . . в раздел бесполезных, но оригинальных макросов . . .

Калейдоскоп — оказался не так прост для программирования .



21



465 / 179 / 15

Регистрация: 25.02.2012

Сообщений: 416

Записей в блоге: 2

25.02.2012, 22:06

14

Прикрепляю свой Add-in:
Add-in VB Style Code

Возможности:

  • Авто-форматирование строк кода в зависимости от операторов;
  • Авто-вставка недостающих конечных конструкторов.
  • Скроллинг с помощью мышиного колеса.
  • Авто-вставка Then для конструкции If-ElseIf в случаи его отсутствия;
  • Авто-вставка знака комментария;
  • Авто-вставка шаблона текста при добавлении функции/процедуры;
  • Авто-текст;
  • Авто-замена инкрементные (++) и декрементные (—) операции;
  • Авто-замена составное присваивание (+=, -=, *=, /=, =, &=);
  • Авто-замена инициализации переменных с объявлением;
  • Нумерация строк кода;
  • Объявление функций, типов и констант (через #include);
  • Настройка обработчиков ошибок;
  • Подсветка синтаксиса;
  • Выбор стиля интерфейса;
  • Выбор языка интерфейса;
  • MDI-вкладки;
  • Быстрый переход к функциям и процедурам;
  • Архивация проекта;

Горячие клавиши:

  • Ctrl + Alt + Tab — Форматировать выделенный фрагмент кода;
  • Ctrl + S — Сохранение модулей в режиме отладки;
  • Ctrl + B — Возврат отменённых изменений по коду;
  • Ctrl + ‘ — Добавить знак комментария;
  • Ctrl + Shift + ‘ — Удалить знак комментария;
  • F6 — Установка / удаление закладки;
  • Shift + F6 — Переход между закладками;
  • F11 — Вызов окна перехода к функциям и процедурам;

Файл: VBStyleCode.rar (289.68 Кбайт)

Файл: Languages.rar (471.75 Кбайт)
Для установки языков интерфейса нужно распаковать архив в путь, который находится сам установочный файл.

Файл: Include.rar (129.59 Кбайт)
Примерные варианты include файлов.

для обсуждения



11



здесь больше нет…

3372 / 1670 / 184

Регистрация: 03.02.2010

Сообщений: 1,219

24.04.2012, 23:11

 [ТС]

15

нашел в каких-то старых папках…
чье это творение? не знаю



2



Модератор

Эксперт функциональных языков программированияЭксперт Python

34707 / 19228 / 4039

Регистрация: 12.02.2012

Сообщений: 32,185

Записей в блоге: 13

11.06.2012, 19:20

16

Предлагаю свою поделку — надстройку с функциями:

1) Убрать из выделенного диапазона числа, но оставить формулы
2) Объединить несколько смежных ячеек в строке без потери данных
3) То же для столбца
4) Подсчет в выделенном диапазоне к-ва нечисловых ячеек (и выделение их цветом)
5) Перевод текста в выделенном диапазоне в загл. буквы
6) То же — в строчные
7) Замена белиберды, которая возникает, когда забудешь переключить rus-lat (в обе стороны)

Может, будет полезно…



10



Модератор

Эксперт функциональных языков программированияЭксперт Python

34707 / 19228 / 4039

Регистрация: 12.02.2012

Сообщений: 32,185

Записей в блоге: 13

18.06.2012, 21:20

17

Хочу поделиться способом хранения exe-файлов в рабочей книге Excel. Может быть полезным в том случае, когда exe-шник не должен сидеть в папке. Выгружаете, запускаете, удаляете… Выражаю надежду, что служить это будет только целям добра.



11



Модератор

Эксперт функциональных языков программированияЭксперт Python

34707 / 19228 / 4039

Регистрация: 12.02.2012

Сообщений: 32,185

Записей в блоге: 13

25.06.2012, 12:10

18

Вот еще поделка: dll-ка, содержащая следующие классы:

1) cDBF — для работы с DBF-ами (dbase-III);
2) clsCal — симпатичный (как мне кажется) календарь;
3) clsFstr — класс для работы с текстовым файлом (входным), как с массивом строк;
4) clsCoder — кодировщик строк

Достаточно подробная инструкция и примеры — в архиве.



9



Модератор

Эксперт функциональных языков программированияЭксперт Python

34707 / 19228 / 4039

Регистрация: 12.02.2012

Сообщений: 32,185

Записей в блоге: 13

27.06.2012, 12:04

19

А вот еще небесполезная штука:

1) Номера 3000 встроенных иконок Excel (использовать в FaceID)
2) Коды стандартных цветов
3) Коды символов (двойной щелчок по коду дает десятичный и шестнадцатеричный коды символа)



6



Модератор

Эксперт функциональных языков программированияЭксперт Python

34707 / 19228 / 4039

Регистрация: 12.02.2012

Сообщений: 32,185

Записей в блоге: 13

29.06.2012, 12:07

20

Вот достаточно старая поделка (была в 2005-м опубликована на vbrussian.com). Пример создания «web-сервиса» средствами asp и использование Excel, как web-клиента для построения диаграмм и графиков. В прилагаемом архиве — статья с картинками и все исходники.



7



Понравилась статья? Поделить с друзьями:
  • Библиотеки vba excel скачать
  • Библиотеки java для работы с word
  • Библиотека шаблонов для word
  • Библиотека функций в excel для чего
  • Библиотека функций excel это