Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
16 / 15 / 4
Регистрация: 07.11.2017
Сообщений: 48
1

Microsoft Word Сбой при удаленном вызове процедуры 0x800706BE

29.06.2018, 01:19. Показов 4635. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Начну по порядку: Создал пару процедур для записи каких то строк в Word документ:
VB.NET
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
Imports Word = Microsoft.Office.Interop.Word
 
Module ModuleWord
    Private Doc As Word.Document
    Private App As Word.Application
 
    Private Sub WrText(ByVal Text As String) 'запись текста
        Dim Par As Word.Paragraph = Doc.Content.Paragraphs.Add(Doc.Bookmarks.Item("\endofdoc").Range)
        Par.Range.Text = Text
        Par.Format.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft
        Par.Range.InsertParagraphAfter()
    End Sub
 
    Private Sub WrText(ByVal Text As String, ByVal Bold As Boolean) 'Запись жирного текста
        Dim Par As Word.Paragraph = Doc.Content.Paragraphs.Add(Doc.Bookmarks.Item("\endofdoc").Range)
        Par.Range.Text = Text
        Par.Range.Font.Bold = Bold
        Par.Format.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft
        Par.Range.InsertParagraphAfter()
    End Sub
 
    Public Sub WriteWord()
        App = New Word.Application
        App.Visible = True
        Doc = App.Documents.Add
 
        WrText("Hello") 
        WrText("world", True)
    End Sub
End Module
Все бы ничего, но вдруг мне понадобилось изменить еще пару параметров: допустим Size и Italic. Не плодить ведь гору процедур с кучей параметров. Решил создать 1 процедуру в которой во втором параметре передавался целиком шрифт. Но тут что то пошло не так...
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    Private Sub WrText(ByVal Text As String, ByVal Fnt As Word.Font)
        Try
            Dim Par As Word.Paragraph = Doc.Content.Paragraphs.Add(Doc.Bookmarks.Item("\endofdoc").Range)
            Par.Range.Text = Text
            Par.Range.Font = Fnt
            Par.Format.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft
            Par.Range.InsertParagraphAfter()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
 
    Public Sub WriteWord()
        App = New Word.Application
        App.Visible = True
        Doc = App.Documents.Add
 
        WrText("Hello") 
        WrText("world", New Word.Font With {.Size = 20, .Italic = True})
    End Sub
При выполнении ворд вылетает и исключение: Сбой при удаленном вызове процедуры 0x800706BE
Я понимаю что я передаю новый (пустой) экземпляр Font(не считая нескольких параметров) и из-за этого краш.
Посоветуйте пожалуйста как можно правильно передать несколько мне нужных параметров Font в мою процедуру.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2018, 01:19
Ответы с готовыми решениями:

Сбой при удаленном вызове процедуры. [0x800706be]
Всем привет! Подскажите, кто знает, пожалуйста: OS: windows 7 установил SQL Server 2008 Все...

Сбой при удаленном вызове процедуры
Здравствуйте! На ноутбуке установлена Windows 8.1 SL. Нажимаю "пуск", пишу в строке поиска...

Сбой при удаленном вызове процедуры
Буквально пару часов назад перестали запускаться все стандартные приложения...

Пишет сбой при удаленном вызове процедуры, просит пароль,затем преображается и так по кругу до бесконечности
Всем привет.10 видна.Включаю ноут грузится минут 30,затем пишет сбой при удаленном вызове...

2
4652 / 3609 / 854
Регистрация: 02.02.2013
Сообщений: 3,488
Записей в блоге: 2
29.06.2018, 18:21 2
Лучший ответ Сообщение было отмечено Mickey6X6 как решение

Решение

VB.NET
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
Imports WRD = Microsoft.Office.Interop.Word
Private wApp As WRD.Application
Private wDoc As WRD.Document
Private Sub Button5_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click
    wApp = New WRD.Application
    wDoc = wApp.Documents.Open("c:\07\test01a.doc")
    WrText("Все бы ничего, но вдруг мне понадобилось изменить еще пару параметров")
    WrText("Все бы ничего, но вдруг мне понадобилось изменить еще пару параметров", 14, True)
    'или
    Dim fnt As New Font("Arial", 12, FontStyle.Bold Or FontStyle.Italic)
    WrText2("Все бы ничего, но вдруг мне понадобилось изменить еще пару параметров", fnt)
    wApp.Visible = True
End Sub
Private Sub WrText(ByVal Text As String, Optional ByVal newSize As Integer = 10, Optional ByVal isBold As Boolean = False, Optional ByVal isItalic As Boolean = False)
    Try
        Dim Par As WRD.Paragraph = wDoc.Content.Paragraphs.Add(wDoc.Bookmarks.Item("\endofdoc").Range)
        Par.Range.Text = Text
        Par.Range.Font.Bold = isBold
        Par.Range.Font.Italic = isItalic
        Par.Range.Font.Size = newSize
        Par.Format.Alignment = WRD.WdParagraphAlignment.wdAlignParagraphLeft
        Par.Range.InsertParagraphAfter()
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub
Private Sub WrText2(ByVal Text As String, ByVal newFont As Font)
    Try
        Dim Par As WRD.Paragraph = wDoc.Content.Paragraphs.Add(wDoc.Bookmarks.Item("\endofdoc").Range)
        Par.Range.Text = Text
        Par.Range.Font.Name = newFont.Name
        Par.Range.Font.Bold = newFont.Bold
        Par.Range.Font.Italic = newFont.Italic
        Par.Range.Font.Size = newFont.Size
        Par.Format.Alignment = WRD.WdParagraphAlignment.wdAlignParagraphLeft
        Par.Range.InsertParagraphAfter()
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub
2
16 / 15 / 4
Регистрация: 07.11.2017
Сообщений: 48
04.07.2018, 18:42  [ТС] 3
ovva, Спасибо! В помощь себе создал небольшой класс MyFont с необходимыми мне параметрами:
VB.NET
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
Imports Word = Microsoft.Office.Interop.Word
 
Module ModuleMWord
    Private Doc As Word.Document
    Private App As Word.Application
 
    Private Sub WrText(ByVal Text As String, ByVal MyFt As MyFont)
        Try
            Dim Par As Word.Paragraph = Doc.Content.Paragraphs.Add(Doc.Bookmarks.Item("\endofdoc").Range)
            Par.Range.Text = Text
            Par.Range.Font.Name = MyFt.Name
            Par.Range.Font.Size = MyFt.Size
            Par.Range.Font.Bold = MyFt.Bold
            Par.Range.Font.Italic = MyFt.Italic
            Par.Format.Alignment = MyFt.Aligment
            Par.Range.InsertParagraphAfter()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
 
    Public Sub WriteWord()
        App = New Word.Application
        App.Visible = True
        Doc = App.Documents.Add
        WrText("Hello", New MyFont With {.Bold = True, .Size = 20})
        WrText("WORLD!", New MyFont With {.Italic = True, .Size = 30})
        WrText("Привет", New MyFont With {.Name = "Arial", .Size = 25})
        WrText("МИР!", New MyFont With {.Bold = True, .Size = 20, _
            .Aligment = Word.WdParagraphAlignment.wdAlignParagraphRight})
    End Sub
End Module
 
Public Class MyFont
    Public Property Name As String
    Public Property Size As Integer
    Public Property Bold As Boolean
    Public Property Italic As Boolean
    Public Property Aligment As Word.WdParagraphAlignment
 
    Public Sub New()
        Name = "Times New Roman"
        Size = 16
        Bold = False
        Italic = False
        Aligment = Word.WdParagraphAlignment.wdAlignParagraphLeft
    End Sub
End Class
0
04.07.2018, 18:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.07.2018, 18:42
Помогаю со студенческими работами здесь

Сбой при удаленном вызове процедур
Помогите возможна такая же проблема как и тут...

Сбой программы при вызове формы
Добавил еще одну форму. В коде второй формы ничего не трогал, только дизайн изменил. Далее из...

Ошибка при создании word.document: Microsoft Word (0x800A16C1) Object has been deleted.
Фрагмент кода: Set objDoc = Server.CreateObject('Word.Document')...

Ошибки при вызове процедуры
Вот сама функция function GCD(A: Integer; B: Integer): Integer; begin A := Abs(A); B...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru