Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Microsoft Word (Часть 1)

Модерирует : gyra, Maz

Widok (16-03-2006 15:02): http://forum.ru-board.com/topic.cgi?forum=5&topic=18912  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

   

Dimius



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Разобраться в справке MS Word нелегко, читать ее просто так неинтересно, найти что-то трудно, а по устранению неполадок там практически ничего нет. Поэтому начинающим пользователям лучше всего учиться опытным путем – пойти в меню и методически исследовать опцию за опцией – установить, попробовать, что получилось, снять и посмотреть, что снова получилось (экспериментировать таким образом, конечно, можно не рабочих документах, а на их копиях). Приобретя методом «тыка» некие знания о какой-нибудь опции, можно почитать о ней справку уже с большим успехом и интересом.
 
В MS Word собрано много чего. Возможности использования большие, но и возможности сбоев и конфликтов велики. MS Word вступает в конфликт даже с проверкой русской орфографии (см. стр. 45) и с Windows XP, хотя разработчик у них один – Microsoft. Другой курьез – если открыто два документа или более, то попытка восстановить или максимизировать минимизированный документ с панели задач Windows приводит к неожиданному закрытию MS Word. Оказывается, конфликт происходит с программой распознавания рукописного текста Windows XP, которую лучше всего убрать: на панели задач Start=>Control Panel=>Regional and Language Options=>Details=>Settings=>Handwriting Recognition=>Remove=>OK. Что тут говорить о совместимости с программами других разработчиков, даже очень солидных. Например, новейший Adobe Acrobat седьмой версии тоже странно влияет на Normal.dot (см. стр. 69). Поэтому, если нет насущной необходимости, лучше не добавлять никаких программных улучшений к MS Word.
 
Если вы хотите использовать какую-то базисную возможность, а она почему-то не срабатывает, перечислите выбранные вами опции (замечание вроде "все галки поставлены" ничего не объясняет, т.к. "галки" могут быть поставлены не все и не те), если есть сообщения об ошибках также дайте и их (лучше в виде скриншота).
 
Если вы решаете какую-то задачу, то нужно сконцентрироваться не на том, как вам лучше использовать определенные ресурсы MS Word, а на самой задаче. Тем, кто вам захочет помочь будет легче понять вашу проблему и предложить наилучшее решение, которое необязательно будет решаться теми средствами, как вам представлялось.
 
Не стоит просить написать за вас макро. Если вы дошли до понимания необходимости улучшить MS Word программными средствами, нужно сделать еще один шаг и самому научиться писать код. Хорошее пособие можно найти по адресу http://infocity.kiev.ua/prog/other/content/progother007.phtml?id=743  
 
Лучше не засорять форум вопросами, которые возникают не из практических задач, а из праздного любопытства.
 
Кроме Руборда есть и другие места, где можно многое почерпнуть об MS Word. Наиболее авторитетный сайт –Microsoft Word MVP FAQ Site по адресу http://word.mvps.org/AboutMVPs/index.htm На портале Microsoft есть форум по Microsoft Office http://www.microsoft.com/office/community/en-us/default.mspx, а нем отделение по MS Word с подразделами.
 
Полезные ресурсы на русском языке:
Microsoft Office Extensions - http://www.microsoft.ru/offext/  
Десять простых настроек для MS Office 97 - http://www.microsoft.ru/offext/developers/materials/material.aspx?id=60
 
Подключайтесь к обсуждению Приятной работы в Wordе!

Всего записей: 495 | Зарегистр. 02-11-2002 | Отправлено: 22:41 19-12-2002 | Исправлено: Maz, 22:40 24-02-2017
ZUMR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ALL!
Возник вопрос:
Открываем Word-ом (2000, XP) Web-документ.
Что надо настроить, чтобы на принтер выходил и фон этого документа?
При отображении на экране фон также пропадает во всех режимах (Разметки, обычном и т.д.), кроме Web. Заметил, что при создании нового документа и заполнении страницы фоном (Формат>Фон) происходит тоже самое. Хочется делать самому документы с текстурной заливкой.
В принципе, нашел выход, как это обойти. Приходится на всю страницу растягивать надпись, а потом с ней работать. Но хочется-то по-проще, а не через гимор.

Всего записей: 1835 | Зарегистр. 23-04-2003 | Отправлено: 14:17 02-08-2004 | Исправлено: ZUMR, 14:21 02-08-2004
TCPIP

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, помогите пожалуйста решить следующую задачу. Необходимо выполнить форматирование листингов: выделенный фрагмент текста должен форматировался таким образом, чтобы в каждой строчке было не более заданного числа символов (причем перенос строки НЕ должен выполняться посреди слова). То есть: выделяем текст, щелкаем на кнопке макроса, в диалоговом окне вводим максимальное число символов в строке, после этого макрос должен сделать так, чтобы оставить в каждой строке ровно столько слов, сколько укладывается в заданное число символов в строке, а остальное перенести на следующую строку и, склеив с тем, что имеется на следующей строке, выполнить ту же работу.  
Хорошо было бы, чтобы можно было задавать правило переноса строки в соответствии с  
синтаксисом языка: например, если это VB, то разрываемые, но логически связанные,  
строки должны заканчиваться символом подчерка (соответственно тут максимальное число символов будет n+1).
Помогите пожалуйста, а то устал уже выполнять рутину руками... а макросы никогда не писал и потому полный нуль. А тут как всегда, дело делать некогда, работать надо.

Всего записей: 4667 | Зарегистр. 31-01-2003 | Отправлено: 02:46 09-08-2004 | Исправлено: TCPIP, 02:50 09-08-2004
Nep



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
у меня такой вопрос появился. Прогой создаются несколько *.doc документов. Например  
акт осмотра,приложение к нему и еще что нибудь. Складываются в одну папку. Потом приходится открывать поочередно каждый файл и править там инфу. Дату,Фио и т.д.
Как можно сделать что-бы при правке в одном файле инфа менялась во всех файлах находящихся в данной папке.

----------
на форуме редко.Модером не являюсь.Татл обман :)

Всего записей: 41940 | Зарегистр. 24-06-2001 | Отправлено: 10:27 16-08-2004
Goul

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как можно сделать что-бы при правке в одном файле инфа менялась во всех файлах находящихся в данной папке.

Можно в одном ("главном") файле на нужные поля установить закладки (Bookmark), а во всех остальных вставлять текст этих закладок (меню Insert>Field...; Categories: Links and References; Field Names: Include Text): { INCLUDETEXT "Test.doc" BookmarkName \* MERGEFORMAT }. Правда, для того чтобы текст в "подчинённых" файлах обновился, придётся запустить команду Update Field.

Всего записей: 704 | Зарегистр. 28-05-2004 | Отправлено: 15:59 16-08-2004
Nep



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Goul
Файлы постоянно новые.
Я знаю что это возможно.Сам видел когда-то давно.А сейчас понадобилось и не могу найти решение

----------
на форуме редко.Модером не являюсь.Татл обман :)

Всего записей: 41940 | Зарегистр. 24-06-2001 | Отправлено: 16:26 16-08-2004
bredonosec



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nep
Видел такое решение (в нашей фирме) - вся инфа идет в базу (ексел), а все доки связаны с ней. Так что, правится только одна база - по строчке на каждый случай (а все сопутствующие случаю доки - счета, договора, проч - при открытии автоматически вставляет данные в поля шаблонов.

Всего записей: 16257 | Зарегистр. 13-02-2003 | Отправлено: 16:48 16-08-2004
Goul

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nep

Цитата:
Файлы постоянно новые.

Может, я чего-то не понял... Я имею в виду, что при генерации серии файлов (как я понимаю, при помощи VBA, потому как других способов вроде пока нет) в первом файле задать закладки, а в остальных сделать на них ссылки. Через VBA это делается, я посмотрел в MSDN. (Можно даже при обновлении содержимого закладки автоматически открывать все документы в той же папке и обновлять их, хотя это уже посложнее.)
Поэтому не вижу, в чём может мешать тот факт, что файлы постоянно новые?
 
Добавлено
TCPIP

Цитата:
Необходимо выполнить форматирование листингов

Вот в первом приближении код макроса (по крайней мере, на тех фрагментах, на которых я тестировал, работает). С внедрением в Word, надеюсь, проблем не возникнет. Да, функцию IsDelimiter() нужно будет уточнять. И вообще, тут ещё есть, над чем работать...
Sub SelectionSplitter()
On Error GoTo Err_Incorrect_Number
    Dim nStrLen As Long
    Dim sCurText As String
    Dim sRes As String
    Dim sTmp As String
    nStrLen = CLng(InputBox("Enter maximum string length"))
On Error GoTo Err_Unexpected
    sCurText = Selection.Range.Text
    sRes = ""
    While (Len(sCurText) > 0)
        sTmp = Left(sCurText, nStrLen)
        ' Найти разделитель внутри текущей подстроки
        While (Len(sTmp) < Len(sCurText) And _
                Len(sTmp) > 0 And _
                Not IsDelimiter(Right(sTmp, 1)))
            sTmp = Left(sTmp, Len(sTmp) - 1)
        Wend
        If (Len(sTmp) = 0) Then
            ' Найти разделитель за текущей подстрокой (текущая строка слишком длинна, придётся делать её длиннее, чем задано)
            While (Len(sTmp) < Len(sCurText) And Not IsDelimiter(Right(sTmp, 1)))
                sTmp = Left(sCurText, Len(sTmp) + 1)
            Wend
        End If
        sRes = sRes + sTmp + vbCrLf
        sCurText = Right(sCurText, Len(sCurText) - Len(sTmp))
    Wend
    Selection.Range.Text = sRes
Exit Sub
Err_Incorrect_Number:
    MsgBox "Incorrect number"
Exit Sub
Err_Unexpected:
    MsgBox "Unexpected error: " & Err.Description
    Exit Sub
End Sub
Function IsDelimiter(ByVal v_Char As String) As Boolean
    Dim sLeftChar As String
    If (Len(v_Char) <= 0) Then
        IsDelimiter = False
        Exit Function
    End If
    sLeftChar = Left(v_Char, 1)
    If AscW(sLeftChar) <= 32 Then
        IsDelimiter = True
        Exit Function
    End If
    If (sLeftChar = "," Or sLeftChar = "." Or sLeftChar = "-" Or sLeftChar = "+") Then
        IsDelimiter = True
        Exit Function
    End If    
    IsDelimiter = False
    Exit Function
End Function

Всего записей: 704 | Зарегистр. 28-05-2004 | Отправлено: 18:19 16-08-2004
Nep



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
 Я имею в виду, что при генерации серии файлов (как я понимаю, при помощи VBA, потому как других способов вроде пока нет

там убогая досовская софтина выдает несколько *.doc и *.rtf
файлов на выходе.

----------
на форуме редко.Модером не являюсь.Татл обман :)

Всего записей: 41940 | Зарегистр. 24-06-2001 | Отправлено: 23:27 16-08-2004
TCPIP

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Goul
Здорово! Спасибо. Попробую.

Цитата:
С внедрением в Word, надеюсь, проблем не возникнет.

Никогда не пробывал еще с макросами работать, так что возникнет наверное...

Всего записей: 4667 | Зарегистр. 31-01-2003 | Отправлено: 02:27 17-08-2004
domkratt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nep
VBA и еще раз VBA. Навскидку алгоритм работы:
открываешь первый документ, выделяешь скажем фамилию, запускаешь макрос, появляется форма ввода, забиваешь новую фамилию, давишь батон, скрипт открывает поочереди все файлы в папке, ищет соответствие с фамилией в первом документе, если находит - меняет на заданное. В принципе такое можно рисовать на любом языке который понимает OLE но только это гимор, на VBA - проще всего.

Всего записей: 624 | Зарегистр. 29-03-2004 | Отправлено: 02:44 17-08-2004
Goul

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nep
Если структура документов заранее неизвестна, можно воспользоваться вариантом, предложенным domkratt. Если же известно, как можно найти поля внутри документа, могу предложить ещё один вариант: создать Add-In (или шаблон, автоматически загружаемый при запуске Word). Этот Add-In отслеживает событие открытия нового документа и находит в нём значения полей, которые нужно синхронизировать. Потом отслеживает событие закрытия документа и проверяет, были ли изменены какие-то поля. Если были, то последовательно открывает все документы в папке, где расположен закрываемый документ, и обновляет поля в них. Этот способ лучше тем, что не требует вмешательства пользователя, но нужно знать структуру документов.

Всего записей: 704 | Зарегистр. 28-05-2004 | Отправлено: 08:05 17-08-2004
Nep



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
domkratt
Goul
спасибо.Буду пробовать

----------
на форуме редко.Модером не являюсь.Татл обман :)

Всего записей: 41940 | Зарегистр. 24-06-2001 | Отправлено: 13:16 17-08-2004
TCPIP

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Goul

Цитата:
И вообще, тут ещё есть, над чем работать...  

Да... Эт точно! В таком виде штуковина не делает свертку строк (то есть перенос лишнего на следующую строку + сцепление с имеющимся + снова вычисление длины строки --- снова перенос и сцепление и так to EOF), она просто устанавливает максимально возможную длину строки (с учетом введенного количества символов и правил переноса (то есть, что нельзя перевод строки посеред слова)) и ставит Enter. А енто не совсем то, что хочется...
 
Вопрос к вам: имеет ли смысл изучать VBA сейчас? Может уже сейчас ясно, что это последний раз, когда он присутствует в Office и в будущем будет что-то вроде VS.NET Office Extensions?

Всего записей: 4667 | Зарегистр. 31-01-2003 | Отправлено: 04:15 21-08-2004
Goul

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TCPIP

Цитата:
А енто не совсем то, что хочется...

Ну, это уже мелочи. Добавь, например, пару строк в начале:
 
On Error GoTo Err_Unexpected
    ActiveDocument.Range.Find.Execute FindText:="^p", ReplaceWith:=" "
    ActiveDocument.Range.Select
    sCurText = Selection.Range.Text

Цитата:
имеет ли смысл изучать VBA сейчас?

Имеет смысл - конечно, если в VBA есть необходимость. Угадать, что будет с VBA, трудно, лично мне это не ясно. VS.NET Office Extensions, думаю, не станут заменять VBA, но что будет с выходом Longhorn, всё равно непонятно: в какой мере станет Microsoft поддерживать совместимость следующей версии офиса с предыдущими - кто его знает.
С другой стороны, в прошлом году MS выпустил вполне совместимую по VBA версию офиса, даже более совместимую с ранними, чем в 2002. Так что, может, рано ещё хоронить VBA.

Всего записей: 704 | Зарегистр. 28-05-2004 | Отправлено: 08:40 21-08-2004 | Исправлено: Goul, 09:24 21-08-2004
TCPIP

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Goul

Цитата:
Добавь, например, пару строк в начале


Код:
Sub SelectionSplitter()  
On Error GoTo Err_Incorrect_Number  
    Dim ...
....
 nStrLen = CLng(InputBox("Enter maximum string length"))  
On Error GoTo Err_Unexpected  
    ActiveDocument.Range.Find.Execute FindText:="^p", ReplaceWith:=" "  
    ActiveDocument.Range.Select
 
    sCurText = Selection.Range.Text  
    sRes = ""  
...
End Sub  
 

Сорри, заскок: в таком виде он ведь сперва выполняет замену символа параграфа на пробел, а потом выделяет  _весь_ документ, после чего и производит дробление и перенос строк _во всем_ документе, а не в выделенном фрагменте!? То есть результатом будет документ, который _целиком и полностью_ отформатирован с учетом максимальной длины строк в nStrLen символов! Но нам-то надо, чтобы форматировался только выделенный фрагмент!
 
/*А вы, насколько я понял, имели в виду, что после того, как будет осуществлена первая итерация операции разбиения строки и появится первый символ конца абзаца, мы выполним метод Execute, который найдет все символы конца абзаца и заменит их пробелами (что и есть операция сворачивания строк). После этого выполнится выделение обработанного текста и пойдет вторая операция разбиения строк. Так?*/
 
/*А зачем в функции IsDelimeter выполняется проверка на то, что первый ASCII-символ стоки .lt. 32:

Код:
sLeftChar = Left(v_Char, 1)  
    If AscW(sLeftChar) <= 32 Then  
        IsDelimiter = True  
 
?*/

Цитата:
даже более совместимую с ранними, чем в 2002.

Ага! Значит в Office System меньше проблем с backward compatibility?
 
Спасибо.

Всего записей: 4667 | Зарегистр. 31-01-2003 | Отправлено: 06:27 23-08-2004 | Исправлено: TCPIP, 06:28 23-08-2004
Goul

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TCPIP
Не очень понятны условия задачи. Вероятно, подойдёт, если вместо "ActiveDocument.Range" использовать "Selection.Range" (и убрать "ActiveDocument.Range.Select")? В любом случае, доводку всё равно придётся делать.

Цитата:
первый ASCII-символ стоки .lt. 32:

.le. 32. Среди символов, имеющих код, меньший или равный 32, хватает разделителей: например, пробел, табуляция (вернее, там все разделители). Проще их скопом проверить.

Цитата:
Значит в Office System меньше проблем с backward compatibility?

Что такое Office System? Я имел в виду, что Office 2003 и в самом деле более совместим с Office 2000 и более ранними, чем Office 2002. Правда, я не могу быть уверенным в этом на 100%, потому как из Office 2002, 2003 работал в основном с Outlook.

Всего записей: 704 | Зарегистр. 28-05-2004 | Отправлено: 06:53 23-08-2004
TCPIP

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Goul

Цитата:
Не очень понятны условия задачи

Чтобы не разводить здесь флейм, отправил вам их в ПМ.

Цитата:
.le. 32.

Да, сорри, "меньше или равно"...

Цитата:
Что такое Office System

Office System 2003 --- дитя новой политики Микрософта по именованию своих продуктов. В него входят как старый добрый Офис, который называется Microsoft Office 2003 (Microsoft Office Access 2003, Microsoft Office Excel 2003, Microsoft Office InfoPath 2003, Microsoft Office Outlook 2003, Microsoft Office PowerPoint 2003, Microsoft Office Publisher 2003, Microsoft Office Word 2003), так и некоторые другие продукты, например Microsoft Office OneNote 2003 (зависит от поставки). (есть еще Windows Server System 2003 --- собственно сервер, сиквел, иса и прочее).

Всего записей: 4667 | Зарегистр. 31-01-2003 | Отправлено: 03:11 24-08-2004
ghosty



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, пожалуйста, подправить код. Раньше для Ворда не писал - все больше для Екселя.
Задача простая: нужно найти весь текст, выделенный жирным, и отформатировать его в html - тегами (<b>, </b>). Получается пока вот это:
 
Dim b, b1 As String
Dim myRange As Range
b = "<b>"
b1 = "</b>
With ActiveDocument.Content.Find
    .ClearFormatting
    .Font.Bold = True
    .Text = ""
***    If .Found = True Then myRange = ActiveDocument.Content*** Что здесь должно быть?
End With
 
   With myRange
      Select Case intInsertMode
         Case 0  
            .InsertBefore b
         Case 1
            .InsertAfter b1
         Case Else
      End Select
      InsertTextInRange = True
   End With
 
Буду премного благодарен за скорейший ответ.

Всего записей: 6808 | Зарегистр. 21-09-2002 | Отправлено: 16:11 24-08-2004
Robert



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ghosty
 
Из справки к Word:
Цитата:
If you've gotten to the Find object from the Selection object, the selection is changed when text matching the find criteria is found. If you've gotten to the Find object from the Range object, the selection isn't changed when text matching the find criteria is found, but the Range object is redefined.
По-моему легче обойтись вообще без макросов, двумя заменами. Первой заменой меняем с подстановочными знаками любое число знаков (*), шрифт полужирный на искомый текст в тегах (<b>^&</b>), шрифт не полужирный. Второй заменой меняем без подстановочных знаков сочетание </b><b> на пустую строку.

Всего записей: 285 | Зарегистр. 12-03-2003 | Отправлено: 00:47 26-08-2004
Busyatka



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Проблема: в документах Word появляются разные отступы текста (строк текста) снизу от колонтитулов. На одной странице текст доводится до самого низа, а на каких-то страницах он оставляет чуть ли не по сантиметру, а то и больше места до колонтитула. (Стили проверены, параметры страниц применены ко всему документу). Можно ли разрешить данную проблему в Word?
Спасибо.

Всего записей: 64 | Зарегистр. 11-08-2004 | Отправлено: 16:15 27-08-2004
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Microsoft Word (Часть 1)
Widok (16-03-2006 15:02): http://forum.ru-board.com/topic.cgi?forum=5&topic=18912


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru