Имя: Пароль:
1C
 
ОФФ написал программку, преобразующую макросы 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) исправлено
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн