powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в Word установить курсоh в конец абзаца?
15 сообщений из 40, страница 2 из 2
Как в Word установить курсоh в конец абзаца?
    #38929877
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
плохо прочитали

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim MyDoc As Word.Document 'As Object, если не подключена библиотека ворда

   Set AppS = CreateObject("Word.Application.15") 'делаем ссылку на объект Word для создания нового документа
    
    With AppS
        Set MyDoc = .Documents.Add(strPathDot_S)  'присоединяем к объекту Word шаблон по заданому пути
        .Visible = True 'запускаем приложение Word
    End With

Dim n
n = MyDoc.Selection.Paragraphs(1).Range.End - 1
MyDoc.Range(n, n).Select
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38930086
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, как не пытался приспособить к своему коду не получилось. Выкладываю код целиком (с вашим вариантом), прошу внести необходимые правки (по варианту Казанского и без selection)
Код: vbnet
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.
Private Function funOutputWord_S(strPathDot_S As String, strPathWord_S As String) As Boolean

Dim strPathDot_S As String, strPathWord_S As String
Dim AppS As Object 'для заполнения бланка
  

    Set AppS = CreateObject("Word.Application.15") 'делаем ссылку на объект Word для создания нового документа
    
    With AppS
        .Documents.Add (strPathDot_S)  'присоединяем к объекту Word шаблон по заданому пути
        .Visible = True 'запускаем приложение Word
    End With
    
    With AppS.Selection
        
        .MoveDown Unit:=wdLine, Count:=6
        .Font.Name = "Tahoma": .Font.Size = 9
        .TypeParagraph: .TypeParagraph
        
        .ParagraphFormat.LeftIndent = AppS.CentimetersToPoints(10)
        .ParagraphFormat.Alignment = wdAlignParagraphCenter 'wdAlignParagraphLeft
            
            .TypeText Text:="РУКОВОДИТЕЛЮ"
        
        .TypeParagraph
            .ParagraphFormat.Alignment = wdAlignParagraphCenter
            .TypeText Text:=StrConv(Forms!Данные.плКраткоеНаименование, vbUpperCase)
        
        .TypeParagraph
        .ParagraphFormat.Alignment = wdAlignParagraphCenter
        .TypeText Text:=StrConv(Forms!Данные.Адрес, vbUpperCase)
            
            .MoveUp Unit:=wdParagraph, Count:=2
            
                .ParagraphFormat.Borders(wdBorderBottom).LineStyle = AppS.Options.DefaultBorderLineStyle
                .ParagraphFormat.Borders(wdBorderBottom).LineWidth = AppS.Options.DefaultBorderLineWidth
                .ParagraphFormat.Borders(wdBorderBottom).Color = AppS.Options.DefaultBorderColor
                
        .MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdMove

            Dim myRangeS As Object
            Set myRangeS = AppS.Selection.Paragraphs(1).Range
            myRangeS.Collapse Direction:=wdCollapseEnd
            myRangeS.MoveEnd Unit:=wdCharacter, Count:=-1
            myRangeS.Select
            Set myRangeS = Nothing

        .TypeParagraph: .TypeParagraph: .TypeParagraph
        .ParagraphFormat.LeftIndent = AppS.CentimetersToPoints(0)
        .ParagraphFormat.Alignment = wdAlignParagraphLeft
        
        .Font.Size = 10: .Font.Bold = wdToggle
            .TypeText Text:="Сопроводительное письмо"
        .Font.Bold = wdToggle

        .TypeParagraph: .TypeParagraph
            .TypeText Text:="Направляем Вам дополнительные документы (прилагаются)."

    End With
                
                With AppS
                    .ActiveDocument.SaveAs (strPathWord_S) 'сохраняем созданный документ по заданному пути strPathWord_Z без запроса
                    .WindowState = 1
                    .Activate
                End With
        
End If
    
Set AppS = Nothing 'уничтожаем переменную
funOutputWord_S = True 'ставим флаг успешного выполнения функции

Exit_:
    Exit Function
Err_:
    funOutputWord_S = False
    StatusBarNo
    MsgBox "Описание ошибки: " & Err.Description & "  Номер ошибки " _
               & "(функция funOutputWord_S): " & Err.number
    Err.Clear
    AppS.Quit 'на время отладки
    Set AppS = Nothing
    Resume Exit_

End Function
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38930160
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в чем? Что значит "не получилось"?
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38930199
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProПроблема в чем? Что значит "не получилось"?
ошибка выполнения кода именно на месте нужного кода
Код: vbnet
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.
Dim MyDoc As Word.Document 'As Object, если не подключена библиотека ворда
  
    Set AppS = CreateObject("Word.Application.15") 'делаем ссылку на объект Word для создания нового документа
    
    With AppS
        Set MyDoc = .Documents.Add(strPathDot_S)   'присоединяем к объекту Word шаблон по заданому пути
        .Visible = True 'запускаем приложение Word
        
    End With
    
    With AppS.Selection
        
        .MoveDown Unit:=wdLine, Count:=6
        .Font.Name = "Tahoma": .Font.Size = 9
        .TypeParagraph: .TypeParagraph
        
        .ParagraphFormat.LeftIndent = AppS.CentimetersToPoints(10)
        .ParagraphFormat.Alignment = wdAlignParagraphCenter 'wdAlignParagraphLeft
            
            .TypeText Text:="РУКОВОДИТЕЛЮ"
        
        .TypeParagraph
            .ParagraphFormat.Alignment = wdAlignParagraphCenter
            .TypeText Text:=StrConv(Forms!Данные.плКраткоеНаименование, vbUpperCase)
        
        .TypeParagraph
        .ParagraphFormat.Alignment = wdAlignParagraphCenter
        .TypeText Text:=StrConv(Forms!Данные.Адрес, vbUpperCase)
            
            .MoveUp Unit:=wdParagraph, Count:=2
            
                .ParagraphFormat.Borders(wdBorderBottom).LineStyle = AppS.Options.DefaultBorderLineStyle
                .ParagraphFormat.Borders(wdBorderBottom).LineWidth = AppS.Options.DefaultBorderLineWidth
                .ParagraphFormat.Borders(wdBorderBottom).Color = AppS.Options.DefaultBorderColor
                
        .MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdMove

Dim n
n = MyDoc.Selection.Paragraphs(1).Range.End - 1
MyDoc.Range(n, n).Select

        .TypeParagraph: .TypeParagraph: .TypeParagraph
        .ParagraphFormat.LeftIndent = AppS.CentimetersToPoints(0)
        .ParagraphFormat.Alignment = wdAlignParagraphLeft
        
        .Font.Size = 10: .Font.Bold = wdToggle
            .TypeText Text:="Сопроводительное письмо"
        .Font.Bold = wdToggle

        .TypeParagraph: .TypeParagraph
            .TypeText Text:="В связи с уточнением исковых требований по данному делу направляем Вам дополнительные документы (прилагаются)."

    End With
                
                With AppS
                    .ActiveDocument.SaveAs (strPathWord_S) 'сохраняем созданный документ по заданному пути strPathWord_Z без запроса
                    .WindowState = 1
                    .Activate
                End With
        
End If
    
Set AppS = Nothing 'уничтожаем переменную
funOutputWord_S = True 'ставим флаг успешного выполнения функции

Exit_:
    Exit Function
Err_:
    funOutputWord_S = False
    StatusBarNo
    MsgBox "Описание ошибки: " & Err.Description & "  Номер ошибки " _
               & "(функция funOutputWord_S): " & Err.number
    Err.Clear
    AppS.Quit 'на время отладки
    Set AppS = Nothing
    Resume Exit_

  
End Function
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38930212
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
interskShocker.ProПроблема в чем? Что значит "не получилось"?
ошибка выполнения кода именно на месте нужного кодаКакая именно ошибка? Вы осознаете, что мы не можем запустить ваш код, не имея ваших форм и прочего окружения?


P.S. Видимо, проблема в том, что у документа нет Selection - используйте AppS.Selection
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38930235
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Prointerskпропущено...

ошибка выполнения кода именно на месте нужного кодаКакая именно ошибка? Вы осознаете, что мы не можем запустить ваш код, не имея ваших форм и прочего окружения?


P.S. Видимо, проблема в том, что у документа нет Selection - используйте AppS.Selection
наверно именно в этом потому что сделал так и всё работает, даже когда word в фоне
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
            
Dim AppSW As Word.Document
Dim N As Integer

    Set AppS = CreateObject("Word.Application.15")
    Set AppSW = AppS.Documents.Add(strPathDot_S)


N = AppS.Selection.Paragraphs(1).Range.End - 1
AppSW.Range(N, N).Select



так что без Selection не обойтись!
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38930293
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
interskдаже когда word в фонетем не менее, у вас сохраняется активный документ, а не MyDoc


interskтак что без Selection не обойтись!Не вижу, почему. Что мешает все эти операции проделывать над произвольным Range-диапазоном
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38930547
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Prointerskдаже когда word в фонетем не менее, у вас сохраняется активный документ, а не MyDoc


interskтак что без Selection не обойтись!Не вижу, почему. Что мешает все эти операции проделывать над произвольным Range-диапазоном

спасибо за наводку, заменил
Код: vbnet
1.
2.
With AppS
                    .ActiveDocument.SaveAs (strPathWord_S)


на
Код: vbnet
1.
2.
3.
4.
5.
6.
                AppSW.SaveAs (strPathWord_S) 
                
                With AppS
                    .WindowState = 0: .WindowState = 1 '.WindowState = wdWindowStateMaximize
                    .Activate
                End With


работает, от одного ActiveDocument избавились )
А как все операции проделывать над произвольным Range-диапазоном ?
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38930552
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну замените With AppS.Selection на переменную диапазона

Если вам это тяжело осознать - забейте, работает и ладно
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38930809
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProНу замените With AppS.Selection на переменную диапазона

Если вам это тяжело осознать - забейте, работает и ладно не надо забивать ) как заменить? как обозначить диапазон в Word?
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38930886
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
interskкак обозначить диапазон в Word?
Код: vbnet
1.
Dim MyRange As Word.Range
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38931136
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Prointerskкак обозначить диапазон в Word?
Код: vbnet
1.
Dim MyRange As Word.Range

как использовать диапазон для заполнения word текстом , форматирования текста и т.д. ?
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38931142
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
Dim k As Range
Set k = Application.Selection.Range
k.InsertParagraph
k.InsertAfter Text:="РУКОВОДИТЕЛЮ"
k.ParagraphFormat.LeftIndent = Application.CentimetersToPoints(1)
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38931189
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Код: vbnet
1.
k.InsertAfter Text:="РУКОВОДИТЕЛЮ"

спасибо, буду пробовать!
а почему InsertAfter, а не TypeText ?
...
Рейтинг: 0 / 0
Как в Word установить курсоh в конец абзаца?
    #38931191
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

как все таки правильно?
Dim MyRange As Word.Range
или
Dim k As Range
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в Word установить курсоh в конец абзаца?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]