Здраствуйте! Столкнулся с задачей создания текстового файла из листа Excel Вопрос как одним кликом по кнопке создать текстовый файл с данными из первого столбца в той же папке, где находится сам исходник. Например в категории C:\MIDI.
Есть ли средства в VBA Excel которые помогут созданный таким образом файл sample.txt обработать с помощью программы находящейся в папке
Цитата
С:\Windows\t2mfXP.exe
То есть действия попунктно: 1) Запускаем командную строку Пуск\Выполнить набираем cmd 2) Вводим в появившейся командной строке C:\Documents And Settings\Имя пользователя>cd C:\MIDI Нажатие Enter C:\MIDI>t2mfXP.exe sample.txt sample.mid Нажатие Enter Создание файла завершено успешно
Private Sub CommandButton1_Click()
On Error Resume Next
Set FSO = CreateObject("scripting.filesystemobject")
' создаём главную папку
BaseFolder$ = ThisWorkbook.Path & "\MIDI\": MkDir BaseFolder$
MkDir BaseFolder$
' создаём файл в кодировке Unicode
Set ts = FSO.CreateTextFile(BaseFolder$ & "sample.txt", True)
ts.Close
With CreateObject("Scripting.FileSystemObject").OpenTextFile(BaseFolder$ & "sample.txt", 8)
.writeline Join(Application.Transpose([a2:a806].Value), vbLf)
.Close
End With
Set ts = Nothing: Set FSO = Nothing
MsgBox "Файлы созданы, и помещены в папку" & vbNewLine & BaseFolder$, vbInformation, "Готово"
' открываем папку с файлом
CreateObject("wscript.shell").Run "explorer.exe /e, """ & BaseFolder$ & """"
End Sub
Осталось запустить программно командную строку....
Спасибо Вам за ответ! К сожалению приведенный код не срабатывает... Точнее файл *.mid не создается Может дело в том что программный файл находится здесь: С:\Windows\t2mfXP.exe а возможно и в том, что программа работает только из командной строки.... если выполнить в командной строке команду: C:\MIDI>t2mfXP.exe sample.txt sample.mid - то файл незамедлительно появляется
может кто-то сможет найти решение? PS. На всякий случай прикладываю рабочие файлы
при этом будет выполнена команда: C:\MIDI\t2mfXP.exe C:\MIDI\sample.txt C:\MIDI\sample.mid
Да все работает c небольшими поправками! Const PATH1 = "C:\WINDOWS" Const PATH = "C:\MIDI" CreateObject("wscript.shell").Run PATH1 & "t2mfXP.exe " & PATH & "sample.txt " & PATH & "sample.mid", 0, True Но при этом нужно чтобы в директории C:\MIDI\ уже находился пустой файл с расширением *.mid
Sub Создать_mid()
On Error Resume Next
Set FSO = CreateObject("scripting.filesystemobject")
' создаём главную папку
BaseFolder$ = "C:\MIDI\": MkDir BaseFolder$
MkDir BaseFolder$
' создаём текстовый файл в кодировке Unicode
Set ts = FSO.CreateTextFile(BaseFolder$ & "sample.txt", True)
ts.Close
' заполняем его данными
With CreateObject("Scripting.FileSystemObject").OpenTextFile(BaseFolder$ & "sample.txt", 8)
.writeline Join(Application.Transpose([a2:a806].Value), vbLf)
.Close
End With
' создаём пустой файл *.mid
Set ts = FSO.CreateTextFile(BaseFolder$ & "sample.mid", True)
ts.Close
Const PATH1 = "C:\WINDOWS\"
Const PATH = "C:\MIDI\"
' создаем рабочий файл *.mid
CreateObject("wscript.shell").Run PATH1 & "t2mfXP.exe " & PATH & "sample.txt " & PATH & "sample.mid", 0, True
Set ts = Nothing: Set FSO = Nothing
MsgBox "Файлы созданы, и помещены в папку" & vbNewLine & BaseFolder$, vbInformation, "Готово"
' открываем папку с файлом
CreateObject("wscript.shell").Run "explorer.exe /e, """ & BaseFolder$ & """"
End Sub
В итоге все-таки получилось!!! Особая благодарность Владимиру! Точное попадание в цель как всегда.
Единственный тонкий момент: хорошо бы перед выполнением скрипта проверить наличие самой программы по адресу: С:\Windows\t2mfXP.exe и добавить автозапуск готового файла в проигрывателе, например в Windows Media