2011-01-01 3 views
1

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

+0

Что заставляет вас думать, что это возможно? –

+1

Хорошо, * почему * вы хотите это сделать? Измените свой вопрос, чтобы объяснить свою фактическую цель, и мы сможем вам помочь. –

+0

@Jonathan, я разрабатываю Word addin, который добавляет боковые панели в окно Word, и мне нужно перезагрузить разные документы в * том же * окне Word, и когда окно Word закрыто, состояние * боковых панелей будет потеряно. –

ответ

1

Это работает для меня, чтобы закрыть документ и открыть документ в том же окне (я бегу макрос из Normal.dotm):

Sub CloseOpenSameWindow() 
    Dim d As Document: Set d = ActiveDocument 
    Application.ScreenUpdating = False 
    d.Close 
    Application.Documents.Add Template:="C:\Users\Me\Desktop\Mydocument.docx" 
    Application.ScreenUpdating = True 
End Sub 
+0

Hi Otaku, Word 2007 все еще много мигает с помощью этого метода, с Word 2003, это лучше ... Мигающим я имею в виду, что вы можете видеть, что окно закрывается, а другое появляется. Спасибо, что сообщили мне свойство ScreenUpdating, хотя ... –

+0

@Edwin: я на Word 2010, и у меня нет никакого мигания - т.е. окно ** не закрывается ** - только документ закрывается, а новый один открывается в нем в том же окне. –

+0

Спасибо за информацию, я не продолжал тестировать с Word 2010, потому что в Word 2007 он мерцает много. И да, это не закрывает окно, похоже, что мое первоначальное предположение неверно ... Спасибо, что сообщили мне об этом. –

0

Вы попробовали Файл-> Закрыть? То, что должно закрыть файл и оставить окно открытым, что позволяет открыть другой файл в том же окне, по крайней мере, как я помню, как он работает.

+0

Hi Diabl0658, это правда, когда есть только один документ Word open, иначе закрытие документа приведет к закрытию этого окна Word. –

0

Ctrl + W (чтобы закрыть текущее окно), а затем Ctrl + п (открыть новый)

Два Ключевые Отводы, вот и все :)

+0

Привет, Akhil, я разрабатываю слово addin, и мне нужно, чтобы исходное окно осталось, чтобы сделать надстройку так, как ожидалось. –

0

Разве не .close ?

.exit завершает работу всего приложения?

0

Временно использовать

Application.ShowWindowsInTaskbar = False 

Что фактически делает Слово в приложение в стиле MDI.

+0

Но тогда мне придется изменить этот вариант Word на ПК пользователя ... Более того, Word 2000 не имеет этого варианта ... есть ли у нас альтернативные варианты? –

+0

Под «временным использованием» я имел в виду: установите переменную в текущее значение, измените параметр на «ложь», замените файл, а затем измените значение на исходное значение. AFAIK, Word 2000 никогда не имел опции MDI, поэтому я думаю, что вы будете бороться с этой версией. Но, честно говоря, я думаю, что создание вашего дополнения для каждой версии Word будет все равно чревато. – Antagony

+0

спасибо за объяснение, это вызовет проблему, - мои панели задач использования надстройки и временные изменения этого параметра вызовут проблемы, потому что когда этот параметр выключен, у меня есть несколько экземпляров моих панелей задач; и когда этот параметр включен, разрешен только один экземпляр панели задач. Есть предположения? Спасибо! –

0

Вы должны рассмотреть следующие вопросы для реализации Вашего добавить в:

  • надстройка не должна зависит от режима окна (SDI или MDI)
  • надстройка состояние должно быть сохранено в Retai n пользовательских настроек. Сохранение состояния надстройки может быть достигнуто с помощью XML, реестра, INI или любого другого формата.
  • Каждый раз, когда документ открыт, надстройка должна измениться, чтобы отразить состояние документа.
  • Надстройка должна поддерживать несколько экземпляров документа Word.

См:

http://www.visualstudiodev.com/visual-studio-tools-for-office/word-addin-multiple-instances-of-word-running-48076.shtml

http://msdn.microsoft.com/en-us/library/aa189710(v=office.10).aspx

0

попробовать этот

в Normal.ThisDocument

Sub main() 
    Me.Close 
    Documents.Add 
End Sub 

закроется ток документа и открыть новый документ. вам необходимо обработать сохранение для текущего документа

Смежные вопросы