Curiosity
Дата: Воскресенье, 21.09.2014, 07:32 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Здравствуйте! Делаю макрос который делает отчет в word по данным excel, но у меня не получается из excel в word создать обьект textbox. Подскажите пожалуйста как это сделать?
Здравствуйте! Делаю макрос который делает отчет в word по данным excel, но у меня не получается из excel в word создать обьект textbox. Подскажите пожалуйста как это сделать? Curiosity
Инженер-проектировщик
Ответить
Сообщение Здравствуйте! Делаю макрос который делает отчет в word по данным excel, но у меня не получается из excel в word создать обьект textbox. Подскажите пожалуйста как это сделать? Автор - Curiosity Дата добавления - 21.09.2014 в 07:32
AndreTM
Дата: Воскресенье, 21.09.2014, 08:43 |
Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
501
±
Замечаний:
0% ±
2003 & 2010
А зачем вам текстбокс именно в Ворде? И где он там у вас будет располагаться - прямо в тексте, что-ль? Ну и НАДО показывать ваш файл Excel с кодом (и ваш шаблон Word, если есть, с текстом), чтобы вообще понять, что именно вы делаете...
А зачем вам текстбокс именно в Ворде? И где он там у вас будет располагаться - прямо в тексте, что-ль? Ну и НАДО показывать ваш файл Excel с кодом (и ваш шаблон Word, если есть, с текстом), чтобы вообще понять, что именно вы делаете... AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Ответить
Сообщение А зачем вам текстбокс именно в Ворде? И где он там у вас будет располагаться - прямо в тексте, что-ль? Ну и НАДО показывать ваш файл Excel с кодом (и ваш шаблон Word, если есть, с текстом), чтобы вообще понять, что именно вы делаете... Автор - AndreTM Дата добавления - 21.09.2014 в 08:43
Curiosity
Дата: Воскресенье, 21.09.2014, 10:04 |
Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Если я правильно понимаю объект textbox это объект в котором можно записывать уравнения. Мне он нужен для того чтобы оформлять инженерные расчеты. Вот например я нашел код который делает такое но в самом ворде [vba]Код
Sub Test() Dim objRange As Range Dim objMath As OMath Set objRange = Selection.Range Set objRange = Selection.OMaths.Add(objRange) Set objMath = objRange.OMaths(1) Selection.TypeText ChrW(948) & "ax^2+bx+c=0" objMath.BuildUp Selection.TypeParagraph End Sub
[/vba] А когда я пытаюсь через excel такое сделать, excel выдает ошибку. [vba]Код
Sub otchet() Dim WordApp As Object Dim SaveAsName As String Dim objRange As Range Dim objMath As OMath Set WordApp = CreateObject("Word.Application") SaveAsName = Worksheets(1).Cells(1, 6) With WordApp .Documents.Add With .Selection .Font.Size = 12 .ParagraphFormat.Alignment = 0 .Font.Bold = False .TypeText Text:="text" .TypeParagraph Set objRange = Selection.Range Set objRange = Selection.OMaths.Add(objRange) Set objMath = objRange.OMaths(1) Selection.TypeText "ax^2+bx+c=0" objMath.BuildUp Selection.TypeParagraph End With .ActiveDocument.SaveAs Filename:=SaveAsName End With WordApp.Quit False Set WordApp = Nothing ' Reset status bar Application.StatusBar = "" ' Show the folder Shell "explorer.exe " & Application.DefaultFilePath, vbNormalFocus End Sub
[/vba]
Если я правильно понимаю объект textbox это объект в котором можно записывать уравнения. Мне он нужен для того чтобы оформлять инженерные расчеты. Вот например я нашел код который делает такое но в самом ворде [vba]Код
Sub Test() Dim objRange As Range Dim objMath As OMath Set objRange = Selection.Range Set objRange = Selection.OMaths.Add(objRange) Set objMath = objRange.OMaths(1) Selection.TypeText ChrW(948) & "ax^2+bx+c=0" objMath.BuildUp Selection.TypeParagraph End Sub
[/vba] А когда я пытаюсь через excel такое сделать, excel выдает ошибку. [vba]Код
Sub otchet() Dim WordApp As Object Dim SaveAsName As String Dim objRange As Range Dim objMath As OMath Set WordApp = CreateObject("Word.Application") SaveAsName = Worksheets(1).Cells(1, 6) With WordApp .Documents.Add With .Selection .Font.Size = 12 .ParagraphFormat.Alignment = 0 .Font.Bold = False .TypeText Text:="text" .TypeParagraph Set objRange = Selection.Range Set objRange = Selection.OMaths.Add(objRange) Set objMath = objRange.OMaths(1) Selection.TypeText "ax^2+bx+c=0" objMath.BuildUp Selection.TypeParagraph End With .ActiveDocument.SaveAs Filename:=SaveAsName End With WordApp.Quit False Set WordApp = Nothing ' Reset status bar Application.StatusBar = "" ' Show the folder Shell "explorer.exe " & Application.DefaultFilePath, vbNormalFocus End Sub
[/vba] Curiosity
Инженер-проектировщик
Ответить
Сообщение Если я правильно понимаю объект textbox это объект в котором можно записывать уравнения. Мне он нужен для того чтобы оформлять инженерные расчеты. Вот например я нашел код который делает такое но в самом ворде [vba]Код
Sub Test() Dim objRange As Range Dim objMath As OMath Set objRange = Selection.Range Set objRange = Selection.OMaths.Add(objRange) Set objMath = objRange.OMaths(1) Selection.TypeText ChrW(948) & "ax^2+bx+c=0" objMath.BuildUp Selection.TypeParagraph End Sub
[/vba] А когда я пытаюсь через excel такое сделать, excel выдает ошибку. [vba]Код
Sub otchet() Dim WordApp As Object Dim SaveAsName As String Dim objRange As Range Dim objMath As OMath Set WordApp = CreateObject("Word.Application") SaveAsName = Worksheets(1).Cells(1, 6) With WordApp .Documents.Add With .Selection .Font.Size = 12 .ParagraphFormat.Alignment = 0 .Font.Bold = False .TypeText Text:="text" .TypeParagraph Set objRange = Selection.Range Set objRange = Selection.OMaths.Add(objRange) Set objMath = objRange.OMaths(1) Selection.TypeText "ax^2+bx+c=0" objMath.BuildUp Selection.TypeParagraph End With .ActiveDocument.SaveAs Filename:=SaveAsName End With WordApp.Quit False Set WordApp = Nothing ' Reset status bar Application.StatusBar = "" ' Show the folder Shell "explorer.exe " & Application.DefaultFilePath, vbNormalFocus End Sub
[/vba] Автор - Curiosity Дата добавления - 21.09.2014 в 10:04
AndreTM
Дата: Воскресенье, 21.09.2014, 10:24 |
Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
501
±
Замечаний:
0% ±
2003 & 2010
Selection в Word и Excel - это разные вещи. Вот в этом куске Set objRange = Selection .Range Set objRange = Selection .OMaths.Add(objRange) Set objMath = objRange.OMaths(1) Selection .TypeText "ax^2+bx+c=0"
вы, по-вашему, к чему обращаетесь?
Selection в Word и Excel - это разные вещи. Вот в этом куске Set objRange = Selection .Range Set objRange = Selection .OMaths.Add(objRange) Set objMath = objRange.OMaths(1) Selection .TypeText "ax^2+bx+c=0"
вы, по-вашему, к чему обращаетесь? AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Ответить
Сообщение Selection в Word и Excel - это разные вещи. Вот в этом куске Set objRange = Selection .Range Set objRange = Selection .OMaths.Add(objRange) Set objMath = objRange.OMaths(1) Selection .TypeText "ax^2+bx+c=0"
вы, по-вашему, к чему обращаетесь? Автор - AndreTM Дата добавления - 21.09.2014 в 10:24
Curiosity
Дата: Воскресенье, 21.09.2014, 10:39 |
Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
А разве with wordapp это не обращение к ворду? Тогда как правильнее будет? подскажите пожалуйста
А разве with wordapp это не обращение к ворду? Тогда как правильнее будет? подскажите пожалуйста Curiosity
Инженер-проектировщик
Ответить
Сообщение А разве with wordapp это не обращение к ворду? Тогда как правильнее будет? подскажите пожалуйста Автор - Curiosity Дата добавления - 21.09.2014 в 10:39
AndreTM
Дата: Воскресенье, 21.09.2014, 18:07 |
Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
501
±
Замечаний:
0% ±
2003 & 2010
[vba]Код
With WordApp .Documents.Add With .Selection .Font.Size = 12 ' вот это действительно обращение к WordApp.Selection.Font.Size ' ... Set objRange = Selection.Range ' а вот это - обращение к объекту основного приложения (код ведь исполняется в Excel)
[/vba] Так что если у вас должно быть Set objRange = WordApp.Selection.Range , то и обращаемся соответственно: [vba]Код
With WordApp .Documents.Add With .Selection ' ... Set objRange = .Range Set objRange = .OMaths.Add(objRange) ' ...
[/vba]
[vba]Код
With WordApp .Documents.Add With .Selection .Font.Size = 12 ' вот это действительно обращение к WordApp.Selection.Font.Size ' ... Set objRange = Selection.Range ' а вот это - обращение к объекту основного приложения (код ведь исполняется в Excel)
[/vba] Так что если у вас должно быть Set objRange = WordApp.Selection.Range , то и обращаемся соответственно: [vba]Код
With WordApp .Documents.Add With .Selection ' ... Set objRange = .Range Set objRange = .OMaths.Add(objRange) ' ...
[/vba] AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Ответить
Сообщение [vba]Код
With WordApp .Documents.Add With .Selection .Font.Size = 12 ' вот это действительно обращение к WordApp.Selection.Font.Size ' ... Set objRange = Selection.Range ' а вот это - обращение к объекту основного приложения (код ведь исполняется в Excel)
[/vba] Так что если у вас должно быть Set objRange = WordApp.Selection.Range , то и обращаемся соответственно: [vba]Код
With WordApp .Documents.Add With .Selection ' ... Set objRange = .Range Set objRange = .OMaths.Add(objRange) ' ...
[/vba] Автор - AndreTM Дата добавления - 21.09.2014 в 18:07
Curiosity
Дата: Понедельник, 22.09.2014, 01:32 |
Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Спасибо! Теперь понял Но у меня проблемы с типом данных [vba][/vba] excel пишет "user-defined type not defined" или здесь тоже нужно обратиться к ворду как то?
Спасибо! Теперь понял Но у меня проблемы с типом данных [vba][/vba] excel пишет "user-defined type not defined" или здесь тоже нужно обратиться к ворду как то? Curiosity
Инженер-проектировщик
Ответить
Сообщение Спасибо! Теперь понял Но у меня проблемы с типом данных [vba][/vba] excel пишет "user-defined type not defined" или здесь тоже нужно обратиться к ворду как то? Автор - Curiosity Дата добавления - 22.09.2014 в 01:32
AndreTM
Дата: Понедельник, 22.09.2014, 01:59 |
Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
501
±
Замечаний:
0% ±
2003 & 2010
А в Ворде этот класс у вас как определен? Ведь какую-то библиотеку подключали в референсах? - вот и к проекту Excel её подключите...
А в Ворде этот класс у вас как определен? Ведь какую-то библиотеку подключали в референсах? - вот и к проекту Excel её подключите... AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Ответить
Сообщение А в Ворде этот класс у вас как определен? Ведь какую-то библиотеку подключали в референсах? - вот и к проекту Excel её подключите... Автор - AndreTM Дата добавления - 22.09.2014 в 01:59
Windo
Дата: Понедельник, 22.06.2015, 11:03 |
Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация:
0
±
Замечаний:
20% ±
Excel 2010
Делал по Вашему примеру, в чем моя ошибка?
[vba]
Код
Sub Doc() ' создание Doc Dim objRange As Object Dim objMath As OMath Dim sPath As String Dim objWord As Object Set objWord = CreateObject("Word.Application") ' создание обьекта Word objWord.Documents.Add DocumentType:=wdNewBlankDocument objWord.Visible = True Range([A7], Range("G" & Rows.Count).End(xlUp)).Copy strForWho = ActiveSheet.Cells(3, 1).Value strForWhy = ActiveSheet.Cells(5, 2).Value With objWord With .Selection .Font.Size = 12 .ParagraphFormat.Alignment = 0 .Font.Bold = False .TypeText Text:="text" .TypeParagraph Set objRange = .Range Set objRange = .OMaths.Add(objRange) Set objRange = .OMaths.Functions.Add(Selection.Range, wdOMathFunctionFrac). _ Frac.Type = wdOMathFracBar End With End With 'Application.GetSaveAsFilename 'sPath = Application.GetSaveAsFilename objWord.Activate 'objWord.ActiveDocument.SaveAs2 (ActiveWorkbook.Path & "\Vopr.doc") 'objWord.ActiveDocument.SaveAs Filename:=myPath, FileFormat:=wdFormatXMLDocument Application.CutCopyMode = False End Sub
[/vba]
нужно чтобы работал такой код из под excel, цель - печать формул в ворд с подстановкой численных значений с листа excel:
[vba]
Код
ВКЛЮЧЕНИЕ РЕЖИМА ФОРМУЛ Selection.OMaths.Add Range:=Selection.Range 'СОЗДАЕМ ПРЯМЫЕ СКОБКИ With Selection.OMaths(1).Functions.Add(Selection.Range, _ wdOMathFunctionDelim, 1) .Delim.BegChar = 124 .Delim.SepChar = 0 .Delim.EndChar = 124 .Delim.Grow = True .Delim.Shape = wdOMathShapeCentered End With 'ДЕЛАЕМ 1 ШАГ НАЗАД Selection.MoveLeft Unit:=wdCharacter, Count:=1 'СОЗДАЕМ МАТРИЦУ 4Х4 Selection.OMaths(1).Functions.Add(Selection.Range, wdOMathFunctionMat, 16, _ 4).Mat.PlcHoldHidden = False Selection.MoveLeft Unit:=wdCharacter, Count:=17 Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="1" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="2" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="3" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="4" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="5" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="6" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="7" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="8" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="9" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="10" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="11" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="12" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="13" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="14" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="15" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="16" Selection.MoveRight Unit:=wdCharacter, Count:=2 'СТАВИМ ЗНАК РАВЕНСТВА Selection.TypeText Text:="=" Selection.MoveRight Unit:=wdCharacter, Count:=1 'СТАВИМ СТЕПЕННУЮ ФУНКЦИЮ Selection.OMaths(1).Functions.Add Range:=Selection.Range, Type:= _ wdOMathFunctionScrSup Selection.MoveLeft Unit:=wdCharacter, Count:=2 Selection.TypeText Text:="2" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="3" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeParagraph Selection.TypeParagraph Selection.TypeParagraph End Sub
[/vba]
[moder]Создайте свою тему в соответствии с правилами форума, приложите Ваш пример и покажите в коде, где у Вас возникает ошибка![/moder]
Делал по Вашему примеру, в чем моя ошибка?
[vba]
Код
Sub Doc() ' создание Doc Dim objRange As Object Dim objMath As OMath Dim sPath As String Dim objWord As Object Set objWord = CreateObject("Word.Application") ' создание обьекта Word objWord.Documents.Add DocumentType:=wdNewBlankDocument objWord.Visible = True Range([A7], Range("G" & Rows.Count).End(xlUp)).Copy strForWho = ActiveSheet.Cells(3, 1).Value strForWhy = ActiveSheet.Cells(5, 2).Value With objWord With .Selection .Font.Size = 12 .ParagraphFormat.Alignment = 0 .Font.Bold = False .TypeText Text:="text" .TypeParagraph Set objRange = .Range Set objRange = .OMaths.Add(objRange) Set objRange = .OMaths.Functions.Add(Selection.Range, wdOMathFunctionFrac). _ Frac.Type = wdOMathFracBar End With End With 'Application.GetSaveAsFilename 'sPath = Application.GetSaveAsFilename objWord.Activate 'objWord.ActiveDocument.SaveAs2 (ActiveWorkbook.Path & "\Vopr.doc") 'objWord.ActiveDocument.SaveAs Filename:=myPath, FileFormat:=wdFormatXMLDocument Application.CutCopyMode = False End Sub
[/vba]
нужно чтобы работал такой код из под excel, цель - печать формул в ворд с подстановкой численных значений с листа excel:
[vba]
Код
ВКЛЮЧЕНИЕ РЕЖИМА ФОРМУЛ Selection.OMaths.Add Range:=Selection.Range 'СОЗДАЕМ ПРЯМЫЕ СКОБКИ With Selection.OMaths(1).Functions.Add(Selection.Range, _ wdOMathFunctionDelim, 1) .Delim.BegChar = 124 .Delim.SepChar = 0 .Delim.EndChar = 124 .Delim.Grow = True .Delim.Shape = wdOMathShapeCentered End With 'ДЕЛАЕМ 1 ШАГ НАЗАД Selection.MoveLeft Unit:=wdCharacter, Count:=1 'СОЗДАЕМ МАТРИЦУ 4Х4 Selection.OMaths(1).Functions.Add(Selection.Range, wdOMathFunctionMat, 16, _ 4).Mat.PlcHoldHidden = False Selection.MoveLeft Unit:=wdCharacter, Count:=17 Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="1" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="2" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="3" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="4" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="5" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="6" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="7" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="8" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="9" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="10" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="11" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="12" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="13" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="14" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="15" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="16" Selection.MoveRight Unit:=wdCharacter, Count:=2 'СТАВИМ ЗНАК РАВЕНСТВА Selection.TypeText Text:="=" Selection.MoveRight Unit:=wdCharacter, Count:=1 'СТАВИМ СТЕПЕННУЮ ФУНКЦИЮ Selection.OMaths(1).Functions.Add Range:=Selection.Range, Type:= _ wdOMathFunctionScrSup Selection.MoveLeft Unit:=wdCharacter, Count:=2 Selection.TypeText Text:="2" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="3" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeParagraph Selection.TypeParagraph Selection.TypeParagraph End Sub
[/vba]
[moder]Создайте свою тему в соответствии с правилами форума, приложите Ваш пример и покажите в коде, где у Вас возникает ошибка![/moder] Windo
Сообщение отредактировал Manyasha - Понедельник, 22.06.2015, 18:20
Ответить
Сообщение Делал по Вашему примеру, в чем моя ошибка?
[vba]
Код
Sub Doc() ' создание Doc Dim objRange As Object Dim objMath As OMath Dim sPath As String Dim objWord As Object Set objWord = CreateObject("Word.Application") ' создание обьекта Word objWord.Documents.Add DocumentType:=wdNewBlankDocument objWord.Visible = True Range([A7], Range("G" & Rows.Count).End(xlUp)).Copy strForWho = ActiveSheet.Cells(3, 1).Value strForWhy = ActiveSheet.Cells(5, 2).Value With objWord With .Selection .Font.Size = 12 .ParagraphFormat.Alignment = 0 .Font.Bold = False .TypeText Text:="text" .TypeParagraph Set objRange = .Range Set objRange = .OMaths.Add(objRange) Set objRange = .OMaths.Functions.Add(Selection.Range, wdOMathFunctionFrac). _ Frac.Type = wdOMathFracBar End With End With 'Application.GetSaveAsFilename 'sPath = Application.GetSaveAsFilename objWord.Activate 'objWord.ActiveDocument.SaveAs2 (ActiveWorkbook.Path & "\Vopr.doc") 'objWord.ActiveDocument.SaveAs Filename:=myPath, FileFormat:=wdFormatXMLDocument Application.CutCopyMode = False End Sub
[/vba]
нужно чтобы работал такой код из под excel, цель - печать формул в ворд с подстановкой численных значений с листа excel:
[vba]
Код
ВКЛЮЧЕНИЕ РЕЖИМА ФОРМУЛ Selection.OMaths.Add Range:=Selection.Range 'СОЗДАЕМ ПРЯМЫЕ СКОБКИ With Selection.OMaths(1).Functions.Add(Selection.Range, _ wdOMathFunctionDelim, 1) .Delim.BegChar = 124 .Delim.SepChar = 0 .Delim.EndChar = 124 .Delim.Grow = True .Delim.Shape = wdOMathShapeCentered End With 'ДЕЛАЕМ 1 ШАГ НАЗАД Selection.MoveLeft Unit:=wdCharacter, Count:=1 'СОЗДАЕМ МАТРИЦУ 4Х4 Selection.OMaths(1).Functions.Add(Selection.Range, wdOMathFunctionMat, 16, _ 4).Mat.PlcHoldHidden = False Selection.MoveLeft Unit:=wdCharacter, Count:=17 Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="1" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="2" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="3" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="4" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="5" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="6" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="7" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="8" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="9" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="10" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="11" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="12" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="13" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="14" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="15" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="16" Selection.MoveRight Unit:=wdCharacter, Count:=2 'СТАВИМ ЗНАК РАВЕНСТВА Selection.TypeText Text:="=" Selection.MoveRight Unit:=wdCharacter, Count:=1 'СТАВИМ СТЕПЕННУЮ ФУНКЦИЮ Selection.OMaths(1).Functions.Add Range:=Selection.Range, Type:= _ wdOMathFunctionScrSup Selection.MoveLeft Unit:=wdCharacter, Count:=2 Selection.TypeText Text:="2" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="3" Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeParagraph Selection.TypeParagraph Selection.TypeParagraph End Sub
[/vba]
[moder]Создайте свою тему в соответствии с правилами форума, приложите Ваш пример и покажите в коде, где у Вас возникает ошибка![/moder] Автор - Windo Дата добавления - 22.06.2015 в 11:03
KSV
Дата: Вторник, 23.06.2015, 16:44 |
Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
[vba]Код
Private Sub CreateWordOMath() Dim i& With CreateObject("Word.Application") With .Documents.Add.Range .Font.Size = 12 .Font.Bold = False .Text = "Текст" ' Добавляем новый абзац и в нем поле математ. формул With .OMaths.Add(.Paragraphs.Add.Range.Next).OMaths(1) ' СОЗДАЕМ АРГУМЕНТ В СКОБКАХ With .Functions.Add(.Range, 5) ' wdOMathFunctionDelim ' МЕНЯЕМ КРУГЛЫЕ СКОБКИ НА ПРЯМЫЕ .Delim.BegChar = 124 .Delim.EndChar = 124 With .Args(1) ' СОЗДАЕМ МАТРИЦУ 4x4 With .Functions.Add(.Range, 12, 16, 4) ' wdOMathFunctionMat For i = 1 To 16 .Args(i).Range.Text = i Next End With End With End With ' СТАВИМ ЗНАК РАВЕНСТВА .Range.InsertAfter "= " ' СТАВИМ СТЕПЕННУЮ ФУНКЦИЮ With .Functions.Add(.Range.Characters.Last, 19) ' wdOMathFunctionScrSup .Args(1).Range.Text = 2 .Args(2).Range.Text = 3 End With End With End With .Visible = True .Activate End With End Sub
[/vba]
[vba]Код
Private Sub CreateWordOMath() Dim i& With CreateObject("Word.Application") With .Documents.Add.Range .Font.Size = 12 .Font.Bold = False .Text = "Текст" ' Добавляем новый абзац и в нем поле математ. формул With .OMaths.Add(.Paragraphs.Add.Range.Next).OMaths(1) ' СОЗДАЕМ АРГУМЕНТ В СКОБКАХ With .Functions.Add(.Range, 5) ' wdOMathFunctionDelim ' МЕНЯЕМ КРУГЛЫЕ СКОБКИ НА ПРЯМЫЕ .Delim.BegChar = 124 .Delim.EndChar = 124 With .Args(1) ' СОЗДАЕМ МАТРИЦУ 4x4 With .Functions.Add(.Range, 12, 16, 4) ' wdOMathFunctionMat For i = 1 To 16 .Args(i).Range.Text = i Next End With End With End With ' СТАВИМ ЗНАК РАВЕНСТВА .Range.InsertAfter "= " ' СТАВИМ СТЕПЕННУЮ ФУНКЦИЮ With .Functions.Add(.Range.Characters.Last, 19) ' wdOMathFunctionScrSup .Args(1).Range.Text = 2 .Args(2).Range.Text = 3 End With End With End With .Visible = True .Activate End With End Sub
[/vba] KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Сообщение отредактировал KSV - Вторник, 23.06.2015, 16:47
Ответить
Сообщение [vba]Код
Private Sub CreateWordOMath() Dim i& With CreateObject("Word.Application") With .Documents.Add.Range .Font.Size = 12 .Font.Bold = False .Text = "Текст" ' Добавляем новый абзац и в нем поле математ. формул With .OMaths.Add(.Paragraphs.Add.Range.Next).OMaths(1) ' СОЗДАЕМ АРГУМЕНТ В СКОБКАХ With .Functions.Add(.Range, 5) ' wdOMathFunctionDelim ' МЕНЯЕМ КРУГЛЫЕ СКОБКИ НА ПРЯМЫЕ .Delim.BegChar = 124 .Delim.EndChar = 124 With .Args(1) ' СОЗДАЕМ МАТРИЦУ 4x4 With .Functions.Add(.Range, 12, 16, 4) ' wdOMathFunctionMat For i = 1 To 16 .Args(i).Range.Text = i Next End With End With End With ' СТАВИМ ЗНАК РАВЕНСТВА .Range.InsertAfter "= " ' СТАВИМ СТЕПЕННУЮ ФУНКЦИЮ With .Functions.Add(.Range.Characters.Last, 19) ' wdOMathFunctionScrSup .Args(1).Range.Text = 2 .Args(2).Range.Text = 3 End With End With End With .Visible = True .Activate End With End Sub
[/vba] Автор - KSV Дата добавления - 23.06.2015 в 16:44