Member 14842313 Ответов: 2

Использование VB.NET автоматическое добавление макрокода в word


Okay i think everything looks good, i writed below code to button, when i click the button, word opens, but im getting error, and nothing on macro, here : https://i.ibb.co/KKZh2j2/Untitled.png




im getting, Programmatic access to Visual Basic Project is not trusted

What I have tried:

<pre>    Dim file1 As String
        Dim word = New Word
        word.Visible = True
        Dim doc = word.Documents.Open("C:\Users\wdqdwq\Desktop\file1.docx")
        Dim project = doc.VBProject
        Dim [module] = project.VBComponents.Add(vbext_ComponentType.vbext_ct_StdModule)
        Dim script = String.Format("Sub MacroTest() " &
    "Const path1 As String = ""{0}"" " &
    "Set doc1 = Documents.Open(path1) " &
    "End Sub", file1)
        [module].CodeModule.AddFromString(script)
        word.Run("MacroTest")

2 Ответов

Рейтинг:
1

Member 14842313

я люблю вас, ребята, может быть, это тоже возможно на VB.NET

phil.o

Вот фрагмент, переведенный на VB.NET:

Imports System.Runtime.InteropServices
Imports Microsoft.Vbe.Interop
Imports Word = Microsoft.Office.Interop.Word.Application

Private Sub TheMethod()
    Dim file1, file2 As String
    Dim word = New Word
    word.Visible = True
    Dim doc = word.Documents.Open(file1)
    Dim project = doc.VBProject
    Dim [module] = project.VBComponents.Add(vbext_ComponentType.vbext_ct_StdModule)
    Dim script = String.Format("Sub MacroTest() " & _
"Const path1 As String = ""{0}"" " & _
"Set doc1 = Documents.Open(path1) " & _
"End Sub", file2)
    [module].CodeModule.AddFromString(script)
    word.Run("MacroTest")
End Sub

Member 14842313

я получаю ошибку, здесь : Dim word = новое слово с {.Visible = True

}


я попробовал это сделать :
Dim word = новое слово с & Visible = True

До сих пор у меня есть эта ошибка :
https://i.ibb.co/Mn9BgjX/Untitled.png

phil.o

Я исправил этот фрагмент.

Member 14842313

спасибо тебе

Member 14842313

но все же какая-то ошибка здесь, на Word, она говорит, что тип ожидаемый

phil.o

Попробуйте заменить каждый символ (&) с & VbCrLf &.

Member 14842313

file1 и file2, как это использовать, я имею в виду вот это.

Member 14842313

ах, исправлено, но то, что я должен сделать с File1 и File2, так что я должен добавить doc-файлы в ресурсы и заменить Files1 и 2 этим кодом :

Мой.Ресурсы.Имя файла

или используйте "расположение документа"

phil.o

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

Member 14842313

да, но пример, почему я не могу просто использовать только один файл и поместить макрокод внутрь, почему File1 и File2, так что давайте немного подумаем об этом, мы используем Dim File1 и File2 в качестве строки, почему строка, я добавил этот код к кнопке, когда я нажимаю кнопку, слово открывается, но когда я проверяю макрокод, там ничего нет, также я получаю ошибку от, File2, могу ли я отправить источник сюда, чтобы вы могли проверить его?

phil.o

Текст макроса, как показано в моем фрагменте кода, выглядит следующим образом просто пример. Вы должны изменить его с помощью текста ваш собственный макрос. file1 содержит путь к документу word, который вы хотите записать, а file2 находится здесь только потому, что в этом примере было необходимо его значение. Возможно, Вам не понадобится переменная file2.
И, если у вас есть какой-то код для обмена, пожалуйста, используйте зеленый виджет "улучшить вопрос" и поместите его в раздел "Что я пробовал", используя pre тег для форматирования кода.

Member 14842313

Сделав проверку еще раз, я обновился, так что вы можете видеть более ясно

Member 14842313

также я могу вам заплатить, просто помогите нам, дайте мне полный код, с кнопкой здесь, чтобы написать макрокод на doc и построить его

phil.o

Нет, это так не работает. Если вы хотите нанять разработчика, CP-это не то место.

Member 14842313

тогда вы можете сделать это для меня с помощью кнопки , чтобы мы могли исправить soulution

phil.o

К сожалению, нет. Хотя мне нравится помогать тем, кто действительно дает некоторые мысли и усердно работает над своими собственными задачами, я действительно не люблю делать за них работу других.

Рейтинг:
1

Richard MacCutchan

Да, это возможно. Вам нужно использовать Microsoft.Офис.Взаимодействие.Пространство Имен Word | Microsoft Docs[^]