dim a as string
a = Application.Selection
Selection.Collapse 'если не хотите заменять выделенный текст
Selection.Text = a ' или Selection.TypeText (a)
Sub Макрос1()
'
' Макрос1 Макрос
'
Application.ShowClipboard
Selection.Copy
Selection.Collapse
Selection.Paste
Call ClearClipboard
Application.ShowClipboard
End Sub
If Application.CommandBars("Clipboard").Visible = True Then
...
'или If Application.CommandBars.Item("Clipboard").Visible = True Then
Application.ShowClipboard 'Меняет состояние панели буфера обмена. Если она открыта закрывает, при закрытой панели наблюдение за буфером не ведется. А последний объект занесенный на панель остается в памяти. Проверял в Word 2007.
Selection.Copy
Selection.Collapse ' Когда я копирую текст, я его выделяю и запускаю макрос. Если убрать эту строку, то изменений не будет видно, т.к. текст заменит выделенный фрагмент, а именно его мы и копировали.
Selection.Paste
Call ClearClipboard 'Очищяем буфер обмена.
Application.ShowClipboard 'Если сразу открыть панель, то последний фрагмент текста который надохится в буфере обмена автоматически попадет на панель, поэтому предварительно буфер надо очистить. Потом показывается панель.
Word Developer Reference
Selection.Collapse Method
Collapses a selection to the starting or ending position. After a selection is collapsed, the starting and ending points are equal.
Syntax
expression.Collapse(Direction)
expression Required. A variable that represents a Selection object.
Parameters
Name Required/Optional Data Type Description
Direction Optional Variant The direction in which to collapse the range or selection. Can be either of the following WdCollapseDirection constants: wdCollapseEnd or wdCollapseStart. The default value is wdCollapseStart.
Example
This example collapses the selection to an insertion point at the beginning of the previous selection.
Visual Basic for Applications
Selection.Collapse Direction:=wdCollapseStart
© 2006 Microsoft Corporation. All rights reserved.
If Application.CommandBars("Office Clipboard").Enabled And Application.CommandBars("Office Clipboard").Visible Then
Application.CommandBars("Office Clipboard").Enabled = False
Selection.Copy
Selection.Collapse
Selection.Paste
Call ClearClipboard
Application.CommandBars("Office Clipboard").Enabled = True
End If
Public Function GetClipboard() As Variant
GetClipboard = "": On Error Resume Next
Dim MyDataObj As New DataObject
MyDataObj.GetFromClipboard: GetClipboard = MyDataObj.GetText
End Function
Public Sub ClearClipboard()
Dim MyDataObj As New DataObject
MyDataObj.SetText "": MyDataObj.PutInClipboard
End Sub
Sub Макрос1()
On Error Resume Next
Dim MyDataObj As New DataObject
If Application.CommandBars("Office Clipboard").Enabled And Application.CommandBars("Office Clipboard").Visible Then
Application.CommandBars("Office Clipboard").Visible = False
Selection.Copy
Selection.Collapse
Selection.Paste
Call ClearClipboard
Application.CommandBars("Office Clipboard").Visible = True
Else
MyDataObj.SetText GetClipboard()
Selection.Copy
Selection.Collapse
Selection.Paste
Call ClearClipboard
MyDataObj.PutInClipboard
End If
End Sub
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.