|
ОФФ написал программку, преобразующую макросы Excel в код 1С | ☑ | ||
---|---|---|---|---|
0
Сниф
11.10.04
✎
16:46
|
Называется Friend VBA, версия 1.1
Посмотреть описание и скачать программу можно здесь: http://www.snif.ru/pages/vba.htm |
|||
1
Волшебник
11.10.04
✎
16:59
|
Такое разве возможно? Если только с определенными ограничениями...
Даже разработчики фирмы "1С" не стали делать конвертор с языка 7.7 на 8.0, хотя языки очень близкие. А VBA от 1С отстоит еще дальше на древе жизни. |
|||
2
Сниф
11.10.04
✎
17:05
|
2(1) процитирую сам себя из описания программы на сайте:
"Сказать, что программа преобразует VBA в код 1С:Предприятия, будет не совсем правильно. На самом деле на выходе мы получаем просто другой вариант синтаксиса VBA, не требующий обращения к библиотекам Excel. " |
|||
3
Сниф
11.10.04
✎
17:30
|
Простейший пример - если включить запись макроса Excel и обвести
какую-нибудь ячейку в рамку, то получим такой код VBA: Sub Макрос1() ' ' Макрос1 Макрос ' Макрос записан 11.10.2004 (Igor) ' Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With End Sub Теперь, если вставить этот макрос в верхнее окошко программы и нажать кнопку "Макрос Excel -> Код 1С", то в нижнем окошке получим такой код: Excel = СоздатьОбъект("Excel.Application"); Excel.Displayalerts = 0;//отключить встроенные предупреждения Excel Excel.Workbooks.Add();//Создать новую книгу //замена оператора With _Selection = Excel.Selection.Borders(7);//Левая граница области _Selection.LineStyle = 1; _Selection.Weight = -4138; _Selection.ColorIndex = -4105; // //замена оператора With _Selection = Excel.Selection.Borders(8);//Верхняя граница области _Selection.LineStyle = 1; _Selection.Weight = -4138; _Selection.ColorIndex = -4105; // //замена оператора With _Selection = Excel.Selection.Borders(9);//Нижняя граница области _Selection.LineStyle = 1; _Selection.Weight = -4138; _Selection.ColorIndex = -4105; // //замена оператора With _Selection = Excel.Selection.Borders(10);//Правая граница области _Selection.LineStyle = 1; _Selection.Weight = -4138; _Selection.ColorIndex = -4105; // Excel.Visible = 1;//1 - открыть приложение |
|||
4
Волшебник
11.10.04
✎
17:42
|
Пригодится при написании программ, работающих с Excel через OLE.
|
|||
5
ДляВорда
11.10.04
✎
17:44
|
напиши
|
|||
6
Антон ORIGINAL
11.10.04
✎
17:51
|
Сниф - дай сцылку на прогу... щас поюзаю...
|
|||
7
Сниф
11.10.04
✎
17:53
|
||||
8
Как Пользоваться
11.10.04
✎
17:54
|
? объясни тупому :-)
|
|||
9
Сниф
11.10.04
✎
18:01
|
Re: Как пользоваться
меню "Примеры", там один пример, выбираешь этот пункт меню жмешь кнопку "Проверить пример" Всё. Дальше можно либо "Макрос" -> "Выполнить макрос в Excel", либо записать сгенерированный код в обработку 1С. Кстати, пример, который я привел здесь, не совсем удачный: я начал запись макроса, когда УЖЕ выделил ячейку. Вообщем, записывайте любой макрос и в 95% случаев вы получите код, пригодный для 1С. Остальные 5% - в процессе доработки (версия-то первая). |
|||
10
Как Пользоваться
11.10.04
✎
18:03
|
жмакаю FriendVBA орет что нет *.OCX
или что-то нетак делаю |
|||
11
Антон ORIGINAL
11.10.04
✎
18:05
|
А чаво программа такая медлииииительная? Сниф - Вы не эстонец?
|
|||
12
Как Пользоваться
11.10.04
✎
18:06
|
одну вставил орет на другую
richtx32.ocx |
|||
13
Косячит
11.10.04
✎
18:06
|
когда через запись макроса выполняется импорт текстового файла.
здесь: _ActiveSheet = Excel.ActiveSheet.QueryTables.Add("TEXT;D:\copy.txt",Range("B7")); и здесь: _ActiveSheet.Refresh 0;(Backgroundquery) |
|||
14
Сниф
11.10.04
✎
18:06
|
2(10) странно, я, вроде никакие *.OCX не использовал :(
Ладно, не жмакай пока, я завтра что-нибудь придумаю. А есть у кого работает и не просит OCX-ов? |
|||
15
Антон ORIGINAL
11.10.04
✎
18:08
|
У меня работает и просит более быстрый процессор...
|
|||
16
Сниф
11.10.04
✎
18:09
|
2(13) косяки буду править... пишите, ежели еще будут...
на сегодня заканчиваю... всем привет... |
|||
17
Как Пользоваться
12.10.04
✎
13:17
|
Сниф как успехи, когда ждать новую версию?
Оочень хочется поиметь подобную для Word |
|||
18
Rovan
гуру
12.10.04
✎
13:32
|
"НЕ написали конвертор с языка 7.7 на 8.0" - лентяи просто.
|
|||
19
Сниф
12.10.04
✎
13:33
|
2(17) по указанной выше ссылке теперь лежит вариант, требующий установки через
Setup.exe (зато ворчать на richtx32.ocx и т.д. программа больше не будет). Относительно Word. Я просто не сталкивался с потребностью из 1С что-то делать в Word-е. Может подскажешь пример такой жизненной необходимости, тогда я подумаю :) |
|||
20
Как Пользоваться
12.10.04
✎
14:41
|
я печатаю договора с клиентами через ворд
|
|||
21
F427
12.10.04
✎
14:52
|
(20) Не выеживайся и делай через именованные поля...
Потом манагеры сами в визуальном режиме в ворде делают делают шаблоны - и ничего программировать не надо... |
|||
22
Сниф
14.10.04
✎
10:29
|
С учетом всех замечаний выложил на http://www.snif.ru/pages/vba.htm
Friend VBA версия 2.0. // Исправлены косяки: 1. полностью переделан Setup, теперь при запуске не ругается на отсутствие чего-либо; 2. при изменении размеров формы окна адекватно растягиваются; 3. исправлена ошибка преобразования макроса, записанного при импорте текстовых файлов (и для аналогичных конструкций). Добавлен соответствующий пример. // Можно присылать примеры макросов, на которых программа ошибается. После корректировки программы они войдут в примеры. Можно присылать примеры макросов, на которых программа НЕ ошибается. Они тоже войдут в примеры :) |
|||
23
Mozandr
14.10.04
✎
10:46
|
У меня чего-то не ставится(на ХР), просит второй диск.
|
|||
24
Сниф
14.10.04
✎
10:54
|
2(23) исправлено
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |