1

Тема: VBA: OMR метки, создание макроса

Добрый день!
Хочу создать макрос для проставления OMR меток. Возникает проблема с построением логики:
на первой странице должна быть 1, 2, 4, 6 метки;
все страницы после первой и до последней с 1-6 метки;
последняя страница 1, 2, 3, 6 метки.
Подскажите, пожалуйста как задать логику? Или, возможно, есть пример?

2

Re: VBA: OMR метки, создание макроса

Пример у нас есть. На HTA: HTA: нанесение (расстановка) OMR-меток в файле MS Word. А логику Вы должны объяснять.

3

Re: VBA: OMR метки, создание макроса

Алексей, подскажите, пожалуйста, в эту строку:
If LCase(Right(SelFile.Value, 4)) <> ".doc" And LCase(Right(SelFile.Value, 4)) <> ".rtf" Then
нужно вложить расположение файлов? и как именно их настроить, т.к. там должны быть полоски с определенным размером и разположением на листе, учитывается так же интервал. Это как картинка будет вставлятся, по логике кол-ва листов в документе?

4

Re: VBA: OMR метки, создание макроса

Алексей, подскажите, пожалуйста, в эту строку:

If LCase(Right(SelFile.Value, 4)) <> ".doc" And LCase(Right(SelFile.Value, 4)) <> ".rtf" Then

1. В последнем варианте скрипта нет такой строки.
2. Ведётся обработка одного файла, указываемого или выбираемого вручную:

+ открыть спойлер

http://img819.imageshack.us/img819/7848/jw36.png

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

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

                Const TextBoxLeft                  =   0 ' Надпись. Отступ слева.
                Const TextBoxTop                   = 214 ' Надпись. Отступ сверху 
                Const TextBoxWidth                 =  40 ' Надпись. Ширина.
                Const TextBoxHeight                =  45 ' Надпись. Высота

Ну и посмотреть, где и как используется это:

                Dim TextBox1                             ' Надпись с метками
                Dim strTwoLabels                         ' Строка с двумя метками    (для надписи)
                Dim strFourLabels                        ' Строка с четырьмя метками (для надписи)

А так — рассказывайте детали про «полоски», приводите примеры документов.

5

Re: VBA: OMR метки, создание макроса

Алексей, к сожалению, не получается у меня расставить метки. Возможно проблема с фразой. Допустим даже если взять примитивный пример: документ с четырех листов, на первом листе фраза "Первый лист" и в том же духе, по идее уникальную фразу нужно записать - "Первый лист", правильно? Я выбираю файл, вставляю фразу и нажимаю кнопку расставить метки и к сожалению ничего.
Подскажите, пожалуйста, что я упустил.

6

Re: VBA: OMR метки, создание макроса

Artem пишет:

к сожалению, не получается у меня расставить метки.

alexii пишет:

приводите примеры документов.

7 (изменено: Artem, 2014-03-18 12:03:05)

Re: VBA: OMR метки, создание макроса

Вот пример документа, текст произвольный, а уникальная фраза, допустим, - "Первая страница".

Post's attachments

пример.doc 40.5 kb, 17 downloads since 2014-03-18 

You don't have the permssions to download the attachments of this post.

8

Re: VBA: OMR метки, создание макроса

Artem пишет:

Вот пример документа, текст произвольный, а уникальная фраза, допустим, - "Первая страница".

Что-то не получается файл загрузить на форум. Ну, к примеру, может быть любой документ на 1,2,3... страницы с наличием на каждой первой уникальной фразы, в начале текста, - "Первый лист".
Возможно у меня проблемы через то что на компьютере стоит офис 10й, хотя и сохраняю его в .doc, не помогает.

9

Re: VBA: OMR метки, создание макроса

На приложенном выше файле последний код отсюда:

+ открыть спойлер

http://img547.imageshack.us/img547/3452/zyry.png

Office 2003. Результирующий файл — «пример_OMR.doc».

А что получается у Вас?

10

Re: VBA: OMR метки, создание макроса

Алексей, у меня просто в этом сервисе не происходит ничего и документ не изменяется.
Возможно это из-за версий программного обеспечения (експлорер 11й, офис 10й но в доке сохраненный)?

Давайте я вам пошагово опишу свои действия:
- сохраняю код в файл с расширением .html;
- открываю через браузер и заполняю поля (указываю путь к документу и уникальную фразу);
- нажимаю кнопку "Расставить метки".

К сожалению ничего не происходит.

11

Re: VBA: OMR метки, создание макроса

- сохраняю код в файл с расширением .html;

С расширением «.hta».

- открываю через браузер

Открывайте двойным щелчком.

12 (изменено: Artem, 2014-03-21 18:20:57)

Re: VBA: OMR метки, создание макроса

Алексей, ура, получилось!
А если я захочу переписать код для 10го ворда, это проблематично?

Так же хотел уточнить логику нанесения меток.
я хочу, допустим, расставить метки следующим образом:
- первый лист (не последний в пакете) - 1,2, 4 и 6я метка;
- первый и последний лист - 1,2,3, и 6я метка;
- все что не первая и не последняя - 1,2,3,4,5,6 метка;
- последняя страница (но не первая) - 1,2,3 и 6я метка.

13

Re: VBA: OMR метки, создание макроса

ура, получилось!

Вот и славненько.

А если я захочу переписать код для 10го ворда, это проблематично?

Не предвижу каких-то особых сложностей. Пробуйте.

+ открыть спойлер

«10 ворд» — это Office XP. А Office 2010 — четырнадцатой версии.

А текущий код под Office 2010 не работает?

Так же хотел уточнить логику нанесения меток.
я хочу, допустим, расставить метки следующим образом:

По определениям пройдёмся. Что есть «метка» в Вашем вопросе? У MikeSh «метка» — надпись на полях с полосками. Меток два вида — с двумя полосками и с четырьмя. На одной странице — одна метка.

14

Re: VBA: OMR метки, создание макроса

Сейчас на 10 офисе не подтягивает документ (выдает ошибку). Там и в коде указано, что документ должен быть с расширением .doc а не .docx.

Что касается меток, имел ввиду кол-во полос на метке. По первому коду ставит 2 и 4, а хочу по описанной выше логике, к сожалению не получается.

Дублирую в строку код линии, а он не отображается:

If (i < PageCount) And (ArrItems(i) = 0) Then
              Textbox1.TextFrame.TextRange.Select
              .InsertSymbol &H2500, "Times New Roman", True
              .InsertSymbol &H2500, "Times New Roman", True
              .TypeParagraph
              .TypeParagraph
              .TypeParagraph
              .InsertSymbol &H2500, "Times New Roman", True
              .InsertSymbol &H2500, "Times New Roman", True
              Textbox1.TextFrame.TextRange.Select
            Else
              Textbox1.TextFrame.TextRange.Select
              .InsertSymbol &H2500, "Times New Roman", True
              .InsertSymbol &H2500, "Times New Roman", True
              .TypeParagraph
              .InsertSymbol &H2500, "Times New Roman", True
              .InsertSymbol &H2500, "Times New Roman", True
              .TypeParagraph
              .InsertSymbol &H2500, "Times New Roman", True
              .InsertSymbol &H2500, "Times New Roman", True
              .TypeParagraph
              .InsertSymbol &H2500, "Times New Roman", True
              .InsertSymbol &H2500, "Times New Roman", True
              Textbox1.TextFrame.TextRange.Select
            End If

Спасибо!

15

Re: VBA: OMR метки, создание макроса

Сейчас на 10 офисе не подтягивает документ (выдает ошибку).

Какую?

Что касается меток, имел ввиду кол-во полос на метке.

Попробуем. Образец документа приветствуется (для меня лучше сразу конвертированный в doc — выше Office 2003 у меня всё одно нет).

16 (изменено: Artem, 2014-03-28 11:32:57)

Re: VBA: OMR метки, создание макроса

Ошибка - "Выбран не верный файл". В коде прописана логика отображения всплывающего окна при выборе файла другого расширения.

Пример во вложении. Уникальной фразой беру "Первая страница".

Post's attachments

пример.doc 40.5 kb, 3 downloads since 2014-03-28 

You don't have the permssions to download the attachments of this post.