0 / 0 / 0 Регистрация: 11.08.2016 Сообщений: 55 |
|
1 |
|
11.08.2016, 22:07. Показов 14818. Ответов 16
Всем привет!Окажите содействие плиз: имеется папка с файлами .тхт необходим макрос который открывает все файлы из этой папки в Ворде(если возможно была признательна если можно было реализовать вывод диалогового окна выбора папки в котором сразу открывалась папка из которой нужно открыть файлы), затем нужно изменить на альбомную ориентацию , сделать 8 шрифт распечатать файл и сохранить в формате .doc .docx или .RTF тут не важно главное чтоб читался вордом и форматирование не слетало.Пробовала рекордером но получилось только изменение форматирования записать и печать. При сохранении он сохраняет одним и тем же именем т.е. в макрос записывается имя первого сохраняемого файла и все последующие пытается сохранить под тем же именем.такое реально реализовать ? Хелп ми))), около ста отчетов приходится лопатить вручную((((
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||||||
12.08.2016, 10:18 |
2 |
|||||||
Попробуйте так (только тестировать, разумеется, нужно на нескольких файлах)
~ Тоже самое, но без сообщений
0 |
roneta90 0 / 0 / 0 Регистрация: 11.08.2016 Сообщений: 55 |
||||
14.08.2016, 16:44 [ТС] |
3 |
|||
Добавлено через 31 минуту
Миниатюры
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||
14.08.2016, 16:55 |
4 |
|||
и правильно пишет, что не находит ибо должен быть слэш, но форум его автоматически убирает. приходится вводить два слэша, но стоит забыть об этом правиле и …
0 |
0 / 0 / 0 Регистрация: 11.08.2016 Сообщений: 55 |
|
16.08.2016, 21:17 [ТС] |
5 |
Не получается(( . Тоже самое. Может тогда оставим только чтобы менялся шрифт ориентация страницы и сохранение с именем исходного файла Миниатюры
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
16.08.2016, 21:47 |
6 |
Смотрите пример, где для чистоты эксперимента, необходимо выбрать папку «Test_for_Roneta90»
0 |
0 / 0 / 0 Регистрация: 11.08.2016 Сообщений: 55 |
|
28.08.2016, 17:20 [ТС] |
7 |
тоже самое)))Ладно , впринципе открою файлы с помощью cntrl+0 . тогда макрос прописать чтобы менял ориентацию шрифт и сохранял с текущим именем файла и в формате док или докх или ртф вообщем чтоб форматиование сохранялось
0 |
1 / 1 / 0 Регистрация: 12.06.2015 Сообщений: 93 |
|
07.09.2016, 21:10 |
8 |
а этот код подойдет для екселя, а не для ворда?
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
07.09.2016, 21:41 |
9 |
Выбор папки и перебор .txt файлов можно использовать и в Excel
0 |
1 / 1 / 0 Регистрация: 12.06.2015 Сообщений: 93 |
|
07.09.2016, 21:45 |
10 |
проблема в вышеперложенных вариантах в том, что открывается путь, но! нет возможности выбрать в ручном режиме подходящий файл по даному пути
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
07.09.2016, 21:50 |
11 |
Проблема в людях, которые пытаются использовать диалог выбора папки, для указания файла, хотя для последнего есть свои варианты.
0 |
1 / 1 / 0 Регистрация: 12.06.2015 Сообщений: 93 |
|
07.09.2016, 21:57 |
12 |
какие варианты есть?
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||||||
07.09.2016, 22:07 |
13 |
|||||||
Причём в справке есть готовый пример — для выбора .txt файла или
0 |
1 / 1 / 0 Регистрация: 12.06.2015 Сообщений: 93 |
|
07.09.2016, 22:13 |
14 |
спасибо, а можно чтобы автоматически при этом открывалась определенная папка?
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||
07.09.2016, 22:30 |
15 |
|||
Для первого варианта ChDrive + ChDir, но если не прокатит, то во втором варианте есть свойство InitialFileName
0 |
Heroes 1 / 1 / 0 Регистрация: 12.06.2015 Сообщений: 93 |
||||
07.09.2016, 22:47 |
16 |
|||
у меня получилось так:
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||
07.09.2016, 23:09 |
17 |
|||
Это прокатит только если в момент выполнения макроса текущим будет диск «C» и Вы не откажетесь от выбора файла. Т.е. более универсальным является следующий вариант (хотя и здесь, не помешало бы, проверить указанную папку на наличие)
0 |
Here is some more cool knowledge to go with this:
I had a situation where I needed to be able to find folders based on a bit of criteria in the record and then open the folder(s) that were found. While doing work on finding a solution I created a small database that asks for a search starting folder gives a place for 4 pieces of criteria and then allows the user to do criteria matching that opens the 4 (or more) possible folders that match the entered criteria.
Here is the whole code on the form:
Option Compare Database
Option Explicit
Private Sub cmdChooseFolder_Click()
Dim inputFileDialog As FileDialog
Dim folderChosenPath As Variant
If MsgBox("Clear List?", vbYesNo, "Clear List") = vbYes Then DoCmd.RunSQL "DELETE * FROM tblFileList"
Me.sfrmFolderList.Requery
Set inputFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
With inputFileDialog
.Title = "Select Folder to Start with"
.AllowMultiSelect = False
If .Show = False Then Exit Sub
folderChosenPath = .SelectedItems(1)
End With
Me.txtStartPath = folderChosenPath
Call subListFolders(Me.txtStartPath, 1)
End Sub
Private Sub cmdFindFolderPiece_Click()
Dim strCriteria As String
Dim varCriteria As Variant
Dim varIndex As Variant
Dim intIndex As Integer
varCriteria = Array(Nz(Me.txtSerial, "Null"), Nz(Me.txtCustomerOrder, "Null"), Nz(Me.txtAXProject, "Null"), Nz(Me.txtWorkOrder, "Null"))
intIndex = 0
For Each varIndex In varCriteria
strCriteria = varCriteria(intIndex)
If strCriteria <> "Null" Then
Call fnFindFoldersWithCriteria(TrailingSlash(Me.txtStartPath), strCriteria, 1)
End If
intIndex = intIndex + 1
Next varIndex
Set varIndex = Nothing
Set varCriteria = Nothing
strCriteria = ""
End Sub
Private Function fnFindFoldersWithCriteria(ByVal strStartPath As String, ByVal strCriteria As String, intCounter As Integer)
Dim fso As New FileSystemObject
Dim fldrStartFolder As Folder
Dim subfldrInStart As Folder
Dim subfldrInSubFolder As Folder
Dim subfldrInSubSubFolder As String
Dim strActionLog As String
Set fldrStartFolder = fso.GetFolder(strStartPath)
' Debug.Print "Criteria: " & Replace(strCriteria, " ", "", 1, , vbTextCompare) & " and Folder Name is " & Replace(fldrStartFolder.Name, " ", "", 1, , vbTextCompare) & " and Path is: " & fldrStartFolder.Path
If fnCompareCriteriaWithFolderName(fldrStartFolder.Name, strCriteria) Then
' Debug.Print "Found and Opening: " & fldrStartFolder.Name & "Because of: " & strCriteria
Shell "EXPLORER.EXE" & " " & Chr(34) & fldrStartFolder.Path & Chr(34), vbNormalFocus
Else
For Each subfldrInStart In fldrStartFolder.SubFolders
intCounter = intCounter + 1
Debug.Print "Criteria: " & Replace(strCriteria, " ", "", 1, , vbTextCompare) & " and Folder Name is " & Replace(subfldrInStart.Name, " ", "", 1, , vbTextCompare) & " and Path is: " & fldrStartFolder.Path
If fnCompareCriteriaWithFolderName(subfldrInStart.Name, strCriteria) Then
' Debug.Print "Found and Opening: " & subfldrInStart.Name & "Because of: " & strCriteria
Shell "EXPLORER.EXE" & " " & Chr(34) & subfldrInStart.Path & Chr(34), vbNormalFocus
Else
Call fnFindFoldersWithCriteria(subfldrInStart, strCriteria, intCounter)
End If
Me.txtProcessed = intCounter
Me.txtProcessed.Requery
Next
End If
Set fldrStartFolder = Nothing
Set subfldrInStart = Nothing
Set subfldrInSubFolder = Nothing
Set fso = Nothing
End Function
Private Function fnCompareCriteriaWithFolderName(strFolderName As String, strCriteria As String) As Boolean
fnCompareCriteriaWithFolderName = False
fnCompareCriteriaWithFolderName = InStr(1, Replace(strFolderName, " ", "", 1, , vbTextCompare), Replace(strCriteria, " ", "", 1, , vbTextCompare), vbTextCompare) > 0
End Function
Private Sub subListFolders(ByVal strFolders As String, intCounter As Integer)
Dim dbs As Database
Dim fso As New FileSystemObject
Dim fldFolders As Folder
Dim fldr As Folder
Dim subfldr As Folder
Dim sfldFolders As String
Dim strSQL As String
Set fldFolders = fso.GetFolder(TrailingSlash(strFolders))
Set dbs = CurrentDb
strSQL = "INSERT INTO tblFileList (FilePath, FileName, FolderSize) VALUES (" & Chr(34) & fldFolders.Path & Chr(34) & ", " & Chr(34) & fldFolders.Name & Chr(34) & ", '" & fldFolders.Size & "')"
dbs.Execute strSQL
For Each fldr In fldFolders.SubFolders
intCounter = intCounter + 1
strSQL = "INSERT INTO tblFileList (FilePath, FileName, FolderSize) VALUES (" & Chr(34) & fldr.Path & Chr(34) & ", " & Chr(34) & fldr.Name & Chr(34) & ", '" & fldr.Size & "')"
dbs.Execute strSQL
For Each subfldr In fldr.SubFolders
intCounter = intCounter + 1
sfldFolders = subfldr.Path
Call subListFolders(sfldFolders, intCounter)
Me.sfrmFolderList.Requery
Next
Me.txtListed = intCounter
Me.txtListed.Requery
Next
Set fldFolders = Nothing
Set fldr = Nothing
Set subfldr = Nothing
Set dbs = Nothing
End Sub
Private Function TrailingSlash(varIn As Variant) As String
If Len(varIn) > 0& Then
If Right(varIn, 1&) = "" Then
TrailingSlash = varIn
Else
TrailingSlash = varIn & ""
End If
End If
End Function
The form has a subform based on the table, the form has 4 text boxes for the criteria, 2 buttons leading to the click procedures and 1 other text box to store the string for the start folder. There are 2 text boxes that are used to show the number of folders listed and the number processed when searching them for the criteria.
If I had the Rep I would post a picture… :/
I have some other things I wanted to add to this code but haven’t had the chance yet. I want to have a way to store the ones that worked in another table or get the user to mark them as good to store.
I can not claim full credit for all the code, I cobbled some of it together from stuff I found all around, even in other posts on stackoverflow.
I really like the idea of posting questions here and then answering them yourself because as the linked article says, it makes it easy to find the answer for later reference.
When I finish the other parts I want to add I will post the code for that too.
Here is some more cool knowledge to go with this:
I had a situation where I needed to be able to find folders based on a bit of criteria in the record and then open the folder(s) that were found. While doing work on finding a solution I created a small database that asks for a search starting folder gives a place for 4 pieces of criteria and then allows the user to do criteria matching that opens the 4 (or more) possible folders that match the entered criteria.
Here is the whole code on the form:
Option Compare Database
Option Explicit
Private Sub cmdChooseFolder_Click()
Dim inputFileDialog As FileDialog
Dim folderChosenPath As Variant
If MsgBox("Clear List?", vbYesNo, "Clear List") = vbYes Then DoCmd.RunSQL "DELETE * FROM tblFileList"
Me.sfrmFolderList.Requery
Set inputFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
With inputFileDialog
.Title = "Select Folder to Start with"
.AllowMultiSelect = False
If .Show = False Then Exit Sub
folderChosenPath = .SelectedItems(1)
End With
Me.txtStartPath = folderChosenPath
Call subListFolders(Me.txtStartPath, 1)
End Sub
Private Sub cmdFindFolderPiece_Click()
Dim strCriteria As String
Dim varCriteria As Variant
Dim varIndex As Variant
Dim intIndex As Integer
varCriteria = Array(Nz(Me.txtSerial, "Null"), Nz(Me.txtCustomerOrder, "Null"), Nz(Me.txtAXProject, "Null"), Nz(Me.txtWorkOrder, "Null"))
intIndex = 0
For Each varIndex In varCriteria
strCriteria = varCriteria(intIndex)
If strCriteria <> "Null" Then
Call fnFindFoldersWithCriteria(TrailingSlash(Me.txtStartPath), strCriteria, 1)
End If
intIndex = intIndex + 1
Next varIndex
Set varIndex = Nothing
Set varCriteria = Nothing
strCriteria = ""
End Sub
Private Function fnFindFoldersWithCriteria(ByVal strStartPath As String, ByVal strCriteria As String, intCounter As Integer)
Dim fso As New FileSystemObject
Dim fldrStartFolder As Folder
Dim subfldrInStart As Folder
Dim subfldrInSubFolder As Folder
Dim subfldrInSubSubFolder As String
Dim strActionLog As String
Set fldrStartFolder = fso.GetFolder(strStartPath)
' Debug.Print "Criteria: " & Replace(strCriteria, " ", "", 1, , vbTextCompare) & " and Folder Name is " & Replace(fldrStartFolder.Name, " ", "", 1, , vbTextCompare) & " and Path is: " & fldrStartFolder.Path
If fnCompareCriteriaWithFolderName(fldrStartFolder.Name, strCriteria) Then
' Debug.Print "Found and Opening: " & fldrStartFolder.Name & "Because of: " & strCriteria
Shell "EXPLORER.EXE" & " " & Chr(34) & fldrStartFolder.Path & Chr(34), vbNormalFocus
Else
For Each subfldrInStart In fldrStartFolder.SubFolders
intCounter = intCounter + 1
Debug.Print "Criteria: " & Replace(strCriteria, " ", "", 1, , vbTextCompare) & " and Folder Name is " & Replace(subfldrInStart.Name, " ", "", 1, , vbTextCompare) & " and Path is: " & fldrStartFolder.Path
If fnCompareCriteriaWithFolderName(subfldrInStart.Name, strCriteria) Then
' Debug.Print "Found and Opening: " & subfldrInStart.Name & "Because of: " & strCriteria
Shell "EXPLORER.EXE" & " " & Chr(34) & subfldrInStart.Path & Chr(34), vbNormalFocus
Else
Call fnFindFoldersWithCriteria(subfldrInStart, strCriteria, intCounter)
End If
Me.txtProcessed = intCounter
Me.txtProcessed.Requery
Next
End If
Set fldrStartFolder = Nothing
Set subfldrInStart = Nothing
Set subfldrInSubFolder = Nothing
Set fso = Nothing
End Function
Private Function fnCompareCriteriaWithFolderName(strFolderName As String, strCriteria As String) As Boolean
fnCompareCriteriaWithFolderName = False
fnCompareCriteriaWithFolderName = InStr(1, Replace(strFolderName, " ", "", 1, , vbTextCompare), Replace(strCriteria, " ", "", 1, , vbTextCompare), vbTextCompare) > 0
End Function
Private Sub subListFolders(ByVal strFolders As String, intCounter As Integer)
Dim dbs As Database
Dim fso As New FileSystemObject
Dim fldFolders As Folder
Dim fldr As Folder
Dim subfldr As Folder
Dim sfldFolders As String
Dim strSQL As String
Set fldFolders = fso.GetFolder(TrailingSlash(strFolders))
Set dbs = CurrentDb
strSQL = "INSERT INTO tblFileList (FilePath, FileName, FolderSize) VALUES (" & Chr(34) & fldFolders.Path & Chr(34) & ", " & Chr(34) & fldFolders.Name & Chr(34) & ", '" & fldFolders.Size & "')"
dbs.Execute strSQL
For Each fldr In fldFolders.SubFolders
intCounter = intCounter + 1
strSQL = "INSERT INTO tblFileList (FilePath, FileName, FolderSize) VALUES (" & Chr(34) & fldr.Path & Chr(34) & ", " & Chr(34) & fldr.Name & Chr(34) & ", '" & fldr.Size & "')"
dbs.Execute strSQL
For Each subfldr In fldr.SubFolders
intCounter = intCounter + 1
sfldFolders = subfldr.Path
Call subListFolders(sfldFolders, intCounter)
Me.sfrmFolderList.Requery
Next
Me.txtListed = intCounter
Me.txtListed.Requery
Next
Set fldFolders = Nothing
Set fldr = Nothing
Set subfldr = Nothing
Set dbs = Nothing
End Sub
Private Function TrailingSlash(varIn As Variant) As String
If Len(varIn) > 0& Then
If Right(varIn, 1&) = "" Then
TrailingSlash = varIn
Else
TrailingSlash = varIn & ""
End If
End If
End Function
The form has a subform based on the table, the form has 4 text boxes for the criteria, 2 buttons leading to the click procedures and 1 other text box to store the string for the start folder. There are 2 text boxes that are used to show the number of folders listed and the number processed when searching them for the criteria.
If I had the Rep I would post a picture… :/
I have some other things I wanted to add to this code but haven’t had the chance yet. I want to have a way to store the ones that worked in another table or get the user to mark them as good to store.
I can not claim full credit for all the code, I cobbled some of it together from stuff I found all around, even in other posts on stackoverflow.
I really like the idea of posting questions here and then answering them yourself because as the linked article says, it makes it easy to find the answer for later reference.
When I finish the other parts I want to add I will post the code for that too.
Open Word Document
This Word VBA Macro will open a word document from the specified directory:
Sub OpenDoc()
Dim strFile As String
strFile = "c:UsersNenadDesktopTest PM.docm" 'change to path of your file
If Dir(strFile) <> "" Then 'First we check if document exists at all at given location
Documents.Open strFile
End If
End Sub
Now you can interact with the newly opened document with the ActiveDocument Object. This code will add some text to the document.
ActiveDocument.Range(0, 0).Text = "Add Some Text"
Open Document to Variable
You can also open a Word document, immediately assigning it to a variable:
Sub OpenDoc()
Dim strFile As String
Dim oDoc as Document
strFile = "c:UsersNenadDesktopTest PM.docm" 'change to path of your file
If Dir(strFile) <> "" Then 'First we check if document exists at all at given location
Set oDoc = Documents.Open strFile
End If
End Sub
Allowing you to interact with the document via the variable oDoc.:
oDoc.Range(0, 0).Text = "Add Some Text"
Generally it’s best practice to open to a variable, giving you the ability to easily reference the document at any point.
Open Word Document From Excel
This VBA procedure will open a Word Document from another MS Office program (ex. Excel):
Sub OpenDocFromExcel()
Dim wordapp
Dim strFile As String
strFile = "c:UsersNenadDesktopTest PM.docm"
Set wordapp = CreateObject("word.Application")
wordapp.Documents.Open strFile
wordapp.Visible = True
End Sub
Открыть папку (каталог) в проводнике Windows для просмотра из кода VBA Excel с помощью функции Shell и ключевых слов explorer и cmd. Передача фокуса открытой папке.
Открытие папки в проводнике
Открытие папки (каталога) в проводнике Windows для просмотра с помощью функции Shell и ключевого слова explorer:
Shell «explorer C:UsersPublicТекущая папка», vbNormalFocus |
vbNormalFocus означает, что окно Windows Explorer получает фокус и восстанавливает свое исходное положение и размер.
Преимущество способа: имя папки может содержать пробелы.
Недостаток способа: если открываемая папка уже открыта, открывается второй экземпляр, затем третий и т.д.
То же преимущество и тот же недостаток у следующего способа:
ThisWorkbook.FollowHyperlink «C:UsersPublicТекущая папка» |
Открытие или передача фокуса
Открытие папки (каталога) в проводнике Windows для просмотра или передача папке фокуса, если она уже открыта, с помощью функции Shell и ключевого слова cmd:
Shell «cmd /C start C:UsersPublic», vbNormalFocus |
При реализации этого способа происходит кратковременное отображение на экране окна командной строки (cmd.exe). Если убрать параметр vbNormalFocus
, окно командной строки мелькать не будет, но и окно проводника, при повторном его вызове, не получит фокус.
Преимущество способа: если открываемая папка уже открыта, ей передается фокус, а второй экземпляр этой папки не открывается.
Недостаток способа: имя папки не должно содержать пробелы.
От недостатка этого способа можно избавиться с помощью экранирующих кавычек:
Shell «cmd /C start ««»» ««C:UsersPublicТекущая папка»«», vbNormalFocus |
Для себя на заметку, какие кавычки что экранируют:
«[cmd /C start ««[неиспользуемый параметр]»» ««[C:UsersPublicТекущая папка]»«]» |
Смотрите как открывать из кода VBA Excel файлы других приложений и интернет-сайты.
Открыть папку макросом |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Просмотр папки с файлами
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 10 ]
1 19.12.2010 18:51:21
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Тема: Просмотр папки с файлами
DIM myWord AS Word.Application
Set myWord = New Word.Application 'объявляем объект с именем ...
CALL SHELL("explorer D:Рабочая папкаПользователь", vbNormalFocus) 'открыть папку с именем ...
Set myWord = Nothing
По этому скрипту открыли папку и если в ней напимер 50 файлов то как сделать Вид > Таблица, как???
Там ещё могут быть в Вид:
Эскизы страниц
Плитка
Значки
Список
Таблица
Как сделать Упорядочить значки > Изменён??
Там ещё могут быть в Упорядочить значки:
Имя
Размер
Тип
Изменён
2 Ответ от VBA-addict 20.12.2010 13:11:03
- VBA-addict
- майор
- Неактивен
- Зарегистрирован: 12.10.2010
- Сообщений: 66
Re: Просмотр папки с файлами
Вкратце, напрямую — Никак
эти настройки хранятся в реестре винды — помните преснопамятные настройки для каждой папки…
обходной путь — подстроить их для папки, которую вы собираетесь открыть…
начало пути:
внешняя ссылка
внешняя ссылка
внешняя ссылка
Если удастся докопаться — просьба дописать топик
Отредактировано VBA-addict (20.12.2010 13:48:33)
Делай, что можешь, и будь, что будет!
3 Ответ от VBA-addict 20.12.2010 16:57:03
- VBA-addict
- майор
- Неактивен
- Зарегистрирован: 12.10.2010
- Сообщений: 66
Re: Просмотр папки с файлами
Кстати, Эндрю, ваша реализация наводит на мысль, что вы, возможно движетесь не в том направлении…
зачем вам открытие в проводнике?
Гораздо удобнее использовать программно окно Открыть офиса, в котором вы можете задать массу параметров, недоступных вам через проводник…
Делай, что можешь, и будь, что будет!
4 Ответ от Ципихович Эндрю 20.12.2010 17:39:13
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Просмотр папки с файлами
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
If w.LocationURL Like "file:///D:/Рабочая*" Then CallByName w.Document, "CurrentViewMode", VbLet, 3: Exit For
Next
'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.
как чтобы отказаться от Like с
‘»file:///D:/Рабочая%20папка/Пользователь»
переделать в
«D:Рабочая папкаПользователь»
2.
сделать Вид > Таблица сделали!!!!!!
Как сделать Упорядочить значки > Изменён??
Там ещё могут быть в Упорядочить значки:
Имя
Размер
Тип
Изменён
5 Ответ от Ципихович Эндрю 20.12.2010 17:41:55
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Просмотр папки с файлами
Гораздо удобнее использовать программно окно Открыть офиса, в котором вы можете задать массу параметров, недоступных вам через проводник…
Это окно же маленькое 14 экрана, а речь о например 50 файлах, неудобно смотреть, ОК??
6 Ответ от Ципихович Эндрю 20.12.2010 22:22:00
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Просмотр папки с файлами
вот это поворот, я то думал, что
в строке
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
Что не так???????
7 Ответ от Ципихович Эндрю 21.12.2010 19:53:16
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Просмотр папки с файлами
вот скрипт
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 «Зашло в условие», специально его поставил!!!!!
8 Ответ от Ципихович Эндрю 22.12.2010 18:38:16
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Просмотр папки с файлами
Убрал МсгБокс, всё хорошо
Я понимаю, что Вам это не интересно проверять, но я 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, ошибок не было, каждый раз открывало в каком то из режимов, где можно точно узнать об этом всём??
Можно ли и как папку сначала открывать невидимой, узнать открыв папку в каком она режиме просмотра открыта, изменить её до нужного и затем сделать видимой????
9 Ответ от Ципихович Эндрю 24.12.2010 15:23:15
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Просмотр папки с файлами
сделал всё, кроме как ещё по усмотрению программировать опцию Упорядочить значки при просмотре папки, имеется ввиду например по Размеру?????
Даже не знаю с чего начинать????
по ссылке внешняя ссылка
Там Вордовский файл с кнопкой будет открывать папку С. В нутро кнопки если залезть можно менять Виды просмотра и размеры окна, но удовлетворения нет, глючное оно всё же, как и IE.
То ли дело строки программировать, вычесть, добавить без ошибок всегда
10 Ответ от Ципихович Эндрю 26.12.2010 09:37:41
- Ципихович Эндрю
- генерал-полковник
- Неактивен
- Зарегистрирован: 04.02.2010
- Сообщений: 506
- Поблагодарили: 23
Re: Просмотр папки с файлами
Решил:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Const SW_SHOWNORMAL = 1 'сделать окно в режиме нормальный
Const SW_SHOWMINIMIZED = 2 'свернуть окно
Const SW_MAXIMIZE = 3 'сделать окно во весь экран
'___________________________________________________________________________
Private Sub CommandButton1_Click()
Dim Папка As String
Set objShell = CreateObject("Shell.Application")
Папка = "D:Рабочая папкаНужное" 'не нужно в конце места нахождения папки ставить наклонную
objShell.ShellExecute Папка & "", , , , 0 'последняя цифра означает: 0 - скрытое окно
Sleep 50 'нужна задержка, так как окно не успевает создаться
For Each w In objShell.Windows
If InStr(TypeName(w.Document), "ShellFolderView") > 0 Then
If w.Document.Folder.self.Path = Папка Then
w.Document.CurrentViewMode = 4
'последняя цифра означает:
'Значки 1
'Значки 2
'Список 3
'Таблица 4
'Эскизы страниц 5
'Плитка 6
'Просмотр диафильмов 7
'Значки 8
ShowWindow w.hwnd, 3
'SW_SHOWNORMAL = 1 'сделать окно в режиме нормальный
'SW_SHOWMINIMIZED = 2 'свернуть окно
'SW_MAXIMIZE = 3 'сделать окно во весь экран
Exit For
End If
End If
Next
Set objShell = Nothing
End Sub
Чтобы уже счастье было полным, помогите в этой частисделал всё, кроме того как ещё по усмотрению программировать опцию Упорядочить значки при просмотре папки, имеется ввиду например по Размеру?????
Всего там можно сортироать, по крайней мере в ХР по
Имя
Размер
Тип
Изменён
Даже не знаю с чего начинать????
Заранее спасибо
Сообщений [ 10 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Похожие темы
- Проблема с файлами WORD.
- Макрос для изменения связи с файлами
- Защищенный просмотр
- Предварительный просмотр в word 2010
- Просмотр переходов на следующую страницу
- Создание папки макросом
- Составление списка файлов из папки
- Ошибка при удалении файла или папки
Просмотр папки с файлами
Если говорить о приложениях из офисного пакета, то самая популярная, разумеется, Microsoft Word. Вряд ли в ближайшее время у нее вдруг возникнет серьезный конкурент, который сможет сместить с лидерских позиций. На портале о Microsoft Office Word вы узнаете про: отступ первой строки ко всему документу.
Хотя текстовых редакторов много, но, у нас в стране, по крайней мере, Ворд значительно опережает другие. На портале о Microsoft Office Word вы узнаете про: убрать непечатуемые знаки в тексте.
На сайте, посвященном Microsoft Word, вы найдете множество необходимых сведений, а какие-то проблемы, детали и нюансы можно обсудить на форуме Ворд Эксперт. Наш сайт о Microsoft Office Word даст ответ про: как заполнить бланк в ворде.
Довольно простая и удобная пользователю регистрационная система, которая досконально объяснена в основном разделе, доступный и понятный всем язык общения, хорошая модерация, исключающая спам и флуд, это так сказать общечеловеческие достоинства форума. Наш сайт о Microsoft Office Word даст ответ про: как из word сделать doc.
С точки зрения предмета обсуждения все так же устроено очень разумно. Вопросы, которые приходят на ум большому количеству пользователей, вынесены в главный раздел, а остальным можно обсудить в разделах, посвященных настройкам, редактированию и форматированию текста, шаблонам, а так же автоматизации процесса. На портале о Microsoft Office Word вы узнаете про: изменить шрифт в outlook 2010.
Участникам предложено самим научиться создавать макросы, использовать готовые или оставить заказ. По такому же принципу решаются все остальные вопросы. Наш сайт о Microsoft Office Word даст ответ про: создание макросов в excel 2007.
Есть и общие темы, не вошедшие в главные разделы и подфорум, где можно высказать свои пожелания.