Ципихович Эндрю
Помогающий
Offline
|
|
« : 19-12-2010 09:37 » |
|
Dim myWord As Word.Application Set myWord = New Word.Application 'объявляем объект с именем ... Call Shell("explorer D:\Рабочая папка\Пользователь\", vbNormalFocus) 'открыть папку с именем ... Set myWord = Nothing Вот мы папку открыли и если в ней напимер 50 файлов то сделать Вид > Таблица, как??По пунктам Работали в Вордовском документе "1.док" При помощи моего скрипта на панели задач будет и тот же файл "1.док" и папка Так вот когда откроется папка её вседа мне показывает как Эскизы страниц А если файлов напимер 50, то лучше бы показывало Вид > Таблица Это уже не из Ворда, а из области - открыли папку, правой кнопкой миши нажали мишь, там есть Вид, это ОС в Вид есть: Эскизы страниц Плитка Значки Список Таблица
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #1 : 19-12-2010 11:11 » |
|
По-моему это в раздел Windows, а не Visual Basic.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #2 : 19-12-2010 15:18 » |
|
но это надо сделать на языке ВБА
|
|
|
Записан
|
|
|
|
HandKot
Молодой специалист
Online
|
|
« Ответ #3 : 20-12-2010 05:40 » |
|
так настройте в самой винде вид папки "таблица" и при открытияя она будет открываться как надо
|
|
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #4 : 20-12-2010 06:34 » |
|
там же условие и если в ней напимер 50 файлов то сделать Вид > Таблица, а если менее тогда например Вид > Плитка И заодно, как сделать при помощи ВБА Упорядочить значки > Изменён?? Там ещё могут быть в Упорядочить значки: Имя Размер Тип Изменён
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #5 : 20-12-2010 07:52 » |
|
Ципихович Эндрю, а откуда вообще возникла задача из VBA для Office управлять Explorer, который к Office отношения не имеет? Кто это придумал?
Я не знаю, есть ли COM-объект программной работы с Explorer.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #6 : 20-12-2010 08:45 » |
|
Explorer это же не IE, а просто Explorer, то есть показать, отобразить В представленном мною скрипте Поясню по пунктам Работали в Вордовском документе "1.док" При помощи моего скрипта на панели задач будет и тот же файл "1.док" и папка D:\Рабочая папка\Пользователь А если делать по другому то на панели задач будет что-то одно
|
|
|
Записан
|
|
|
|
baldr
|
|
« Ответ #7 : 20-12-2010 10:11 » |
|
Explorer это же не IE, а просто Explorer, то есть показать, отобразить В представленном мною скрипте Поясню по пунктам Работали в Вордовском документе "1.док" При помощи моего скрипта на панели задач будет и тот же файл "1.док" и папка D:\Рабочая папка\Пользователь А если делать по другому то на панели задач будет что-то одно Ципихович Эндрю, каждое твое сообщение я пытаюсь прочитать как минимум 4 раза чтоб понять смысл того, что ты хотел сказать. Мало того что ты допускаешь опечатки, которые еще больше затрудняют понимание, так ты еще и совершенно не умеешь форматировать текст. Переносы и обрыв фразы в совершенно неожиданных местах, отсутствие пунктуации.... Научись сначала формулировать мысль, после этого перенеси мысль в предметную область - объясни ЧТО ты хочешь сделать.. После написания сообщения ПРОЧИТАЙ его сам (первые несколько раз пусть лучше это делает кто-нибудь другой, чтоб отфильтровать неадекват)! Я извиняюсь за резкий ответ, но уже не могу больше читать бред этого юзера..
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
Sla
|
|
« Ответ #8 : 20-12-2010 10:16 » |
|
ну, пацаны, ну тупЫЫЫе... (с)
чел хочет открыть окно выбора файла не в режиме Эскиза, а в режиме Таблица.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
baldr
|
|
« Ответ #9 : 20-12-2010 10:20 » |
|
Sla, это из области Миши.. Это уже не из Ворда, а из области - открыли папку, правой кнопкой миши нажали мишь, там есть Вид, это ОС
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #10 : 20-12-2010 10:42 » |
|
после представлнного мною в самом вопросе Вашему взору скрипта откроется папка с содержимыми в ней файлами и папками Она может открыться как: Эскизы страниц Плитка Значки Список Таблица Файлы или папки могут в этой папке быть отсортированы по: Имя Размер Тип Изменён Так мне надо прогой вносить изменения по своему усмотрению как показывать файлы и папки и как их сортировать Помоему понятно, ОК?? Добавлено через 6 минут и 24 секунды:Обращаюсь к baldr, Начальник отдела В другом месте с первого раза поняли, пытаюсь следовать их рекомендациям, теперь понятно, подскажите??? http://wordexpert.ru/forum/viewtopic.php?id=604
|
|
« Последнее редактирование: 20-12-2010 10:48 от Ципихович Эндрю »
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #11 : 20-12-2010 10:55 » |
|
чел хочет открыть окно выбора файла не в режиме Эскиза, а в режиме Таблица. Ах вон оно что... Всё равно не знаю
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #12 : 20-12-2010 14:36 » |
|
Dim myWord As Word.Application Set myWord = New Word.Application 'объявляем объект с именем ... Call Shell("explorer D:\Рабочая папка\Пользователь\", vbNormalFocus) 'открыть папку с именем ... Set myWord = Nothing Dim winShell As Object Dim w As Object Set winShell = CreateObject("Shell.Application").Windows For Each w In winShell о = w.LocationURL If w.LocationURL Like "file:///D:/Рабочая*" Then CallByName w.Document, "CurrentViewMode", VbLet, 3: Exit For Next осталось два вопроса 1. как чтобы отказаться от Like с '"file:///D:/Рабочая%20папка/Пользователь" переделать в "D:\Рабочая папка\Пользователь\" 2. сделать Вид > Таблица сделали!!!!!! Как сделать Упорядочить значки > Изменён?? Там ещё могут быть в Упорядочить значки: Имя Размер Тип Изменён Добавлено через 1 минуту и 45 секунд:'FVM_ICON = 1 'FVM_SMALLICON = 2 'FVM_LIST = 3 'FVM_DETAILS = 4 'FVM_THUMBNAIL = 5 'FVM_TILE = 6 'FVM_THUMBSTRIP = 7 'FVM_CONTENT = 8
|
|
« Последнее редактирование: 20-12-2010 14:38 от Ципихович Эндрю »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #13 : 20-12-2010 14:39 » |
|
Ё!!! так продолжай дальше исследовать объект "Shell.Application".Windows
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #14 : 20-12-2010 15:39 » |
|
копал, что то не вкурю, подскажите? 1. вопрос с предыдущего моего поста решил так, на мой взгляд не красиво, но всё же И = Replace$("D:\Рабочая папка\Пользователь\", "\", "/") И1 = Replace$(И, " ", "%20") Папка = "file:///" & Left$(И1, (Len(И1) - 1)) Есть лучше вариант?? остался один вопрос сделать Вид > Таблица сделали!! Как сделать Упорядочить значки > Изменён?? Там ещё могут быть в Упорядочить значки: Имя Размер Тип Изменён Добавлено через 1 день, 22 часа, 38 минут и 48 секунд:вот это поворот, я то думал, что в строке Then CallByName w.Document, "CurrentViewMode", VbLet, 8: Exit For Например, 8 это будет показ FVM_CONTENT, но проверил, от 1 до 8 всё время показывает списком? ?? 'FVM_ICON = 1 'FVM_SMALLICON = 2 'FVM_LIST = 3 'FVM_DETAILS = 4 'FVM_THUMBNAIL = 5 'FVM_TILE = 6 'FVM_THUMBSTRIP = 7 'FVM_CONTENT = 8 Что не так? Добавлено через 1 день, 18 часов, 54 минуты и 40 секунд:Ещё проблемы!!!, вот скрипт Dim myWord As Word.Application Set myWord = New Word.Application 'объявляем объект с именем ... Папка = "D:\Рабочая папка\Пользователь\" 'открываем папку с именем ... Call Shell("explorer " & Папка, vbNormalFocus) 'открыть папку с именем ... Set myWord = Nothing
И = Replace$("D:\Рабочая папка\Пользователь\", "\", "/") И1 = Replace$(И, " ", "%20") Папка = "file:///" & Left$(И1, (Len(И1) - 1))
Dim winShell As Object Dim w As Object Set winShell = CreateObject("Shell.Application").Windows For Each w In winShell Обрабатываемое_окно = w.LocationURL If w.LocationURL = Папка Then MsgBox "Зашло в условие": CallByName w.Document, "CurrentViewMode", VbLet, 2: Exit For Next Проверял, когда VbLet, 1 и VbLet, 2 на строке If w.LocationURL = Папка Then MsgBox "Зашло в условие": CallByName w.Document, "CurrentViewMode", VbLet, 1: Exit For ошибка Рун Тайм Эррор -2147417848(80010108) Automation error Вызванный объект был отключён от клиентов И самое главное эта ошибка бывает не всегда, иногда её нет и иногда не заходит в последнее условие, так как не показывает MsgBox "Зашло в условие", специально его поставил!!!!!
|
|
« Последнее редактирование: 22-12-2010 14:17 от Ципихович Эндрю »
|
Записан
|
|
|
|
baldr
|
|
« Ответ #15 : 22-12-2010 14:24 » |
|
Ципихович Эндрю, на мой взгляд, тут два возможных варианта: * из-за того, что при переборе всех открытых окон ты создаешь новые окна с помощью MsgBox() - функция перебора каким-то образом инвалидирует коллекцию, поскольку она изменилась. * боее вероятный вариант - ты "слишком долго" держишь открытым этот MsgBox - по таймауту объект успевает уничтожиться.
В любом случае рекомендую убрать MsgBox
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #16 : 22-12-2010 15:09 » |
|
Согласен, MsgBox убрал, работает без ошибок, но где Эскизы страниц, Плитка, тут одни повторения 'FVM_ICON = 1 значки 'FVM_SMALLICON = 2 значки 'FVM_LIST = 3 список 'FVM_DETAILS = 4 таблица 'FVM_THUMBNAIL = 5 таблица 'FVM_TILE = 6 таблица 'FVM_THUMBSTRIP = 7 таблица 'FVM_CONTENT = 8 таблица Остался один вопрос сделать Вид > Таблица сделали!! Как сделать Упорядочить значки > Изменён?? Там ещё могут быть в Упорядочить значки: Имя Размер Тип Изменён Добавлено через 25 минут и 29 секунд:Я понимаю, что Вам это не интересно проверять, но я 4 раза проверил лично, каждый раз менял в строке CallByName w.Document, "CurrentViewMode", VbLet, 2 последнюю цифру и записывал на лист, какая константа как открывает папку, один раз записал так: 'FVM_ICON = 1 значки 'FVM_SMALLICON = 2 значки 'FVM_LIST = 3 список 'FVM_DETAILS = 4 таблица 'FVM_THUMBNAIL = 5 таблица 'FVM_TILE = 6 таблица 'FVM_THUMBSTRIP = 7 таблица 'FVM_CONTENT = 8 таблица Без задней мысли второй раз проверил, всё уже по другому в том числе и появились Эскизы страниц, Плитка, Просмотр диафильмов А потом рискнул написать 9 и 10, ошибок не было, каждый раз открывало в каком то из режимов, где можно точно узнать об этом всём?? Можно ли и как папку сначала открывать невидимой, узнать открыв папку в каком она режиме просмотра открыта, изменить её до нужного и затем сделать видимой?
|
|
« Последнее редактирование: 22-12-2010 15:35 от Ципихович Эндрю »
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #17 : 22-12-2010 18:39 » |
|
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #18 : 23-12-2010 08:28 » |
|
Спасибо Пишут всё гладко, начнёш пробовать, нифига не так!!!! ' http://msdn.microsoft.com/en-us/library/bb762510(VS.85).aspx'FOLDERVIEWMODE Enumeration 'Просмотр папок MODE Перечисление 'FVM_AUTO = -1, Открыть должна определить лучший вариант 'FVM_FIRST = 1, Минимальная постоянная величина в FOLDERVIEWMODE, для целей проверки 'FVM_ICON = 1, Открыть должны проявить средних икон 'FVM_SMALLICON = 2, Открыть должны отображать маленькие иконки 'FVM_LIST = 3, Имена объектов отображаются в виде списка 'FVM_DETAILS = 4, Имена объектов и других отдельных информацию, такую как размер и дата 'последнего обновления, показаны 'FVM_THUMBNAI = 5, Вид должен пиктограммой икон 'FVM_TILE = 6, Должны отображать большие иконки 'FVM_THUMBSTRIP = 7, Должны отображать иконки в виде киноленты формате 'FVM_CONTENT = 8, Windows 7 и более поздних ОС, должны отображать содержимое режиме 'FVM_LAST = 8, Максимальная постоянная величина в FOLDERVIEWMODE, для целей проверки Вот эта константа 'FVM_AUTO = -1, Открыть должна определить лучший вариант Да чёрта с два наши мнения совпадут!!!!! Dim Папка As String Папка = "D:\Рабочая папка\Пользователь\" 'открыть папку с именем ..., её фокус Normal, окрыть невидимой Call Shell("explorer " & Папка, vbHide) 'А как будет скрипт далее, чтобы создать объект, эту папку 'и её потом проверить сделав её Визибле = Труе, сделать ей NormalFocus, 'И как условием узнать, в каком же виде она открыта??? 'Спасибо
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #19 : 23-12-2010 11:26 » |
|
Да чёрта с два наши мнения совпадут!!!!! Ну и не пользуйся AUTO.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #20 : 23-12-2010 11:47 » |
|
Я Вам о чём говорю. Пишут всё гладко: http://msdn.microsoft.com/en-us/library/bb762510(VS.85).aspxНачнёш пробовать, нифига не так!!!! все посты до этого были с машины с ХР и Ворд2003, пошёл к знакомому, у него всё фирмовое, Виста, Ворд2007, что имею -1 нет ошибки, с 1 по 9 всё время Вид Плитка Добавлено через 5 часов, 24 минуты и 2 секунды:На сегодняшинй день 611 просмотров, с ума сойти, что смотрят, что интересного??? Ну тогда скажите, у кого нибудь, также происходит описанное мною? Илии у всех всё в шоколаде Я говорю, об этом: Я понимаю, что Вам это не интересно проверять, но я 4 раза проверил лично, каждый раз менял в строке CallByName w.Document, "CurrentViewMode", VbLet, 2 последнюю цифру и записывал на лист, какая константа как открывает папку, один раз записал так: 'FVM_ICON = 1 значки 'FVM_SMALLICON = 2 значки 'FVM_LIST = 3 список 'FVM_DETAILS = 4 таблица 'FVM_THUMBNAIL = 5 таблица 'FVM_TILE = 6 таблица 'FVM_THUMBSTRIP = 7 таблица 'FVM_CONTENT = 8 таблица Без задней мысли второй раз проверил, всё уже по другому в том числе и появились Эскизы страниц, Плитка, Просмотр диафильмов
|
|
« Последнее редактирование: 23-12-2010 17:11 от Ципихович Эндрю »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #21 : 23-12-2010 18:40 » |
|
Ципихович Эндрю, ничего интересного - все понятно. Есть заветная кнопка F1 есть MSDN Решать за кого-то ординарную задачу, при этом не пониая - ЗАЧЕМ, нет никакого желания. Проще юзера обучить Потому что юзер сейчас продвинутый. А ориентироваться на бабушек-бухгалтеров - себе дороже. imho
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #22 : 24-12-2010 00:42 » |
|
У Егорки на всё отговорки, 500 рублей, ОК??
Добавлено через 3 минуты и 1 секунду: Кгда писал это: На сегодняшинй день 611 просмотров, с ума сойти, что смотрят, что интересного??? Ну тогда скажите, у кого нибудь, также происходит описанное мною??
Было 611 просмотров, уже 671, то есть плюс 60, и никто ответить не может, завораживает топик что-ли???
|
|
« Последнее редактирование: 24-12-2010 00:45 от Ципихович Эндрю »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #23 : 24-12-2010 04:31 » |
|
Ципихович Эндрю, есть такая кнопочка вверху каждой страницы - https://forum.shelek.ru/index.php?action=unread (Показать новые сообщения с Вашего последнего визита. ) А модераторы смотрят всё, что появляется на форуме
|
|
|
Записан
|
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #24 : 24-12-2010 05:55 » |
|
Не ужели я Вас спрашивал: Как Посмотреть новые сообщения с Вашего последнего визита Вроде нет!!!!! Я говорю, о том, кто ещё смотрел 60 человек могут оветить на вопрос .... № 24 А Вы мне отвечаете, не расстраивайся это я модератор смотрел 60 раз, так??? Если да, то респект!!!!!!!
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #25 : 24-12-2010 06:19 » |
|
Ципихович Эндрю, ты спрашивал, откуда столько просмотров. Я тебе и рассказал, откуда. И я тут не один модератор, тут нас много )
И я отлично понимаю, что работа у тебя сложная, начальство давит, всё такое. Но тут тоже люди, у них тоже работа и нехватка времени. Не надо их подгонять, да ещё так эмоционально!
|
|
« Последнее редактирование: 24-12-2010 06:21 от Алексей1153++ »
|
Записан
|
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #26 : 24-12-2010 07:08 » |
|
РОДИЛ, осталось два вопроса, они в тексте скрипта Проверял, работает как часы И ещё вопрос как теперрь ещё по усмотрению программировать опцию Упорядочить значки при просмотре папки, имеется ввиду например по Размеру? ? Даже не знаю с чего начинать? Подскажите, пожалуйста Set objShell = CreateObject("Shell.Application") 'если на кнопку вешаем этот код то на строке Path = "D:\Рабочая папка" получаем 'Cant assign to read-only property 'Не могу назначить свойство только для чтения Почему ??????????????????? Path = "D:\Рабочая папка" 'наклонную в конце не ставить!!!!!! objShell.ShellExecute Path, , , , 0 For Each w In objShell.Windows 'Тип_документа = TypeName(w.Document) If InStr(TypeName(w.Document), "ShellFolderView") > 0 Then 'Обрабатываемое_окно = w.Document.Folder.self.Path If w.Document.Folder.self.Path = Path Then w.Document.CurrentViewMode = 8 w.Visible = True w.vbNormalFocus 'ошибка 438 Почему, как нужно ???????????? Exit For End If End If Next Set objShell = Nothing
'в строке w.Document.CurrentViewMode = 1, последняя цифра означает: 'Значки 1 'Значки 2 'Список 3 'Таблица 4 'Эскизы страниц 5 'Плитка 6 'Просмотр диафильмов 7 'Значки 8
|
|
|
Записан
|
|
|
|
baldr
|
|
« Ответ #27 : 24-12-2010 07:17 » |
|
Потому что ты нигде этого не делаешь. Какому объекту ты хочешь поставить флаг "только для чтения"?
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
Ципихович Эндрю
Помогающий
Offline
|
|
« Ответ #28 : 24-12-2010 07:27 » |
|
>Какому объекту ты хочешь поставить флаг "только для чтения"? да ничего я не хочу просто в макросе то работает!!!! без ошибки, на кнопку вешаешь не работает Скажите как исправить? Добавлено через 29 минут и 5 секунд:Это понял Не должно быть Path - это только переменная же Осталось выяснить как открывать по усмотреню папку Global Const SW_SHOWNORMAL = 1 'сделать окно в режиме нормальный Global Const SW_SHOWMINIMIZED = 2 'свернуть окно Global Const SW_MAXIMIZE = 3 'сделать окно во весь экран Как это сделать??
|
|
« Последнее редактирование: 24-12-2010 07:57 от Ципихович Эндрю »
|
Записан
|
|
|
|
baldr
|
|
« Ответ #29 : 24-12-2010 08:35 » |
|
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
|