Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: ]VBA Word] Выборка каждого 10го слова Добавлено: 02.03.09 14:50  

Автор вопроса:  myagi
Задача: подчеркнуть каждое 10 слово.
Есть код

    With ActiveDocument.Words
        For lIter = 10 To .Count Step 10
        .Item(lIter).Font.Underline = wdUnderlineWords
        Next lIter
    End With

Но он считает словами знаки препинания и т.п. Как мне спецсимволы исключить из цикла?

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 03.03.09 12:00
  1. Option Explicit
  2.  
  3. Sub Under_Str()
  4.     Dim lIter As Long
  5.     Dim lCount As Long
  6.     Dim sSpec As String
  7.     sSpec = ",.;:?!()-""" & vbCrLf
  8.     lCount = 0
  9.     For lIter = 1 To ThisDocument.Words.Count Step 1
  10.         'Debug.Print ThisDocument.Words(lIter).Text
  11.         If InStr(1, sSpec, Left(ThisDocument.Words(lIter).Text, 1), vbTextCompare) <> 0 Then
  12.             lCount = lCount + 1
  13.         End If
  14.         If ((lIter - lCount) Mod 10) = 0 Then
  15.             'Debug.Print "_______________"
  16.             ThisDocument.Words(lIter).Font.Underline = wdUnderlineWords
  17.         End If
  18.     Next lIter
  19.     Debug.Print lCount
  20. End Sub

Мой пример работает, правда еще остался один изъян - и устранить его мне не совсем легко - код не понимает слова, написанные через дефиз, как одно целое. Из-за этого подчеркивается только первая часть слова с дефизом, а вторая часть слова расценивается как дополнительное слово. Тире пропускаются без проблем. Вот отрывок текста, на котором я тестировал:
Наконец я возвратился из моей двухнедельной отлучки. Наши уже три дня
как были в Рулетенбурге. Я думал, что они и бог знает как ждут меня, однако
ж ошибся. Генерал смотрел чрезвычайно независимо, поговорил со мной свысока
и отослал меня к сестре. Было ясно, что они где-нибудь перехватили денег.
Мне показалось даже, что генералу несколько совестно глядеть на меня. Марья
Филипповна была в чрезвычайных хлопотах и поговорила со мною слегка; деньги,
однако ж, приняла, сосчитала и выслушала весь мой рапорт. К обеду ждали
Мезенцова, французика и еще какого-то англичанина: как водится, деньги есть,
так тотчас и званый обед, по-московски. Полина Александровна, увидев меня,
спросила, что я так долго? и, не дождавшись ответа, ушла куда-то.
Разумеется, она сделала это нарочно. Нам, однако ж, надо объясниться. Много
накопилось.

Ответить

Номер ответа: 2
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #2
Добавлено: 03.03.09 12:06
Вот что получалось:
Наконец я возвратился из моей двухнедельной отлучки. Наши уже три дня
как были в Рулетенбурге. Я думал, что они и бог знает как ждут меня, однако
ж ошибся. Генерал смотрел чрезвычайно независимо, поговорил со мной свысока
и отослал меня к сестре. Было ясно, что они где-нибудь перехватили денег.
Мне показалось даже, что генералу несколько совестно глядеть на меня. Марья
Филипповна была в чрезвычайных хлопотах и поговорила со мною слегка; деньги,
однако ж, приняла, сосчитала и выслушала весь мой рапорт. К обеду ждали
Мезенцова, французика и еще какого-то англичанина: как водится, деньги есть,
так тотчас и званый обед, по-московски. Полина Александровна, увидев меня,
спросила, что я так долго? и, не дождавшись ответа, ушла куда-то.
Разумеется, она сделала это нарочно. Нам, однако ж, надо объясниться. Много
накопилось.

Кстати Step 1 - это излишне )

Ответить

Номер ответа: 3
Автор ответа:
 GDK



Вопросов: 13
Ответов: 348
 Профиль | | #3 Добавлено: 03.03.09 12:44
Если следующее слово начинается с дефиса, его тоже подчеркнуть и сделать

lCount = lCount + 1

и будет правильно понимать дефисы.

Ответить

Номер ответа: 4
Автор ответа:
 myagi



Вопросов: 2
Ответов: 4
 Профиль | | #4 Добавлено: 03.03.09 13:08
еще изъян - подчеркивается спецсимвол который идет после подчеркиваемого слова
у меня на 400 страницах текста ворд повис на макросе...

Ответить

Номер ответа: 5
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #5
Добавлено: 03.03.09 21:25
GDK, верно сказал.

myagi, извини, но программа твоя, тебе все изъяны и выправлять.. мне-то пофиг, я дал только направление. какой смысл подчеркивать каждое десятое слово? сдать лабу надо?

Ответить

Номер ответа: 6
Автор ответа:
 myagi



Вопросов: 2
Ответов: 4
 Профиль | | #6 Добавлено: 04.03.09 09:14
ды не, ребят я очень вам благодарен! спасибо огромное, я и не думал наглеть.
у сына действительно информатика. да, для этого...
просто ты указал один изъян - подумал что решения с пунктуацией может не быть...
извините, если обидел.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам