Макросы excel для openoffice

Макросы в Excel обратитесь к последовательности инструкций или команды, которые будут выполняться в электронной таблице. Иногда нам понадобится импортировать данные из Excel в базу данных OpenOffice , но могут возникнуть проблемы с макросами. Вот почему мы собираемся научить вас, как легко преобразовать файл макроса Excel в OpenOffice.

Что такое макрос и для чего он нужен? , поскольку цель не нет необходимости выполнять одни и те же задачи все время, потому что Excel может сохранять эти макросы в определенном месте; Они бывают простыми или сложными и становятся очень полезным инструментом.

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

Язык Visual Basic для приложений или VBA — это тот, который используется в Microsoft Excel. для легко создавать макросы в Excel шаг за шагом ; которые также используются Powerpoint, Outlook, Word и другими.

Эти макросы можно экспортировать в файлы трех разных типов ; чьи расширения и их связь с макросами будут описаны ниже:

  • Файлы с расширением .xlsm: это файлы Excel, содержащие один или несколько встроенных макросов.
  • .Xltm extension: это файлы типа шаблона, в которых сохраняется макрос; инструкции которого можно загрузить из других проектов Excel с расширением .xlsm.
  • Расширение .Xlam: это тип файла, который используется в качестве внешнего дополнения и в дополнение к файлу .xlsm для выполнения инструкций макроса.

Что такое OpenOffice?

Помните, что OpenOffice — это группа программы, принадлежащие Apache Software Foundation , с целью одновременного создания, развития и защиты ряда документов, которые используются на уровне офисов, жилых домов и государственных предприятий.

Эта группа состоит из разных программ, таких как Writer, Base, Draw, Math, Impress и Calc ; у каждого из них есть свой аналог в Microsoft Office.

Например Calc, была электронная таблица где мы можем импортировать файлы XML в электронную таблицу в OpenOffice и делать то же самое, что и в Microsoft Excel; позволяя выполнять все виды математических операций и экспортировать в другие документы, такие как PDF.

Как легко преобразовать файл макроса Excel в OpenOffice?

Мы должны помнить что Excel использует язык VBA для создания макросов, а инструмент OpenOffice неправильно читает Visual Basic, поэтому, если мы хотим преобразовать файл макроса из Excel в OpenOffice, для выполнения этой процедуры потребуется дополнительный инструмент.

Есть альтернативы, которые могут помочь нам в этом преобразовании, например, передача макросов из Microsoft Excel Visual в OpenOffice Calc; в некоторых случаях изменение не завершено и необходимо внести коррективы чтобы он работал на 100% в OpenOffice.

Этот инструмент подходит программистам, которым нужен быстрый процесс преобразования; что позволит нам заменить Excel VBA на Calc’s OO Basic, что мы достигнем через бесплатную веб-страницу.

Это происходит со страницы Деловые таблицы , в направлении которого после ввода вы увидите большой прямоугольник с надписью «Excel VBA Code», где вам нужно разместить код Visual Basic; затем вы нажмите «Конвертировать VBA» и он сразу станет CalcBasic.

Однако мы должны отметить, что с 2006 года в OpenOffice можно установить некоторые дополнительные программы, совместимые с макросами Excel. В результате мы избегаем постоянного преобразования кодов VBA (Visual Basic для приложений) в OO Basic; Comme программа Go-oo .

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

Ezoic

Автор Kosh, 12 мая 2016, 12:40

0 Пользователи и 1 гость просматривают эту тему.

Здравствуйте!
Помогите, пожалуйста решить проблему. Имеется файл excel с макросами на VBA, который нужно открыть в openoffice calc!
Перебрал разнообразные варианты, но каждый раз при открытии макросы не работают.

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


Добро пожаловать на форум!
Его открыть-запустить в AOO и там и оставить? Или нужно будет вернуть человеку с Excel?
Какая версия офиса? Под какой ОС? Почему не LibreOffice?

Цитата: Kosh от 12 мая 2016, 12:40
Если нужно, напишите — прикреплю файлик!

Пишу: «Нужно! Прикрепляй!»  ;D


Спасибо, JohnSUN!

Да, его нужно открыть-запустить и оставить в ОО или LibO это не принципиально, главное чтоб все работало)))

Версия excel, насколько я помню была 2007, машину не помню (ОС)…

Просто половину макросов писал я, а половину до меня… И было это 2 года назад, мало что помню.. но вот пришлось вернуться к проекту, а тут такая засада, excel использовать нельзя(((

Файл в прикрепе  :beer:


Да, чувствуется, что давно писалось… Я так понимаю, что сегодня формулы в ГФ0.B69:AF71 ты написал бы чуть иначе, да? Да и всё связанное с пересчётом дат-дней-лет тоже, наверное, упростилось бы…

Быстро исправить и запустить не получится — слишком много хомутов зависло в коде, которые нужно осмысливать и изменять. Похоже, даже под Экселем эта книга не заработала бы… Прими мои соболезнования — у тебя впереди много часов увлекательной работы…

Кстати, раз уж всё равно книгу придётся переделывать с нуля, то может выбрать какой-то другой инструмент? Насколько я успел увидеть, то электронную таблицу выбрали не столько за возможность что-то считать, сколько за возможность яркого форматирования…


Да сегодня все по-другому было бы…
Хочется упростить рутинную работу.. но моих знаний уже не хватает, да и «растерял половину»…
Вот ищу пути выхода из ситуации… Просто «она» работала в экселе, когда я её открывал последний раз, а сейчас новое время, новые потребности.
Я вообще начинал делать эту таблицу «в ручном режиме», т.е. совсем без макросов))) на формулах пытался выехать)))
А что она пестрит разноцветием — так это просто для наглядности было сделано.. можно и два — три цвета использовать.
Основная её функция это при занесении новой информации показать о оставшемся свободном времени… но в процессе функций добавилось.

В общем, я в панике)))
Подскажите, пожалуйста, какие варианты есть? После увиденного, что можно сделать и… в денежном эквиваленте сколько будет, если все это довести до ума?


Цитата: Kosh от 12 мая 2016, 14:45
Да сегодня все по-другому было бы…
Хочется упростить рутинную работу..

А в чём она заключается-то? Из текста макросов не сильно видна предполагаемая последовательность действий пользователя… и конечный результат тоже не просматривается

Цитата: Kosh от 12 мая 2016, 14:45но моих знаний уже не хватает, да и «растерял половину»…

Ой, врёте, батенька! Это ж как, к примеру, на велосипеде ездить или в воде плавать — раз научился и уже не забудешь.

Цитата: Kosh от 12 мая 2016, 14:45
Вот ищу пути выхода из ситуации… Просто «она» работала в экселе, когда я её открывал последний раз, а сейчас новое время, новые потребности.

Вот тогда, наверное, и лист с названием МП0 удалил… А к нему почти каждая процедура обращаться пытается

Цитата: Kosh от 12 мая 2016, 14:45
Я вообще начинал делать эту таблицу «в ручном режиме», т.е. совсем без макросов))) на формулах пытался выехать)))

…и это было, пожалуй, самым правильным решением при использовании электронных таблиц… В случае с базой данных — а для таких задач почему-то именно их стараются использовать — упор сразу бы пошел на макросы, чтобы удобный пользовательский интерфейс сваять. А в Calc’е без многих фишек вполне можно было бы обойтись.
Например, вот этот способ выбора месяца-года через два выпадающих списка… Ну зачем? Есть же элемент «Календарь» — один вместо двух. Или те же два списка, но не отдельными комбобоксами, а как свойство ячейки (Данные-Проверка-Список)…

Цитата: Kosh от 12 мая 2016, 14:45
А что она пестрит разноцветием — так это просто для наглядности было сделано.. можно и два — три цвета использовать.

Да нет, я не упрекаю за обилие цветов — просто зачем было писать столько макросов для форматирования (раскрашивания), если встроенный Условный Формат с этой задачей справляется лучше?

Цитата: Kosh от 12 мая 2016, 14:45
Подскажите, пожалуйста, какие варианты есть? После увиденного, что можно сделать и… в денежном эквиваленте сколько будет, если все это довести до ума?

Что тут скажешь? Напрашивается вариант с базой данных… Ну, чтобы после тщательной разметки плана он не пропал, а сохранился для дополнительной корректировки. А вдруг тебе это все и хранить не надо? Просто разметить месяц, распечатать что получилось и забыть… Тогда и база не нужна, действительно всё на электронных таблицах сделать…

А про эквивалент можно будет говорить, когда станет известно в какой стороне и как далеко этот ум, к которому нужно довести


Тогда, если не возражаете, я напишу в личку или на почту с подробными пояснениями что хотелось получить в конечном результате!?

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

Могу также с пояснениями прислать начальный вариант книги, где только формулы.


Не возражаю, конечно…
Описанный метод искать-читать-пробовать-ошибаться — это путь любого программиста, ничего необычного в нём нет.


Здравствуйте, помогите адаптировать для Basic простенький макрос. Спасибо

Sub Fill_Blanks()
    For Each cell In Selection
        If IsEmpty(cell) Then cell.Value = cell.Offset(-1, 0).Value
    Next cell
End Sub


Попробуйте:

Sub Fill_Blanks
sel=ThisComponent.CurrentSelection
data=sel.DataArray
    For i=1 To UBound(data)
        If data(i)(0)="" Then data(i)(0)=data(i-1)(0)
    Next
sel.setDataArray(data)
End Sub


Да! большое спасибо  :)


Добрый день.
Есть макрос с эксель. Сохранение названия файла с датой и временем: Книга1_11.04.2007 16.12.41.xls

Option Explicit
Sub Macro1()
    Dim iName$, iDate$
    iDate = Now ‘узнаем текущую дату и время
    iDate = Replace(iDate, «:», «.») ‘заменяем двоеточия на точку
    iName = ActiveWorkbook.Name ‘узнаём имя файла
    iName = Left(iName, Len(iName) — 4) ‘убираем расширение файла
    iName = «C:Temp» & iName & «_» & iDate & «.xls» ‘полное имя файла
    ActiveWorkbook.SaveAs Filename:=iName, FileFormat:=xlNormal, Password:=»», _
        WriteResPassword:=»», ReadOnlyRecommended:=False, CreateBackup:=False
End Sub

Подскажите, как его переписать под OpenOffice?


Так работает в LibreOffice Calc (добавил одну строку)


Option Vbasupport 1
Option Explicit
Sub Macro1()
   Dim iName$, iDate$
   iDate = Now 'узнаем текущую дату и время
   iDate = Replace(iDate, ":", ".") 'заменяем двоеточия на точку
   iName = ActiveWorkbook.Name 'узнаём имя файла
   iName = Left(iName, Len(iName) - 4) 'убираем расширение файла
   iName = "C:Temp" & iName & "_" & iDate & ".xls" 'полное имя файла
   ActiveWorkbook.SaveAs Filename:=iName, FileFormat:=xlNormal, Password:="", _
       WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
End Sub

При многократном запуске макроса имя «задваивается», скорее всего нужно очищать iName.

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, —
Не понять его никак…


economist спасибо за помощь.
Макрос у меня не работает.
Пишет:
Ошибка времени выполнения Basic.
’12’
ActiveWorkbook


На StarBasic ненамного длиннее

Sub Macro1()
    Dim iName$, iDate$
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FilterName"
    args1(0).Value = "MS Excel 97"
    iDate = Now 'узнаем текущую дату и время
    iDate = Replace(iDate, ":", ".") 'заменяем двоеточия на точку
    iName = ThisComponent.Title 'узнаём имя файла
    iName = Left(iName, Len(iName) - 4) 'убираем расширение файла
    iName = "~/Inst/" & iName & "_" & iDate & ".xls" 'полное имя файла
    ThisComponent.StoretoURL(ConverttoURL(iName),args1())
End Sub


0 / 0 / 1

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

Сообщений: 73

1

09.07.2015, 12:06. Показов 4693. Ответов 2


Студворк — интернет-сервис помощи студентам

Всем привет!
Есть Excel файл, который открывают на Open Office и макрос запускают с OO.
На форуме очень добрый человек подсказал как настроить OO, чтобы тот мог читать код VBA Excel.

Делается это так:
1. Сервис -> Параметры -> OpenOffice.org -> Безопасность -> Безопасность макросов -> Низкий
2. Сервис -> Параметры -> Загрузка/Сохранение -> Свойства VBA -> (В подпункте Microsoft Excel Должно стоять все 3 галочки)
3. Сервис -> Параметры -> Загрузка/Сохранение -> Microsoft Office -> Excel в OpenOffice.org Calc или обратно -> (Поставить галочку под [З])

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

Заранее спасибо.

P.S. Если нет вариантов через макросы, то есть ли какие-нибудь другие способы?



0



1337 / 308 / 74

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

Сообщений: 635

09.07.2015, 12:45

2

Цитата
Сообщение от st-kontora
Посмотреть сообщение

Если нет вариантов через макросы

А их скорее всего и нет, т.к. чтобы все корректно работало из под ОО надо сначала проделать операции в меню, описанные Вами выше. Т.е. замкнутый круг. Это все равно что макросом включать макросы — пока не включишь макросы не выполнится макрос на их включение
Поэтому скорее всего надо просто посмотреть, какие изменения в реестре делают указанные настройки и делать их либо батником, либо скриптом VBS, либо писать свой exe, который это сделает.



0



0 / 0 / 1

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

Сообщений: 73

09.07.2015, 13:41

 [ТС]

3

Цитата
Сообщение от The_Prist
Посмотреть сообщение

А их скорее всего и нет, т.к. чтобы все корректно работало из под ОО надо сначала проделать операции в меню, описанные Вами выше. Т.е. замкнутый круг. Это все равно что макросом включать макросы — пока не включишь макросы не выполнится макрос на их включение

Есть одна загвоздка. Сделать макрос именно на VBA for OO, который собственно и запустит обработчик)) Но как это сделать и возможно ли, ума не приложу.

Цитата
Сообщение от The_Prist
Посмотреть сообщение

Поэтому скорее всего надо просто посмотреть, какие изменения в реестре делают указанные настройки и делать их либо батником, либо скриптом VBS, либо писать свой exe, который это сделает.

Бат файл — это первое, что пришло в голову, но поехавшие заказчики не могут позволить себе такого ужаса на их компах)



0



How to port Excel VBA macro to OpenOffice macro?

Here is macro for creating hyperlinks:

Sub HyperMaker()
    Dim r As Range
    Dq = Chr(34)
    For Each r In Selection
        r.Formula = "=HYPERLINK(" & Dq & "http://" & r.Text & Dq & ";" & Dq & r.Text & Dq & ")"
    Next r
End Sub

I tried convert this macro to OpenOffice macro (using http://www.business-spreadsheets.com/vba2oo.asp)

Sub HyperMaker()
Dim r As Dim oSheet as Object[n]oSheet = ThisComponent.CurrentController.ActiveSheet[n]oSheet.getCellRangeByName($1)
Dq = Chr(34)
For Each r In Selection
r.Formula = "=HYPERLINK(" & Dq & "http://" & r.Text & Dq & ";" & Dq & r.Text & Dq & ")"
Next r
End Sub

But got errors: BASIC syntax error: Unexpected symbol: Dim. , Expected:,.

Replacing Dim with comma not help.
How to make it work in OpenOfffice?

pnuts's user avatar

pnuts

58k11 gold badges85 silver badges137 bronze badges

asked Feb 25, 2014 at 12:53

2

Solution:

Sub makeHyperlinks()
    Dim sh As Object, z As Object, c As Object
    Dim qCells As Object, enuCells As Object
    sh = ThisComponent.Sheets.getByName("YourSheetName")
    z = sh.getCellRangeByName("B1:B5") ' your column (or rectangle)
    qCells = z.queryContentCells(-1)
    enuCells = qCells.Cells.createEnumeration
    Do While enuCells.hasMoreElements
      c = enuCells.nextElement
      c.Formula = "=HYPERLINK(""http://" & c.String & """)"
    Loop
End Sub

answered Feb 27, 2014 at 12:18

2

Главное свойство Open Office – это встроенный, современный язык программирования. И в нем именно макросы в openoffice и самом процессе составления программ – отыгрывают самую важную роль.

Содержание

  1. Как включить макросы в openoffice?
  2. Создание
  3. Выполнение
  4. Загрузка данных в таблицу и внешние файлы

Дабы запустить макросы в опен офис – надо включить его, открыть доступ к данной команде. Потому стоит выбрать саму:

  1. Команду Сервисы.
  2. Далее переходят к Макросы.
  3. Затем перейти в Управление макросами.
  4. OpenOffice.org Base или нажмите Alt+F1, если комбинации клавиш не применима для других функций.

Как включить макросы

Создание

Как создать его или модернизировать уже существующий для его улучшения – в самом начале стоит создать на ПК подпрограмму Basic. Либо же специальные функции, которые на практике именуют макросами.

В самом начале стоит перейти в программное меню Writer и дважды кликните мышкой на пункте Сервис. Далее откроется подменю – Макросы, и переведя на него мышкой, система откроет список и опции, доступные пользователю. Надо остановить выбор на пункте – Управление макросами. Уже в нем – перейти на OpenOffice.org Basic….

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

Выполнение

После редактирований или создания макроса – каждый пользователь захочет увидеть результаты собственного труда. Надо вернуться в диалоговое окошко OpenOffice.org Writer и далее перейти в меню, выбирая раздел Сервис – Макросы. Далее можно использовать раздел меню – Управление или же воспользоваться кнопкой- «Выполнить», размещенной непосредственно на панели прилагаемых инструментов.

Можно применить и второй, упрощенный вариант выполнения после того, как он был отлажен. Его можно выделить и назначить непосредственно пунктом меню, либо клавиатурным сокращением на панели инструментов, либо событиям. В данном варианте – его возвращают обратно в окно Управление. И после того, как кликнули «Назначить» – система выдает все варианты опций.

Загрузка данных в таблицу и внешние файлы

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

Таблица на выходе будет заполнена нужными данными полей, состоящей из имени пользователя, плюс ко всему домашней директории, идущих из файла /etc/passwd. На первый взгляд сам код выглядит внушающее, но основная часть-стандартна. Так пользователь может видеть конкретный пример проводимых циклов операторами. Можно также обратить отдельное внимание непосредственно на doc=thisComponent – оператор помогает пользователю ссылаться на doc и при этом не использовать длинное, неудобное в написании его обозначение.

Важная деталь – сам синтаксис Basic не будет регистрозависимый. И по данной неочевидной пользователю детали оператор cell = table.getCellByName выполним аналогично CELL = table.getcellbyname. И тут надо применять регистры для простоты чтения.

Строка filenumber = Freefile позволяет присвоить значение уникального на ПК идентификатора ID простой переменной номера файла. Это позволит запомнить иные, уже назначенные в программах ПК ID.

Уделить внимание надо и команде split – она преобразует выходные данные строки и будет возвращать массив используемых подстрок выбранной строки, разбитой по самим разделениям, которые прописал сам пользователь. При этом для определения разделителя в используемом файле паролей пользователь использует непосредственно двоеточие.

Понравилась статья? Поделить с друзьями:
  • Макросов microsoft word скачать бесплатно для windows 10
  • Макросы excel для android
  • Макрос удаляющий все пустые строки в excel
  • Макросов microsoft word 2010 скачать
  • Макросы excel выделение ячеек цветом