Vba word удалить весь текст

egyp7

0 / 0 / 0

Регистрация: 15.05.2014

Сообщений: 13

1

15.05.2014, 08:03. Показов 10226. Ответов 2

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Добрый день уважаемые господа. Столкнулся с некой задачей удаления данных из ms office word документа и вставки своего текста/данных в документ посредством макроса VBA. В связи с этим хотел бы просить помощи у вас форумчане.
Есть некоторое решение :

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub CleanData()
Dim curCharIndex As Integer
Dim charCount As Integer
curCharIndex = 1
charCount = ActiveDocument.Characters.Count
 
While curCharIndex <= charCount
    ActiveDocument.Characters(curCharIndex).Select
    If Selection.Type = wdSelectionNormal Then
        Selection.Delete
        charCount = charCount - 1
    Else
        'Skip it
        curCharIndex = curCharIndex + 1
    End If
Wend
End Sub

Данное решение позволяет поочередно удалять текст из документа, однако есть большие недостатки в этом макросе, а именно : когда страниц в документе много(более 7 страниц) текст удалить не получается из переполнения(overflow) да и нагрузка на ресурсы компьютера поочередном удалении символов из документа сами понимаете большая.
Вот хотелось бы как то эмулировать нажатие клавиш Ctrl+A(для выделения всего текста/данных) и Del для очистки этих данных из документа. Может есть еще какие то варианты ?
За сим спасибо. ждем ваших ответов. с уважением, egyp7.



0



shanemac51

Модератор

Эксперт MS Access

11341 / 4660 / 748

Регистрация: 07.08.2010

Сообщений: 13,497

Записей в блоге: 4

15.05.2014, 08:46

2

Лучший ответ Сообщение было отмечено egyp7 как решение

Решение

не поняла сути вашего удаления,
вернее оно не работает, если встречается Selection.Type <> wdSelectionNormal

Visual Basic
1
2
3
4
5
6
Sub zclear_doc()
'
Word.ActiveDocument.Range.Select
    Selection.WholeStory
    Selection.Delete Unit:=wdCharacter, Count:=1
End Sub



0



egyp7

0 / 0 / 0

Регистрация: 15.05.2014

Сообщений: 13

15.05.2014, 09:35

 [ТС]

3

shanemac51, спасибо Вам большое, Ваш ответ мне действительно помог. Мне также нужно было добавлять текст в документ откуда снесли данные ранее. Вообщем конечный скрипт выглядит так :

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub ClearDocPasteText()
Dim doc As Word.Document
Word.ActiveDocument.Range.Select
    Selection.WholeStory
    Selection.Delete Unit:=wdCharacter, Count:=1
  
   Set doc = ThisDocument 
  
   doc.Range.InsertParagraphAfter
   doc.Range.InsertAfter "Simple Text"
End Sub



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

15.05.2014, 09:35

3

I want to delete all the text in a Word document leaving the images/embedded files.

I know this should be easy, but can’t a good example on the web.

R3uK's user avatar

R3uK

14.4k7 gold badges43 silver badges77 bronze badges

asked Jan 10, 2012 at 16:04

Garrett Hall's user avatar

Garrett HallGarrett Hall

29.3k10 gold badges60 silver badges74 bronze badges

Text is of Type wdSelectionNormal

So if you iterate throught all characters of document and delete the «characters» which are of type 2 when selected. It will do the trick.

This should not be really speedy, but it work.

This example responds to simple cases :

Dim curCharIndex As Integer
Dim charCount As Integer
curCharIndex = 1
charCount = ActiveDocument.Characters.Count

While curCharIndex <= charCount
    ActiveDocument.Characters(curCharIndex).Select
    If Selection.Type = wdSelectionNormal Then
        Selection.Delete
        charCount = charCount - 1
    Else
        'Skip it
        curCharIndex = curCharIndex + 1
    End If
Wend

answered Jan 11, 2012 at 11:50

Franck LEVEQUE's user avatar

My ActiveDocument only contains TEXT.

I want to delete all the text in the active Document and set it to the text stored in a string.

E.g.

Dim str as String
str = "bla bla bla  .  .  ."
ActiveDocument.Selection.
     .Find = ?? ' I dont know what to find becuase I just want to delete all the texts.
     .Replace.Text = str

Luuklag's user avatar

Luuklag

3,90711 gold badges39 silver badges57 bronze badges

asked Oct 27, 2014 at 17:07

Kamran's user avatar

Simply overwrite the full text, I think this should work:

Dim str As String
str = "bla bla bla ..."

ActiveDocument.Range.Text = str

answered Oct 27, 2014 at 17:28

David Zemens's user avatar

David ZemensDavid Zemens

52.8k11 gold badges79 silver badges129 bronze badges

0

Формулировка задачи:

Добрый день уважаемые господа. Столкнулся с некой задачей удаления данных из ms office word документа и вставки своего текста/данных в документ посредством макроса VBA. В связи с этим хотел бы просить помощи у вас.
Есть некоторое решение :

Данное решение позволяет поочередно удалять текст из документа, однако есть большие недостатки в этом макросе, а именно : когда страниц в документе много(более 7 страниц) текст удалить не получается из переполнения(overflow) да и нагрузка на ресурсы компьютера поочередном удалении символов из документа сами понимаете большая.
Вот хотелось бы как то эмулировать нажатие клавиш Ctrl+A(для выделения всего текста/данных) и Del для очистки этих данных из документа. Может есть еще какие то варианты ?
За сим спасибо. ждем ваших ответов. с уважением, egyp7.

Код к задаче: «Удалить весь текст/данные из Word документа VBA макросом»

textual

Sub zclear_doc()
'
Word.ActiveDocument.Range.Select
    Selection.WholeStory
    Selection.Delete Unit:=wdCharacter, Count:=1
End Sub

Полезно ли:

8   голосов , оценка 4.125 из 5

������ � ������� � Word VBA

������ � ������� � Word VBA

������� Range � Selection �������� ���������� ������� ��� ����������� ����� ��������, ������� �� ������� ��������� � ������� � ������� Word VBA. ��������� �� ���� �������� ����� ��������� � ���������� � �����, �� � ����� ������ ��� ��������� �������� ��� ���������� �������, ������ ��� ������� ���������.

� �������� Range � Selection ���������� ����� ������, �� ���� � ��������� �������� �������. ��� ������� ������������ ����������� ������������������ ��������, ��� �������� �� ������� ��������� ��������� ��������. ��� ������� ����� ����� ����� ������� � �������. ������ ��������� �������� � ������ ��������� ��� ���������� ��������, � ������ — ��� ����������. ������������ �������� ������� � � ���, ��� ������ Selection ������������� ��������� � ������� ����: ������, ������������ ����������� ��� ������ ������� �������, � �� ����� ��� ������� Range ���������� ���������� �� ���������� ������� � ������ �������� �����.

����������� ������ Selection � ��� ������, ���� ���� ��������� ������� �� ������������, ��������, �� ������ ������� �����, � ������� ����� ��������� ������������ ��������, ��� � ��� ������, ���� ��� ���������� �������� ������������, ����� ������ ����� ����� �������. � ������ ��������� ������� ����� �������� ������� Range. ��� ������������ ������� �������� ���������� �������� � ������ ���������� ������������: Word ��������� ���������� ������ ��� ������ ��������� ����������� ���������� �������, � ��� ��������� ��������� ���������� ������ �� �����������. ����� ����, ��������� ���������� �� ���������� �� ���������� ��������, ��������� �������������.

�������� �� �� ��������, ������� Selection � Range ����� ��������� ���� �� �������. ��� ����������� ����������� ����������� ������, ��� ��� ������ ������� �������������� �������� ������ � �����������. � ����������������� �����, ������������ ������ ���������� ���������� ��������� ������������- �������� ���. ����������� ��������� ������� ������.

* ��� ��������� ��������� ������������ ��� ����� Select. ��������, ��� ������� RangeR ������� ����� ��� RangeR. Select.

* ��� ��������� ������� � ���������, ��������������� �� �� ����������, ��� � ���������� �������, ������������ �������� Range.

�������: ���� �����, ����������� � ��������� ������, ���������� ��� ���������, � �� ������ ��������� ��� � ���������� �������, ������ �������� � ���� ��� ���������� Selection . Range . ���������.

Word VBA ���������� ����� ��� ������� ��� ����������� � ��������� �������� ���������� � ���������� ��������. � ��������� ������� � ������������ ������ ����� ������ �� ���; ��� ���������� � ������� �������� ��� �������� ���������� � ���������� �������.

����� Expand ����������� ������������ �������� ��� ���������� �������, �������� ���� ������ � �� �����. ���� ����� ������������ ����� ������, �����, ����� ��� ���-������ ������. �� ������ �������� ������ ���� ������� ������������ ����; ����� ����, ���������� �������� ������ � ������ ��������� ��� ���������� ������� �� �����������.

��� ���������� � ���������� ������� �����, ������� ����� ��������� ����� �� ���, ����������� ����� ����������:

Selection.Expand(wdWord)

�� ������ ������������ ����� �� ��������� �������� ��� ���������� �������; wdCharct er, wdWord, wdSent ence, wdParagraph, wdSection, wdStory, wdCell, wdColumn, wdRow, wdTable � (������ ��� �������� Selection) wdLine. �� ��������� ������������ ��������� wdWord.

������ ��� ������� ������������ �� ����� ���������� �������: ������� Selection (�� �� ���������) ����� �������� ����� Expand. ���� ����� �������� ��������������� �������� Word, ������� ��������� ��������� ���������� ������� ��� ����������� ��������� ����. ������ ���, ����� ��������� �������� ����� Extend, ���������� ������� ������������� �� ���� ������, ������� ������� ����� �� ������ �������: ������� �����, �����������, �����, ���������� �������� ��� ����� ��������. ���� �� ������� �������� � ���� ������ �������, ��������, Selection.Expand ( «�» ). ���������� ������� ����� ��������� ������ �� ������� �������������� ���������� �������.

Word VBA ��������� ��� �������� ���������� ������ � ����� ��������� ��� ���������� �������. ������ ������ � ����, ��� ������, � ����� ������� ������������ ����� Move, �������� ������������ ��������� ��� ���������� �������: ��� �� ���������� �����, ������� ���������� � ��������� �������.

����� Move �������� �������� ��� ���������� �������, ������� � �� ������, ������� �� ������������, � � ��� ��� ��� �������� ������. ������������ ��������� � ������� ��������� �������. ����� ����� ����� Move ���������� «������» ������ � ������������ � ������ ������������. �� ��������� ����������� �� ������ ������������ ������ Expand � Mover,nd ��� ���������� ������� �������.

����������� ���� ������ ���������� ����������� �������� � ��������� �� ��� ������ �����. �������� �������� �� ��, ��� �� ����������� ����������� ��������� � �������� �������� ��������� Uni t (������ ���� ���������� ����������� �������� �������� � �������

«���������� ���������� � ���������� ��������» ������ � ���� �����). �������� Count ������������ ����� ����� ������������� �����, ���� �� ������ ���������� ������ ������ �� ��������� (�.�. � ��� �����), ��� �������������, ���� �� ������ ���������� ������ ����� �� ���������. � ����������� ���� ������� ��������� �� ��������� � ������, ��������� ������������ ������� �������� (���������� ������������ ���������) ����� �� ������������:

oTheRange .Move Unit : = waParagraph, Count, : = -2

������ MoveStart. � MoveEnd �������� ����������� ��� ��, ��� � ����� Move, ������ ��� �������� ��������� ��� �������� ����� ��������� ��� ���������� ������� ��������������. ����������� ���� ���������� ���������� ������ ���������� ������� �� ��� ����� ����� � ����� ���������:

Select-on.KoveStart Unit : = wdWord, Count := 3

�������� �������� �� ��, ��� ���� �� ����������� ��������� ����� ������� � �����, Word ������ �������� ��� ���������� ������� � ���������� �� � ������������ � ���������� ������������.

��� ���� ���� �������, Start Of ��� EndOf, ���������� ��� ��������� ������ ��� ����� ��������� ��� ���������� �������. ����� Start Of ���������� ������ ������� ������� � ������ �������� �����, � �� ����� ��� ����� EndOt ���������� ����� ������� ������ � ����� �������� �����.

�� ������ ������������ �������� Extend � ����� ������� ��� �������� ��� ���������� Word. ���� ������������ ������� ������� ��� ��������� � ���� ����, � �������� �� ��������� �� �����������, ����� �� ����������. ����������� ��������� wdMove ��� �������� ������� ��� ��������� wdExtend ��� ����������� ������ ��������� �������. ���� �������� ��������������� ������:

Selection. Start Of Unit := wdSentence, Extend := wdMove

����� ����� ��� ���������� ����� �������� ��� ���������� ������� � �����, ������� �� �������� �������� ������. � ����������� ����� ������ ��������� �������� ��� ���������� ������� — ��� ����� �������� ��� ���������� �������, ��������� � �������� ����� ������� ���������. ������ �������� �������� ����������� ������ � ��� ���������, ����� ��� ���������� �������� ����, ������� ��� ������ ������� �� ��� ����� ���������� ������� ��� ���������, �������� ��� ������ ������. (�� ������ �������� ������� �����, ����� ������, � ����� ��������� ������ �������� � «��������» �������� ��� ���������� �������).

����������� ����� Collapse ��� ������ ��������� ��� ���������� �������. �� ������ ����� ������ � ��� ��������� ��� �������� �����, ��������� �������������� �������� Direction. ����������� ���� ���������� ������� ���������� ������� � �� ��������� �����:

Selection.Collapse

� ���� ������ ������� ���������� ������� � �� �������� �����:

Selection.Collapse( Direction:=wdCollapseEnd)

���� �� ������� ��������, ������� ������������� ������ ������, � ��� �������� ����� (��������� ��������� wdCollapseEnd), Word ��������� ������ �������� ����� ����� ������ (��� ��������, ��� ������ �������� ����� ���������� � ��������� ������). ���� �� �� ������ ���������� ���-�� ����� ������ ������ ��������� ���������, �� ������ ������� ����������� �������� ������� � ������� ������ MoveEnd, ��������� ����������, �������� ����:

��������.MoveEnd Unit := wdCharacter, Count := -1

������� ���� ����� � ��������� ��� ���������� ������� ������ ��������: ������ ����������� ����� Delete ���������������� �������. �� ������ ������������ � ����� Cut, ���� ������ ������� ����� � ��������� ��� � ����� ������. ������� ��, ����� ���� �������� ����� � ����� ������, �� ������ ������� �� ����� � ��������� ��� ���������� �������.

�� ������ �������� �����, ������ ���������� � ����� ������, � ����� �������� ��� ���������� �������, ���������������� ������� Paste ����� �������. ���� ������ ���������� ��� �� ����, ����������� ����� ������ ������� �������� ����� � �������, ����� ��� �� ��� ��� ���������� ����� ���������� ������� �������� � Word.

���� ������������� ������ ������ ��� �������� ������ �� ������ ����� � ������ ������� ������ ���������, ���� ����� �� ������ ����������� ����� �����������. ������� ������� ������������ �������� Text ��� FormattedText ��������� ��� ���������� �������. ������� ��� �������� ������� ��������� ��� ���������� �������, ���������� �����, ������� �� ������ ��������, � ���. ������ ���������� ������ ���� ���� �� ��� ���, ���� ������������ ����� �� ������ ����� �������� ������������ ����� � �������.

����������� ���� �������� ���� �������� ����� �� ���������� ������� � ������ ��������, ����������� � �������� (�������� �������� ����������� ��������� ������ ����). � ����� ����� ������������ �������� ������ ��� �����; ����� �������������� ��� ���� ��������:

With ActiveDocument.Bookmarks("TheBookmark")

Set RangeY = _

ActiveDocument.Range(Start:=.Start, End=.Start)

End With

RangeY.Text = Selection.Text

��� �������� ������ � ������� � ��� �������������� ������ �������� �������� Text ��������� FormattedText.

���������� ��� ����������� ������� ���������� ������ �������� ������� �������� Text ��������� ��� ���������� ������� ������ ������, ������� �� ������ ��������. ��� ����������������� �� �������, ���������� ����:

Range2.Text = «��, ��! � ���� ����-�� ������ ���!»

������ ���������, ��� ������������� �������� Text �������� � ������ ������ ������������� � �������. �� ��������� ����� (���� ������ �� ������������� �� ������ �������� ������������ �����), ������� ������� ������.

����������� ������ Insert Before ��� Insert After �������� Range ��� Selection ��� ������� ������ � ������������ ����� ���������, �� ���������� ��� ���� ������������ �����. ��� ������ ��������� �������� ����� ����� ��������������� ����� ��� ����� ���������� ������� ��������������. Word �������� ����������� ����� � ���������� ������� ��� ��������.

��� ������������� ������ �� ������� ������������ ���������� �������� �����, ������� �� ������ ��������. ����������� ���� �������� ���� ��������� ����� �����, ���������� ����� Dairy Entry � ������ ���������� ������� (�������� �������� �� ������������� ����� ��������� VBA, ��� vbCr, ��� ���������� ����� ������). ����� ����� � ����� ����������� ����� �����, ������� ���������� � ������� ����. ���� �� �������� ����� ����� �� ���������� ����� ����, �����, ���������� ������� ����, �������� ����� ����� ������ � ���������� �������.

Dim strInsert Text As String

Selection.Insert Before "Dairy Entry" & vbCr

strInsert Text = "Today" & Chr(146) & "s date is"

strInsertText = _

strInsertTex't & Format (Now, "Long date") & ". "

Selection.InsertAfter strInsertText & vbCr

���� ������ ����������, ����� ������� ����������� ����� ����� ��������� ��������� ���������� ������� VBA, ������������ ��������� ��������, � ����� �������� � ��������� VBA. ��������� �������� � �������������� � ��������� ��������� �������� � ������� VBA �������� � ����� 11.

���������� ������ �������� ����� ������ ����� � �������� — �������� ���� ������ (�������������� ���������� vbCr) � ������� �������� Text ��� ������� Insert Before ��� Insert After. ����� Add, ����������� � ���������� Paragraphs, ��������, �� �� ����� ������ � ����������.

����������� ��� � ��� ������, ���� ��� ���������� ���������� ����� ����� � ��������� ��� ���������� �������, � �� � �� ������ ��� �����.

��������� ������� ��������� ��� ���������� ������� — ��� ��� ���� � ��������� �������� ���� ������. ��� ��� �������� ������������� �������� �� ���� ������ ��������� Word � ������������� ��������� �������.

��� ��������

������������� ������ �…

Font

��������������� �������� ������� ������� �������������� ��������, ����� ��� Name, Size � Bold. �� ��������� �������� �� ������ �������� ���������������� ������ � ����� ������ ��������� �������������� �������� Range, �� ��������� � �������� Font, �� ������ �� ��� ������ � ����������� ���������

Paragrap

��������������� �������� ������� ������� �������������� �������, ����� ��� hFormat LeftIndent ��� LineSpacing

Style

��� ����� ������� ��� ������, ������������ � ��������� ��� ���������� �������

Borders

������� ������ ������

Tabstops

���� � ������������ ����� ���������. �� ������ �������� ������ � ���� ��������� ������ � ������� �������� Paragraph, � �� ��������������� ����� ��������� ��� ���������� �������

Like this post? Please share to your friends:
  • Vba word удаление страницы
  • Vba word убрать выделение
  • Vba word текущий документ
  • Vba word текущая папка
  • Vba word текстовые функции