Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Visual Basic
Перезагрузить страницу Только формулы в word
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
werovulv werovulv вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2011
Exclamation Только формулы в word - 11.08.2015, 19:26

Доброго времени суток! Имеется макрос, должен оставлять только формулы в ворде, а при работе он полностью все стирает. Все перепробывал, никак не могу разобраться.
vb Код:
Sub NumberOfSheets()
   Dim oInlineShape As InlineShape
For Each oInlineShape In ActiveDocument.InlineShapes
 oInlineShape.Delete
Next
   
 Dim p As Paragraph, r As Range
For Each p In ActiveDocument.Paragraphs
  Set r = p.Range
  If Not r.Information(wdWithInTable) Then
    If r.InlineShapes.Count = 0 Then
      r.Delete
    End If
  End If
Next
 
    Do While ActiveDocument.Tables.Count <> 0
    ActiveDocument.Tables(1).Delete
Loop
   
End Sub
И еще имеется макрос, который удаляет только формулы, может из него что можно сделать.
vb Код:
Dim t As Object, y As OLEFormat
For Each t In ActiveDocument.InlineShapes
  GoSub chk
Next
For Each t In ActiveDocument.Shapes
  GoSub chk
Next
Exit Sub
 
chk:
  Set y = t.OLEFormat
  If Not y Is Nothing Then
    If y.ClassType Like "*Equation*" Then
      t.Delete
    End If
  End If
Return
Ответить с цитированием
  (#2 (permalink)) Старый
pashulka pashulka вне форума
Member
 
Сообщений: 1,872
Сказал(а) спасибо: 2
Поблагодарили 57 раз(а) в 53 сообщениях
Регистрация: 11.03.2005
По умолчанию 11.08.2015, 23:29

Выложите реальный документ, где необходимо оставить только формулы.

P.S. Разумеется, все конфиденциальные данные можно предварительно удалить/заменить.
Ответить с цитированием
  (#3 (permalink)) Старый
werovulv werovulv вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2011
По умолчанию 12.08.2015, 11:43

Цитата:
Сообщение от pashulka Посмотреть сообщение
Выложите реальный документ, где необходимо оставить только формулы.

P.S. Разумеется, все конфиденциальные данные можно предварительно удалить/заменить.
Вот файл
Вложения
Тип файла: zip Управление.zip (361.7 Кб, 4 просмотров)
Ответить с цитированием
  (#4 (permalink)) Старый
pashulka pashulka вне форума
Member
 
Сообщений: 1,872
Сказал(а) спасибо: 2
Поблагодарили 57 раз(а) в 53 сообщениях
Регистрация: 11.03.2005
По умолчанию 12.08.2015, 20:44

Не видя конечного документа (т.е. документа, где должны остаться только формулы) сложно что-то советовать. Однако Вы можете протестировать сей вариант, который, на мой взгляд, далёк от совершенства

VB Код:
Private Sub Test()
    Dim objInlineShape As Word.InlineShape
    Dim objOle         As Word.OLEFormat
    Dim objParagraf    As Word.Paragraph
    Dim objRange       As Word.Range
    Dim objTable       As Word.Table
   
    For Each objInlineShape In ActiveDocument.InlineShapes
        Set objOle = objInlineShape.OLEFormat
        If Not objOle Is Nothing Then
           If Not objOle.ClassType Like "Equation*" Then objInlineShape.Delete
        End If
    Next
   
    For Each objParagraf In ActiveDocument.Paragraphs
        Set objRange = objParagraf.Range
        If objRange.InlineShapes.Count = 0 Then objRange.Delete
    Next
   
    For Each objTable In ActiveDocument.Tables
        Set objRange = objTable.Range
        If objRange.InlineShapes.Count = 0 Then objTable.Delete
    Next
End Sub

P.S. При ответе, не нужно цитировать предыдущее сообщение.
Ответить с цитированием
Пользователь сказал cпасибо:
werovulv (12.08.2015)
  (#5 (permalink)) Старый
werovulv werovulv вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2011
По умолчанию 12.08.2015, 22:03

Просто должны из остаться формулы в документе, если нужно, то как пример что должно быть скину. Спасибо, но остаются по мимо формул картинки, текст и таблица в конце почему то
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
pashulka pashulka вне форума
Member
 
Сообщений: 1,872
Сказал(а) спасибо: 2
Поблагодарили 57 раз(а) в 53 сообщениях
Регистрация: 11.03.2005
По умолчанию 12.08.2015, 23:11

Возможно мы просто по-разному понимаем такой термин, как "формула" , ибо текст и таблица остаются, потому, что они как раз и содержат формулы.

P.S. Может вместо удаления всего, окромя формул - просто перенести все формулы в новый документ ?
Ответить с цитированием
  (#7 (permalink)) Старый
werovulv werovulv вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2011
По умолчанию 12.08.2015, 23:32

Ага с таблицей понял почему не чистит ее! А вот на счет формул должны оставаться те, которые набраны в Microsoft Equation. Да я бы рад, но начальство требует именно такого!))
Ответить с цитированием
  (#8 (permalink)) Старый
pashulka pashulka вне форума
Member
 
Сообщений: 1,872
Сказал(а) спасибо: 2
Поблагодарили 57 раз(а) в 53 сообщениях
Регистрация: 11.03.2005
По умолчанию 13.08.2015, 00:35

Вот тупо перенос в новый документ (у меня насчиталось всего 18 формул)

VB Код:
Private Sub Test2()
    Dim objInlineShape As Word.InlineShape, iCount&
    Dim objOLE As Word.OLEFormat, objDoc As Word.Document
   
    Set objDoc = Documents.Add ': objDoc.Select
   
    For Each objInlineShape In ThisDocument.InlineShapes
        Set objOLE = objInlineShape.OLEFormat
        If Not objOLE Is Nothing Then
           If objOLE.ClassType Like "Equation*" Then
              iCount = iCount + 1
              objInlineShape.Range.Copy
              Selection.Paste: Selection.TypeParagraph
           End If
        End If
    Next
   
    MsgBox iCount
End Sub

P.S. Макрос должен находиться в обрабатываемом документе.
Ответить с цитированием
Пользователь сказал cпасибо:
werovulv (13.08.2015)
  (#9 (permalink)) Старый
werovulv werovulv вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2011
По умолчанию 13.08.2015, 00:58

Блин, а у меня открывается документ и он чистый и пишет, что 0 формул
Ответить с цитированием
  (#10 (permalink)) Старый
pashulka pashulka вне форума
Member
 
Сообщений: 1,872
Сказал(а) спасибо: 2
Поблагодарили 57 раз(а) в 53 сообщениях
Регистрация: 11.03.2005
По умолчанию 13.08.2015, 20:32

Это из-за того, что был проигнорирован постскриптум. Впрочем, если Вы, по каким-то причинам, не хотите/можете разместить макрос в нужном документе, то замените ThisDocument на Documents("Управление.doc")

P.S. В моём первом макросе следует изменить удаление InlineShape - например, на :

VB Код:
For Each objInlineShape In ActiveDocument.InlineShapes
    Set objOle = objInlineShape.OLEFormat
    If Not objOle Is Nothing Then
       If Not objOle.ClassType Like "Equation*" Then objInlineShape.Delete
    Else
       objInlineShape.Delete
    End If
Next
Ответить с цитированием
Пользователь сказал cпасибо:
werovulv (13.08.2015)
  (#11 (permalink)) Старый
werovulv werovulv вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2011
По умолчанию 13.08.2015, 20:41

В том то и дело что я тот макрос в документе размещал и оттуда запускал. Спасибо Вам большое! Вот последнее прекрасно работает, Вы мне очень помогли!
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача про логические формулы Student_22 Prolog 1 18.09.2011 16:15
Расчет формулы Иван69rus Prolog 1 10.04.2011 20:22
Формулы в OpenOffice СветланаК Любые вопросы от новичков 0 04.11.2010 21:44
Помогите плиз!Формулы.. Meri777 Prolog 1 22.12.2009 09:34
Вычисление значения формулы Nancy Prolog 6 21.10.2007 22:02
Именованные формулы dorogo Visual Basic 4 15.02.2007 17:44
Как получить из формулы список? rolechka Prolog 7 24.11.2005 14:44
Альфа-блендинг: формулы c++ Программирование графики 0 09.11.2005 01:06
C++ Builder feet MS Word работа с документами Word samogon C++ Builder 0 20.10.2005 16:04
Математические формулы в C++ Builder MaMaV C++ Builder 0 18.10.2005 01:18
Математические формулы..... Master U PHP 4 07.11.2004 11:38
Как напечатать Memo только что бы печатался не только текст но его размер, ширифт Trus Delphi 2 01.06.2004 00:40



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов