Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Vba как открыть файл


Что это и как его открыть?

Если ваш файл VBA связан с аппаратным обеспечением на вашем компьютере, чтобы открыть файл вам может потребоваться обновить драйверы устройств, связанных с этим оборудованием.

Эта проблема обычно связана с типами мультимедийных файлов, которые зависят от успешного открытия аппаратного обеспечения внутри компьютера, например, звуковой карты или видеокарты. Например, если вы пытаетесь открыть аудиофайл, но не можете его открыть, вам может потребоваться обновить драйверы звуковой карты.


Совет: Если при попытке открыть файл VBA вы получаете сообщение об ошибке, связанной с .SYS file, проблема, вероятно, может быть связана с поврежденными или устаревшими драйверами устройств, которые необходимо обновить. Данный процесс можно облегчить посредством использования программного обеспечения для обновления драйверов, такого как DriverDoc.

Чтение текстовых файлов в VBA

В нынешнее время использование текстовых файлов для обмена данными или хранения данных становится редкостью, но тем не менее, все еще встречается. Приведу два варианта чтения текстового файла из VBA. Каждый способ может быть полезен в своей ситуации.

Способ 1. Открытие (чтение) текстового файла целиком

Можно открыть текстовый файл без учета каких-либо разделителей, сплошным текстом:


 Set objExcel = New Excel.Application
 Set wb = objExcel.Workbooks.Open("имя_файла")
 

либо, если используются разделители колонок, можно их задействовать:

Открытие текстового файла с разделителем Tab:


 Set objExcel = New Excel.Application
 Set wb = objExcel.Workbooks
 wb.OpenText Filename:="имя_файла", DataType:=xlDelimited, Tab:=True
 

Открытие текстового файла с разделителем ; (точка с запятой):


 Set objExcel = New Excel.Application
 Set wb = objExcel.Workbooks
 wb.OpenText Filename:="имя_файла", DataType:=xlDelimited, Other:=True, OtherChar:=";"
 

В параметрах можно так же добавить Origin:=xlMSDOS, если текстовый файл в DOS-кодировке.

После открытия файла, его можно пройти как обычные ячейки Excel-кого листа.

Способ 2. Чтение текстового файла построчно

Здесь используется классический вариант чтения как в большинстве языков программирования: открытие файла, цикл чтения построчно, закрытие файла.


 f = FreeFile
 Open "имя_файла" For Input As #f
 Do While Not EOF(f)
 Line Input #f, s
 ' что-нибудь делаем с полученной строкой s
 Loop
 Close f
 

В первой строке определяем число, представляющее следующий номер файла, доступный для использования оператором Open. Затем открываем файл, после чего делаем цикл в котором происходит построчное чтение.

Операции с файлами и каталогами - Visual Basic

  • Чтение занимает 7 мин

В этой статье

В этом пошаговом руководстве приводятся основные сведения о файловом вводе-выводе в Visual Basic.This walkthrough provides an introduction to the fundamentals of file I/O in Visual Basic. В нем описывается создание небольшого приложения, перечисляющего текстовые файлы в каталоге и анализирующего их.It describes how to create a small application that lists and examines text files in a directory. Для каждого выбранного текстового файла приложение предоставляет атрибуты файла и первую строку содержимого.For each selected text file, the application provides file attributes and the first line of content. Кроме того, предоставляется возможность записать информацию в файл журнала.There is an option to write information to a log file.

В этом пошаговом руководстве используются члены My.Computer.FileSystem Object, доступные в Visual Basic.This walkthrough uses members of the My.Computer.FileSystem Object, which are available in Visual Basic. Дополнительные сведения см. в разделе FileSystem.See FileSystem for more information. В конце пошагового руководства приводится эквивалентный пример, в котором используются классы пространства имен System.IO.At the end of the walkthrough, an equivalent example is provided that uses classes from the System.IO namespace.

Примечание

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. Это зависит от имеющегося выпуска Visual Studio и используемых параметров.The Visual Studio edition that you have and the settings that you use determine these elements. Дополнительные сведения см. в разделе Персонализация среды IDE.For more information, see Personalizing the IDE.

Создание проектаTo create the project

  1. В меню Файл выберите пункт Создать проект.On the File menu, click New Project.

    Откроется диалоговое окно Новый проект .The New Project dialog box appears.

  2. В области Установленные шаблоны разверните узел Visual Basic и выберите элемент Windows.In the Installed Templates pane, expand Visual Basic, and then click Windows. В середине области Шаблоны щелкните Приложение Windows Forms.In the Templates pane in the middle, click Windows Forms Application.

  3. В поле Имя введите FileExplorer, чтобы задать имя проекта, а затем нажмите кнопку ОК.In the Name box, type FileExplorer to set the project name, and then click OK.

    Visual Studio добавит проект в обозреватель решений, после чего откроется конструктор Windows Forms.Visual Studio adds the project to Solution Explorer, and the Windows Forms Designer opens.

  4. Добавьте в форму элементы управления из приведенной ниже таблицы и установите для их свойств соответствующие значения.Add the controls in the following table to the form, and set the corresponding values for their properties.

    Элемент управленияControl СвойствоProperty ЗначениеValue
    ListBoxListBox НазваниеName filesListBox
    КнопкаButton НазваниеName

    ТекстText

    browseButton

    ОбзорBrowse

    КнопкаButton НазваниеName

    ТекстText

    examineButton

    ИсследоватьExamine

    CheckBoxCheckBox НазваниеName

    ТекстText

    saveCheckBox

    Сохранить результатыSave Results

    FolderBrowserDialogFolderBrowserDialog НазваниеName FolderBrowserDialog1

Выбор папки и перечисление файлов в нейTo select a folder, and list files in a folder

  1. Создайте обработчик событий нажатия Click для кнопки browseButton, дважды щелкнув этот элемент управления в форме.Create a Click event handler for browseButton by double-clicking the control on the form. Откроется редактор кода.The Code Editor opens.

  2. Добавьте следующий код в обработчик событий Click.Add the following code to the Click event handler.

    If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then ' List files in the folder. ListFiles(FolderBrowserDialog1.SelectedPath) End If 

    Вызов FolderBrowserDialog1.ShowDialog открывает диалоговое окно Выбор папки.The FolderBrowserDialog1.ShowDialog call opens the Browse For Folder dialog box. Когда пользователь нажимает OK, свойство SelectedPath передается как аргумент методу ListFiles, который добавляется в следующем шаге.After the user clicks OK, the SelectedPath property is sent as an argument to the ListFiles method, which is added in the next step.

  3. Добавьте приведенный ниже метод ListFiles.Add the following ListFiles method.

    Private Sub ListFiles(ByVal folderPath As String) filesListBox.Items.Clear() Dim fileNames = My.Computer.FileSystem.GetFiles( folderPath, FileIO.SearchOption.SearchTopLevelOnly, "*.txt") For Each fileName As String In fileNames filesListBox.Items.Add(fileName) Next End Sub 

    Этот код сперва очищает элемент ListBox.This code first clears the ListBox.

    Затем метод GetFiles возвращает коллекцию строк — по одной для каждого файла в каталоге.The GetFiles method then retrieves a collection of strings, one for each file in the directory. Метод GetFiles принимает аргумент шаблона поиска, чтобы извлечь файлы, соответствующие определенному шаблону.The GetFiles method accepts a search pattern argument to retrieve files that match a particular pattern. В этом примере возвращаются только файлы с расширением TXT.In this example, only files that have the extension .txt are returned.

    Строки, возвращаемые методом GetFiles, затем добавляются в элемент управления ListBox.The strings that are returned by the GetFiles method are then added to the ListBox.

  4. Запустите приложение.Run the application. Нажмите кнопку Обзор.Click the Browse button. В диалоговом окне Выбор папки перейдите в папку, содержащую TXT-файлы, выберите папку и нажмите кнопку ОК.In the Browse For Folder dialog box, browse to a folder that contains .txt files, and then select the folder and click OK.

    Элемент ListBox содержит список TXT-файлов в выбранной папке.The ListBox contains a list of .txt files in the selected folder.

  5. Остановите работу приложения.Stop running the application.

Получение атрибутов файла и содержимого текстового файлаTo obtain attributes of a file, and content from a text file

  1. Создайте обработчик событий нажатия Click для кнопки examineButton, дважды щелкнув этот элемент управления в форме.Create a Click event handler for examineButton by double-clicking the control on the form.

  2. Добавьте следующий код в обработчик событий Click.Add the following code to the Click event handler.

    If filesListBox.SelectedItem Is Nothing Then MessageBox.Show("Please select a file.") Exit Sub End If ' Obtain the file path from the list box selection. Dim filePath = filesListBox.SelectedItem.ToString ' Verify that the file was not removed since the ' Browse button was clicked. If My.Computer.FileSystem.FileExists(filePath) = False Then MessageBox.Show("File Not Found: " & filePath) Exit Sub End If ' Obtain file information in a string. Dim fileInfoText As String = GetTextForOutput(filePath) ' Show the file information. MessageBox.Show(fileInfoText) 

    Этот код проверяет, выбран ли элемент в элементе ListBox.The code verifies that an item is selected in the ListBox. Затем он получает запись пути к файлу из элемента ListBox.It then obtains the file path entry from the ListBox. Метод FileExists позволяет проверить, существует ли файл.The FileExists method is used to check whether the file still exists.

    Путь к файлу передается как аргумент методу GetTextForOutput, который добавляется в следующем шаге.The file path is sent as an argument to the GetTextForOutput method, which is added in the next step. Этот метод возвращает строку, содержащую информацию о файле.This method returns a string that contains file information. Информация о файле отображается в элементе MessageBox.The file information appears in a MessageBox.

  3. Добавьте приведенный ниже метод GetTextForOutput.Add the following GetTextForOutput method.

    Private Function GetTextForOutput(ByVal filePath As String) As String ' Verify that the file exists. If My.Computer.FileSystem.FileExists(filePath) = False Then Throw New Exception("File Not Found: " & filePath) End If ' Create a new StringBuilder, which is used ' to efficiently build strings. Dim sb As New System.Text.StringBuilder() ' Obtain file information. Dim thisFile As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo(filePath) ' Add file attributes. sb.Append("File: " & thisFile.FullName) sb.Append(vbCrLf) sb.Append("Modified: " & thisFile.LastWriteTime.ToString) sb.Append(vbCrLf) sb.Append("Size: " & thisFile.Length.ToString & " bytes") sb.Append(vbCrLf) ' Open the text file. Dim sr As System.IO.StreamReader = My.Computer.FileSystem.OpenTextFileReader(filePath) ' Add the first line from the file. If sr.Peek() >= 0 Then sb.Append("First Line: " & sr.ReadLine()) End If sr.Close() Return sb.ToString End Function 

    Метод GetFileInfo используется в коде для получения параметров файла.The code uses the GetFileInfo method to obtain file parameters. Параметры файла добавляются в StringBuilder.The file parameters are added to a StringBuilder.

    Метод OpenTextFileReader считывает содержимое файла в StreamReader.The OpenTextFileReader method reads the file contents into a StreamReader. Первая строка содержимого файла извлекается из StreamReader и добавляется в StringBuilder.The first line of the contents is obtained from the StreamReader and is added to the StringBuilder.

  4. Запустите приложение.Run the application. Нажмите кнопку Обзор и перейдите в папку с TXT-файлами.Click Browse, and browse to a folder that contains .txt files. Нажмите кнопку ОК.Click OK.

    Выберите файл в элементе ListBox и щелкните Исследовать.Select a file in the ListBox, and then click Examine. В окне MessageBox будет выведена информация о файле.A MessageBox shows the file information.

  5. Остановите работу приложения.Stop running the application.

Добавление записи в журналTo add a log entry

  1. В конец обработчика событий examineButton_Click добавьте приведенный ниже код.Add the following code to the end of the examineButton_Click event handler.

    If saveCheckBox.Checked = True Then ' Place the log file in the same folder as the examined file. Dim logFolder As String = My.Computer.FileSystem.GetFileInfo(filePath).DirectoryName Dim logFilePath = My.Computer.FileSystem.CombinePath(logFolder, "log.txt") Dim logText As String = "Logged: " & Date.Now.ToString & vbCrLf & fileInfoText & vbCrLf & vbCrLf ' Append text to the log file. My.Computer.FileSystem.WriteAllText(logFilePath, logText, append:=True) End If 

    Код задает путь к файлу журнала, чтобы файл журнала помещался в тот же каталог, где находится выбранный файл.The code sets the log file path to put the log file in the same directory as that of the selected file. Запись журнала должна содержать текущие дату и время, а далее информацию о файле.The text of the log entry is set to the current date and time followed by the file information.

    Метод WriteAllText, которому передается аргумент append со значением True, используется для создания записи в журнале.The WriteAllText method, with the append argument set to True, is used to create the log entry.

  2. Запустите приложение.Run the application. Перейдите к текстовому файлу, выберите его в элементе ListBox, установите флажок Сохранить результаты и щелкните Исследовать.Browse to a text file, select it in the ListBox, select the Save Results check box, and then click Examine. Проверьте, добавлена ли запись в файл log.txt.Verify that the log entry is written to the log.txt file.

  3. Остановите работу приложения.Stop running the application.

Использование текущего каталогаTo use the current directory

  1. Создайте обработчик событий для события Form1_Load, дважды щелкнув форму.Create an event handler for Form1_Load by double-clicking the form.

  2. Добавьте в обработчик событий приведенный ниже код.Add the following code to the event handler.

    ' Set the default directory of the folder browser to the current directory. FolderBrowserDialog1.SelectedPath = My.Computer.FileSystem.CurrentDirectory 

    Этот код задает текущий каталог в качестве каталога по умолчанию для обозревателя папок.This code sets the default directory of the folder browser to the current directory.

  3. Запустите приложение.Run the application. При первом нажатии кнопки Обзор открывается диалоговое окно Выбор папки с текущим каталогом.When you click Browse the first time, the Browse For Folder dialog box opens to the current directory.

  4. Остановите работу приложения.Stop running the application.

Выборочное включение элементов управленияTo selectively enable controls

  1. Добавьте приведенный ниже метод SetEnabled.Add the following SetEnabled method.

    Private Sub SetEnabled() Dim anySelected As Boolean = (filesListBox.SelectedItem IsNot Nothing) examineButton.Enabled = anySelected saveCheckBox.Enabled = anySelected End Sub 

    Метод SetEnabled включает и отключает элементы управления в зависимости от того, выбран ли элемент в элементе ListBox.The SetEnabled method enables or disables controls depending on whether an item is selected in the ListBox.

  2. Создайте обработчик событий SelectedIndexChanged для элемента filesListBox, дважды щелкнув элемент управления ListBox в форме.Create a SelectedIndexChanged event handler for filesListBox by double-clicking the ListBox control on the form.

  3. Добавьте вызов метода SetEnabled в новый обработчик событий filesListBox_SelectedIndexChanged.Add a call to SetEnabled in the new filesListBox_SelectedIndexChanged event handler.

  4. Добавьте вызов метода SetEnabled в конце обработчика событий browseButton_Click.Add a call to SetEnabled at the end of the browseButton_Click event handler.

  5. Добавьте вызов метода SetEnabled в конце обработчика событий Form1_Load.Add a call to SetEnabled at the end of the Form1_Load event handler.

  6. Запустите приложение.Run the application. Флажок Сохранить результаты и кнопка Исследовать отключены, если элемент не выбран в элементе ListBox.The Save Results check box and the Examine button are disabled if an item is not selected in the ListBox.

Полный пример с использованием My.Computer.FileSystemFull example using My.Computer.FileSystem

Ниже приведен полный пример.Following is the complete example.

 ' This example uses members of the My.Computer.FileSystem ' object, which are available in Visual Basic. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Set the default directory of the folder browser to the current directory. FolderBrowserDialog1.SelectedPath = My.Computer.FileSystem.CurrentDirectory SetEnabled() End Sub Private Sub browseButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles browseButton.Click If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then ' List files in the folder. ListFiles(FolderBrowserDialog1.SelectedPath) End If SetEnabled() End Sub Private Sub ListFiles(ByVal folderPath As String) filesListBox.Items.Clear() Dim fileNames = My.Computer.FileSystem.GetFiles( folderPath, FileIO.SearchOption.SearchTopLevelOnly, "*.txt") For Each fileName As String In fileNames filesListBox.Items.Add(fileName) Next End Sub Private Sub examineButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles examineButton.Click If filesListBox.SelectedItem Is Nothing Then MessageBox.Show("Please select a file.") Exit Sub End If ' Obtain the file path from the list box selection. Dim filePath = filesListBox.SelectedItem.ToString ' Verify that the file was not removed since the ' Browse button was clicked. If My.Computer.FileSystem.FileExists(filePath) = False Then MessageBox.Show("File Not Found: " & filePath) Exit Sub End If ' Obtain file information in a string. Dim fileInfoText As String = GetTextForOutput(filePath) ' Show the file information. MessageBox.Show(fileInfoText) If saveCheckBox.Checked = True Then ' Place the log file in the same folder as the examined file. Dim logFolder As String = My.Computer.FileSystem.GetFileInfo(filePath).DirectoryName Dim logFilePath = My.Computer.FileSystem.CombinePath(logFolder, "log.txt") Dim logText As String = "Logged: " & Date.Now.ToString & vbCrLf & fileInfoText & vbCrLf & vbCrLf ' Append text to the log file. My.Computer.FileSystem.WriteAllText(logFilePath, logText, append:=True) End If End Sub Private Function GetTextForOutput(ByVal filePath As String) As String ' Verify that the file exists. If My.Computer.FileSystem.FileExists(filePath) = False Then Throw New Exception("File Not Found: " & filePath) End If ' Create a new StringBuilder, which is used ' to efficiently build strings. Dim sb As New System.Text.StringBuilder() ' Obtain file information. Dim thisFile As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo(filePath) ' Add file attributes. sb.Append("File: " & thisFile.FullName) sb.Append(vbCrLf) sb.Append("Modified: " & thisFile.LastWriteTime.ToString) sb.Append(vbCrLf) sb.Append("Size: " & thisFile.Length.ToString & " bytes") sb.Append(vbCrLf) ' Open the text file. Dim sr As System.IO.StreamReader = My.Computer.FileSystem.OpenTextFileReader(filePath) ' Add the first line from the file. If sr.Peek() >= 0 Then sb.Append("First Line: " & sr.ReadLine()) End If sr.Close() Return sb.ToString End Function Private Sub filesListBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles filesListBox.SelectedIndexChanged SetEnabled() End Sub Private Sub SetEnabled() Dim anySelected As Boolean = (filesListBox.SelectedItem IsNot Nothing) examineButton.Enabled = anySelected saveCheckBox.Enabled = anySelected End Sub 

Полный пример с использованием System.IOFull example using System.IO

Следующий пример выполняет те же действия, используя классы из пространства имен System.IO вместо объектов My.Computer.FileSystem.The following equivalent example uses classes from the System.IO namespace instead of using My.Computer.FileSystem objects.

 ' This example uses classes from the System.IO namespace. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Set the default directory of the folder browser to the current directory. FolderBrowserDialog1.SelectedPath = System.IO.Directory.GetCurrentDirectory() SetEnabled() End Sub Private Sub browseButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles browseButton.Click If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then ' List files in the folder. ListFiles(FolderBrowserDialog1.SelectedPath) SetEnabled() End If End Sub Private Sub ListFiles(ByVal folderPath As String) filesListBox.Items.Clear() Dim fileNames As String() = System.IO.Directory.GetFiles(folderPath, "*.txt", System.IO.SearchOption.TopDirectoryOnly) For Each fileName As String In fileNames filesListBox.Items.Add(fileName) Next End Sub Private Sub examineButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles examineButton.Click If filesListBox.SelectedItem Is Nothing Then MessageBox.Show("Please select a file.") Exit Sub End If ' Obtain the file path from the list box selection. Dim filePath = filesListBox.SelectedItem.ToString ' Verify that the file was not removed since the ' Browse button was clicked. If System.IO.File.Exists(filePath) = False Then MessageBox.Show("File Not Found: " & filePath) Exit Sub End If ' Obtain file information in a string. Dim fileInfoText As String = GetTextForOutput(filePath) ' Show the file information. MessageBox.Show(fileInfoText) If saveCheckBox.Checked = True Then ' Place the log file in the same folder as the examined file. Dim logFolder As String = System.IO.Path.GetDirectoryName(filePath) Dim logFilePath = System.IO.Path.Combine(logFolder, "log.txt") ' Append text to the log file. Dim logText As String = "Logged: " & Date.Now.ToString & vbCrLf & fileInfoText & vbCrLf & vbCrLf System.IO.File.AppendAllText(logFilePath, logText) End If End Sub Private Function GetTextForOutput(ByVal filePath As String) As String ' Verify that the file exists. If System.IO.File.Exists(filePath) = False Then Throw New Exception("File Not Found: " & filePath) End If ' Create a new StringBuilder, which is used ' to efficiently build strings. Dim sb As New System.Text.StringBuilder() ' Obtain file information. Dim thisFile As New System.IO.FileInfo(filePath) ' Add file attributes. sb.Append("File: " & thisFile.FullName) sb.Append(vbCrLf) sb.Append("Modified: " & thisFile.LastWriteTime.ToString) sb.Append(vbCrLf) sb.Append("Size: " & thisFile.Length.ToString & " bytes") sb.Append(vbCrLf) ' Open the text file. Dim sr As System.IO.StreamReader = System.IO.File.OpenText(filePath) ' Add the first line from the file. If sr.Peek() >= 0 Then sb.Append("First Line: " & sr.ReadLine()) End If sr.Close() Return sb.ToString End Function Private Sub filesListBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles filesListBox.SelectedIndexChanged SetEnabled() End Sub Private Sub SetEnabled() Dim anySelected As Boolean = (filesListBox.SelectedItem IsNot Nothing) examineButton.Enabled = anySelected saveCheckBox.Enabled = anySelected End Sub 

См. также разделSee also

Чтение из файлов - Visual Basic

  • Чтение занимает 2 мин

В этой статье

В этом руководстве рассказывается, как выполнять задачи, связанные с чтением из файлов.This section explains how to perform tasks that are associated with reading from files.

СодержаниеIn This Section

Практическое руководство. Чтение из текстовых файловHow to: Read from Text Files
В этом руководстве рассказывается, как выполнять чтение из текстового файла.Demonstrates how to read from a text file.

Практическое руководство. Чтение из текстовых файлов с разделителями-запятымиHow to: Read From Comma-Delimited Text Files
В этом руководстве рассказывается, как выполнять чтение из текстовых файлов с разделителями-запятыми.Demonstrates how to read from a delimited text file.

Практическое руководство. Чтение из текстовых файлов с полями фиксированного размераHow to: Read From Fixed-width Text Files
В этом руководстве рассказывается, как выполнять чтение из файлов с полями фиксированного размера.Demonstrates how to read from a fixed-width text file.

Практическое руководство. Чтение из текстовых файлов различных форматовHow to: Read From Text Files with Multiple Formats
В этом руководстве рассказывается, как выполнять чтение из текстовых файлов различных форматов.Demonstrates how to read from a text file with multiple formats.

Практическое руководство. Чтение из двоичных файловHow to: Read From Binary Files
В этом руководстве рассказывается, как выполнять чтение из двоичных файлов.Demonstrates how to read from a binary file.

Практическое руководство. Чтение текста из файлов с помощью StreamReaderHow to: Read Text from Files with a StreamReader
Демонстрирует, как использовать StreamReader для чтения из двоичных файлов.Demonstrates how to use a StreamReader to read from a file.

СправочникReference

FileSystem
Описание объекта My.Computer.FileSystem и его членов.Describes the My.Computer.FileSystem object and its members.

ReadAllText
Описывает метод ReadAllText.Describes the ReadAllText method.

ReadAllBytes
Описывает метод ReadAllBytes.Describes the ReadAllBytes method.

OpenTextFieldParser
Описывает метод OpenTextFieldParser.Describes the OpenTextFieldParser method.

OpenTextFileReader
Описывает метод OpenTextFileReader.Describes the OpenTextFileReader method.

Запись данных в буфер обмена и чтение их оттудаStoring Data to and Reading from the Clipboard
Объясняет, как выполнять задачи, связанные с My.Computer.Clipboard, такие как чтение данных и запись данных в буфер обмена.Explains how to perform tasks that are associated with My.Computer.Clipboard, such as reading data from or writing data to the Clipboard.

Анализ текстовых файлов с помощью объекта TextFieldParserParsing Text Files with the TextFieldParser Object
Содержит общие сведения о чтении текстовых файлов с помощью объекта TextFieldParser.Provides an overview of reading text files with the TextFieldParser object.

Пошаговое руководство. Операции с файлами и каталогами в Visual BasicWalkthrough: Manipulating Files and Directories in Visual Basic
Объясняет, как использовать функцию My с файлами и каталогами.Demonstrates how to use the My feature with files and directories.

Пошаговое руководство. Управление файлами с помощью методов .NET FrameworkWalkthrough: Manipulating Files by Using .NET Framework Methods
Объясняет, как использовать методы .NET Framework с файлами и каталогами.Demonstrates how to use .NET Framework methods with files and directories.

Функции VBA для работы с текстовыми файлами

Данные функции предназначены для работы с текстовыми файлами из VBA Excel.

Используя эти функции, вы при помощи одной строки кода сможете записать текст из переменной в файл, или наоборот, загрузить содержимое текстового файла в переменную.

Чтение текстового файла в переменную:

Function ReadTXTfile(ByVal filename As String) As String Set fso = CreateObject("scripting.filesystemobject") Set ts = fso.OpenTextFile(filename, 1, True): ReadTXTfile = ts.ReadAll: ts.Close Set ts = Nothing: Set fso = Nothing End Function
Запись в текстовый файл из переменной:
Function SaveTXTfile(ByVal filename As String, ByVal txt As String) As Boolean On Error Resume Next: Err.Clear Set fso = CreateObject("scripting.filesystemobject") Set ts = fso.CreateTextFile(filename, True) ts.Write txt: ts.Close SaveTXTfile = Err = 0 Set ts = Nothing: Set fso = Nothing End Function
Добавление в текстовый файл из переменной:
Function AddIntoTXTfile(ByVal filename As String, ByVal txt As String) As Boolean On Error Resume Next: Err.Clear Set fso = CreateObject("scripting.filesystemobject") Set ts = fso.OpenTextFile(filename, 8, True): ts.Write txt: ts.Close Set ts = Nothing: Set fso = Nothing AddIntoTXTfile = Err = 0 End Function

Практическое руководство. Чтение из текстовых файлов - Visual Basic

  • Чтение занимает 2 мин

В этой статье

Метод ReadAllText объекта My.Computer.FileSystem позволяет считывать данные из текстового файла.The ReadAllText method of the My.Computer.FileSystem object allows you to read from a text file. Если содержимое файла имеет определенную кодировку, например ASCII или UTF-8, ее можно указать в аргументе.The file encoding can be specified if the contents of the file use an encoding such as ASCII or UTF-8.

Если вы производите чтение из файла с символами национальных алфавитов, необходимо указать кодировку файла.If you are reading from a file with extended characters, you will need to specify the file encoding.

Примечание

Чтобы прочитать файл по одной строке, используйте метод OpenTextFileReader объекта My.Computer.FileSystem.To read a file a single line of text at a time, use the OpenTextFileReader method of the My.Computer.FileSystem object. Метод OpenTextFileReader возвращает объект StreamReader.The OpenTextFileReader method returns a StreamReader object. С помощью метода ReadLine объекта StreamReader можно прочитать файл по одной строке.You can use the ReadLine method of the StreamReader object to read a file one line at a time. Проверить, достигнут ли конец файла, можно с помощью метода EndOfStream объекта StreamReader.You can test for the end of the file using the EndOfStream method of the StreamReader object.

Чтение данных из текстового файлаTo read from a text file

Для считывания содержимого текстового файла в строку используйте метод ReadAllText объекта My.Computer.FileSystem, указав путь.Use the ReadAllText method of the My.Computer.FileSystem object to read the contents of a text file into a string, supplying the path. В следующем примере содержимое файла test.txt считывается в строку и затем отображается в окне сообщения.The following example reads the contents of test.txt into a string and then displays it in a message box.

Dim fileReader As String fileReader = My.Computer.FileSystem.ReadAllText("C:\test.txt") MsgBox(fileReader) 

Чтение данных из зашифрованного текстового файлаTo read from a text file that is encoded

Для считывания содержимого текстового файла в строку используйте метод ReadAllText объекта My.Computer.FileSystem, указав путь и тип кодировки файла.Use the ReadAllText method of the My.Computer.FileSystem object to read the contents of a text file into a string, supplying the path and file encoding type. В следующем примере содержимое файла test.txt в кодировке UTF32 считывается в строку и затем отображается в окне сообщения.The following example reads the contents of the UTF32 file test.txt into a string and then displays it in a message box.

Dim fileReader As String fileReader = My.Computer.FileSystem.ReadAllText("C:\test.txt", System.Text.Encoding.UTF32) MsgBox(fileReader) 

ОтказоустойчивостьRobust Programming

При следующих условиях возможно возникновение исключения:The following conditions may cause an exception:

  • Путь является недопустимым, поскольку путь представляет собой строку нулевой длины (пустую строку), либо содержит только пробелы, либо содержит недопустимые знаки, либо представляет собой путь к устройству (ArgumentException).The path is not valid for one of the following reasons: it is a zero-length string, it contains only white space, it contains invalid characters, or it is a device path (ArgumentException).

  • Путь не является допустимым, поскольку он равен Nothing (ArgumentNullException).The path is not valid because it is Nothing (ArgumentNullException).

  • Файл не существует (FileNotFoundException).The file does not exist (FileNotFoundException).

  • Файл уже используется другим процессом или возникла ошибка ввода-вывода (IOException).The file is in use by another process or an I/O error occurs (IOException).

  • Длина пути превышает максимальную длину, определенную в системе (PathTooLongException).The path exceeds the system-defined maximum length (PathTooLongException).

  • Имя файла или каталога в пути содержит двоеточие (:) или имеет недопустимый формат (NotSupportedException).A file or directory name in the path contains a colon (:) or is in an invalid format (NotSupportedException).

  • Не хватает памяти для записи строки в буфер (OutOfMemoryException).There is not enough memory to write the string to buffer (OutOfMemoryException).

  • У пользователя отсутствуют необходимые разрешения на просмотр пути (SecurityException).The user lacks necessary permissions to view the path (SecurityException).

По имени файла не всегда можно с уверенностью судить о его содержимом.Do not make decisions about the contents of the file based on the name of the file. Например, файл с именем Form1.vb может вовсе не быть исходным файлом Visual Basic.For example, the file Form1.vb may not be a Visual Basic source file.

Следует проверять все входные данные перед использованием их в приложении.Verify all inputs before using the data in your application. Содержимое файла может отличаться от ожидаемого, поэтому может не удаться прочесть файл с помощью методов чтения.The contents of the file may not be what is expected, and methods to read from the file may fail.

См. такжеSee also

Открыть файл Excel для чтения с помощью VBA без дисплея

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

VBA FileDialog - открытие, выбор и сохранение файлов и папок

Часто в VBA нам нужно попросить пользователей выбрать файлы или каталоги, прежде чем мы выполним фактическую функциональность нашего макроса. Добро пожаловать в диалоговое окно открытия файла VBA. Сегодня мы узнаем, как использовать Application.FileDialog , чтобы понять различные параметры выбора диалогового окна файла msoFileDialogFilePicker и как правильно управлять этими диалоговыми окнами.

Вот простой пример диалогового окна файла VBA:

Dim fDialog как FileDialog Установите fDialog = Application.FileDialog (мсофиледиалогфилепикер) 'Показать диалог. -1 означает успех! Если fDialog.Show = -1 Тогда Debug.Print fDialog.SelectedItems (1) 'Полный путь к файлу, выбранному пользователем Конец, если

Dim fDialog As FileDialog

Установить fDialog = Application.FileDialog (msoFileDialogFilePicker)

'Показать диалоговое окно. -1 означает успех!

Если fDialog.Show = -1, то

Debug.Print fDialog.SelectedItems (1) 'Полный путь к файлу, выбранному пользователем

End If

Функция Application.FileDialog

Прежде чем мы начнем, давайте разберемся с функцией Application.FileDialog .

Application.FileDialog имеет следующий синтаксис:

Application.FileDialog (fileDialogType как MsoFileDialogType)

Приложение.FileDialog (fileDialogType как MsoFileDialogType)

Параметр

MsoFileDialogType
Перечисление, определяющее тип открываемого диалогового окна файла. Имеет следующие значения:

Значение Описание
MSOFileDialogOpen Открыть диалоговое окно
msoFileDialogSaveAs Диалоговое окно "Сохранить как"
msoFileDialogFilePicker Диалоговое окно выбора файла
msoFileDialogFolderPicker Диалоговое окно выбора папки

Свойства и функции

Свойства FileDialog

Объект Описание
AllowMultiSelect Разрешить выбрать более одного файла или папки
Имя кнопки Текст, отображаемый на кнопке действия в диалоговом окне файла
DialogType Измените MsoFileDialogType (см. Выше)
Фильтр Установить фильтр файлов для фильтрации типов файлов, которые пользователь может выбрать
InitialFileName Начальный путь, который нужно открыть e.грамм. К: \
Начальный просмотр Начальный просмотр файла. Может быть одним из следующих:
Значение
MSOFileDialogViewDetails
MSOFileDialogViewLargeIcons
MSOFileDialogViewList
msoFileDialogViewPreview
msoFileDialogViewProperties
msoFileDialogViewSmallIcons
msoFileDialogViewThumbnail
MSOFileDialogViewWebView
Выбранные позиции Коллекция типа FileDialogSelectedItems со всеми выбранными элементами
Название Заголовок диалогового окна открытия файла

Выбрать файлы - msoFileDialogFilePicker

Диалоговое окно msoFileDialogFilePicker типа позволяет выбрать один или несколько файлов .

Выбрать отдельные файлы

Наиболее распространенный сценарий выбора файла предлагает пользователю выбрать один файл. Код ниже делает именно это:

Dim fDialog As FileDialog, результат как целое число Установите fDialog = Application.FileDialog (msoFileDialogFilePicker) 'Необязательно: свойства FileDialog fDialog.AllowMultiSelect = Ложь fDialog.title = "Выберите файл" fDialog.InitialFileName = "C: \" 'Необязательно: добавьте фильтры fDialog.Filters.Clear fDialog.Фильтры. Добавьте «файлы Excel», «* .xlsx». fDialog.Filters.Add "Все файлы", "*. *" 'Показать диалог. -1 означает успех! Если fDialog.Show = -1 Тогда Debug.Print fDialog.SelectedItems (1) Конец, если 'Результат: C: \ somefile.xlsx

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

13

14

18

Dim fDialog As FileDialog, result As Integer

Установить fDialog = Application.FileDialog (msoFileDialogFilePicker)

'Необязательно: свойства FileDialog

fDialog.AllowMultiSelect = False

fDialog.title = "Выбрать файл"

fDialog.InitialFile2: Добавить

fDialog.InitialFile2

fDialog.Filters.Clear

fDialog.Filters.Add «Excel files», «* .xlsx»

fDialog.Filters.Add «All files», «*. *»

'Показать диалоговое окно. -1 означает успех!

Если fDialog.Show = -1 Then

Debug.Print fDialog.SelectedItems (1)

End If

'Результат: C: \ somefile.xlsx

Выбрать несколько файлов

Довольно распространен сценарий, когда вы просите пользователя выбрать один или несколько файлов. Код ниже делает именно это. Обратите внимание, что вам нужно установить для AllowMultiSelect значение True.

Dim fDialog As FileDialog, результат как целое число Установите fDialog = Application.FileDialog (мсофиледиалогфилепикер) 'ВАЖНЫЙ! fDialog.AllowMultiSelect = True 'Необязательные свойства FileDialog fDialog.title = "Выберите файл" fDialog.InitialFileName = "C: \" 'Необязательно: добавьте фильтры fDialog.Filters.Clear fDialog.Filters.Add «файлы Excel», «* .xlsx» fDialog.Filters.Add "Все файлы", "*. *" 'Показать диалог. -1 означает успех! Если fDialog.Show = -1 Тогда Для каждого элемента в fDialog.SelectedItems Отладка. Распечатать Далее это Конец, если 'Полученные результаты: 'C: \ somefile.xlsx 'C: \ somefile1.xlsx 'C: \ somefile2.xlsx

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

13

14

18

19

20

21

22

23

24

25

Dim fDialog As FileDialog, result As Integer

Установить fDialog = Application.FileDialog (msoFileDialogFilePicker)

'ВАЖНО!

fDialog.AllowMultiSelect = True

'Необязательные свойства FileDialog

fDialog.title = "Выберите файл"

fDialog.InitialFileName = "C: \"

' Необязательно: добавьте фильтры 9000.Filters

. Очистить

fDialog.Filters.Add «Excel files», «* .xlsx»

fDialog.Filters.Add «All files», «*. *»

'Показать диалоговое окно. -1 означает успех!

Если fDialog.Показать = -1 Затем

Для каждого в fDialog.SelectedItems

Отладка. Распечатать

Далее

Конец Если

'Результаты:

' C: \ somefile.xlsx

'C: \ somefile1.xlsx

'C: \ somefile2.xlsx

Выберите папку - msoFileDialogFilePicker

Выбрать папку проще, чем выбрать файлы. Однако в одном диалоговом окне можно выбрать только одну папку.

Выберите пример папки

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

Установите fDialog = Application.FileDialog (msoFileDialogFolderPicker) 'Важно, что мы используем msoFileDialogFolderPicker вместо (...) FilePicker 'Необязательно: свойства FileDialog fDialog.title = "Выберите папку" fDialog.InitialFileName = "C: \" Если fDialog.Show = -1 Тогда Debug.Print fDialog.SelectedItems (1) Конец, если

Установите fDialog = Application.FileDialog (msoFileDialogFolderPicker) 'Важно, чтобы мы использовали msoFileDialogFolderPicker вместо (...) FilePicker

' Необязательно: свойства FileDialog

fDialog.title = "Выберите папку"

fDialog.Name =

fDialog.

Если fDialog.Show = -1, то

Debug.Print fDialog.SelectedItems (1)

End If

Диалоговое окно msoFileDialogFolderPicker позволяет выбрать только ОДНУ папку и, очевидно, не поддерживает папки с файлами.

Открыть файл - msoFileDialogOpen

Открывать файлы намного проще, поскольку обычно используется один файл. Единственное различие между режимами выбора и открытия файлов - это метки кнопок.

Пример открытого файла

В диалоговом окне ниже пользователя попросят выбрать файл для открытия:

Dim fDialog как FileDialog, результат как целое число, это как вариант Установите fDialog = Application.FileDialog (msoFileDialogOpen) 'Необязательно: свойства FileDialog fDialog.title = "Выберите файл" fDialog.InitialFileName = "C: \" 'Необязательно: добавьте фильтры fDialog.Filters.Clear fDialog.Filters.Add "Все файлы", "*. *" fDialog.Filters.Add «файлы Excel», «* .xlsx» Если fDialog.Show = -1 Тогда Debug.Print fDialog.SelectedItems (1) Конец, если

Dim fDialog As FileDialog, result As Integer, it As Variant

Set fDialog = Application.FileDialog (msoFileDialogOpen)

'Необязательно: Свойства FileDialog

fDialog.title

000 "Выберите файл.InitialFileName = "C: \"

'Необязательно: Добавить фильтры

fDialog.Filters.Clear

fDialog.Filters.Add «Все файлы», «*. *»

fDialog.Filters.Add »файлы Excel "," * .xlsx "

Если fDialog.Show = -1, то

Debug.Print fDialog.SelectedItems (1)

End If

Сохранить файл - msoFileDialogSaveAs

Сохранение файла также просто, и только кнопки имеют разные названия.

Диалог сохранения файла фактически не сохраняет никаких файлов! Это просто позволит пользователю выбрать имя файла для файла. Вам нужно самостоятельно открывать файлы для чтения / записи. Посмотрите мой пост о том, как писать файлы в VBA

Сохранить пример файла

В диалоговом окне ниже пользователю будет предложено выбрать путь для сохранения файлов:

Dim fDialog как FileDialog, результат как целое число, это как вариант Установите fDialog = Application.FileDialog (msoFileDialogSaveAs) 'Необязательно: свойства FileDialog fDialog.title = "Сохранить файл" fDialog.InitialFileName = "C: \" Если fDialog.Show = -1 Тогда Debug.Print fDialog.SelectedItems (1) Конец, если

Dim fDialog As FileDialog, result As Integer, it As Variant

Set fDialog = Application.FileDialog (msoFileDialogSaveAs)

'Необязательно: Свойства FileDialog

fDialog.titleDial

= "C: \"

Если fDialog.Show = -1 Then

Debug.Print fDialog.SelectedItems (1)

End If

Диалог msoFileDialogSaveAs НЕ поддерживает фильтры файлов

Фильтры FileDialog

Одна из распространенных проблем при работе с Application.FileDialog - установка нескольких фильтров файлов. Ниже приведены несколько распространенных примеров того, как это сделать правильно. Чтобы добавить фильтр для нескольких файлов, используйте точку с запятой ; :

Dim fDialog как FileDialog Установите fDialog = Application.FileDialog (мсофилдиалогопен) '... 'Необязательно: добавьте фильтры fDialog.Filters.Clear fDialog.Filters.Add "Все файлы", "*. *" fDialog.Filters.Add «файлы Excel», «* .xlsx; *. xls; *. xlsm» fDialog.Filters.Add «Текстовые / CSV файлы», «* .txt; *. csv» '...

Dim fDialog As FileDialog

Установить fDialog = Application.FileDialog (msoFileDialogOpen)

'...

' Дополнительно: добавить фильтры

fDialog.Filters.Clear

fDialog.Filters.Add "All files", "*. *"

fDialog.Filters.Add "Excel files", "* .xlsx; *. Xls; *. Xlsm"

fDialog.Filters.Add "Text / CSV files "," * .txt; *. csv "

'...

Обязательно очищайте список фильтров каждый раз . FileDialog имеет свои недостатки, и часто фильтры не очищаются автоматически. Следовательно, при создании нескольких диалогов вы можете увидеть фильтры, поступающие из предыдущих выполненных диалогов, если они не были очищены и повторно запущены должным образом.

Диалог открытия файла фактически не открывает никаких файлов! Это просто позволит пользователю выбрать файлы для открытия. Вам нужно самостоятельно открывать файлы для чтения / записи. Посмотрите мои сообщения: .

Открытая инструкция (VBA) | Документы Microsoft

  • 2 минуты на чтение

В этой статье

Разрешает ввод / вывод (I / O) в файл.

Синтаксис

Открыть путь Для режима [ Доступ доступ ] [ замок ] Как [ # ] номер файла [ Len = reclength ]

Синтаксис оператора Open состоит из следующих частей:

Деталь Описание
путь Обязательно.Строковое выражение, указывающее имя файла; может включать каталог или папку и диск.
режим Обязательно. Ключевое слово, определяющее режим файла: Приложение , Двоичное , Входное , Выходное или Случайное . Если не указано иное, файл открывается для произвольного доступа .
доступ Необязательно. Ключевое слово, определяющее операции, разрешенные для открытого файла: Чтение , Запись или Чтение Запись .
замок Необязательно. Ключевое слово, определяющее операции, ограниченные для открытого файла другими процессами: Shared , Lock Read , Lock Write и Lock Read Write .
номер файла Обязательно. Допустимый номер файла в диапазоне от 1 до 511 включительно. Используйте функцию FreeFile , чтобы получить следующий доступный номер файла.
повторная длина Необязательно.Число меньше или равно 32 767 (байтов). Для файлов, открытых для произвольного доступа, это значение является длиной записи. Для последовательных файлов это значение представляет собой количество буферизованных символов.

Примечания

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

Если файл, указанный в параметре pathname , не существует, он создается при открытии файла в режимах Append , Binary , Output или Random .

Если файл уже открыт другим процессом и указанный тип доступа не разрешен, операция Открыть завершается ошибкой и возникает ошибка.

Предложение Len игнорируется, если режим равен Binary .

Важно

В режимах Binary , Input и Random вы можете открыть файл, используя другой номер файла, без предварительного закрытия файла. В режимах Приложение и Вывод вы должны закрыть файл, прежде чем открывать его с другим номером файла.

Пример

Этот пример иллюстрирует различные варианты использования оператора Open для включения ввода и вывода в файл.

Следующий код открывает файл в режиме последовательного ввода.

  Открыть TESTFILE для ввода как # 1 'Закройте перед повторным открытием в другом режиме. Закрыть # 1  

В этом примере файл открывается в двоичном режиме только для операций записи.

  Открыть «TESTFILE» для двоичного доступа Запись как # 1 'Закройте перед повторным открытием в другом режиме.Закрыть # 1  

В следующем примере файл открывается в произвольном режиме. Файл содержит записи определенного пользователем типа.

  Type Record 'Определите определяемый пользователем тип. ID как целое число Имя в виде строки * 20 Тип конца Dim MyRecord As Record 'Объявить переменную. Откройте "TESTFILE" для случайного выбора как # 1 Len = Len (MyRecord) 'Закройте перед повторным открытием в другом режиме. Закрыть # 1  

В этом примере кода файл открывается для последовательного вывода; любой процесс может читать или писать в файл.

  Открыть TESTFILE для вывода, совместно используемого как # 1 'Закройте перед повторным открытием в другом режиме. Закрыть # 1  

Этот пример кода открывает файл в двоичном режиме для чтения; другие процессы не могут прочитать файл.

  Открыть "TESTFILE" для двоичного доступа. Блокировка чтения. Прочитать как # 1.  

См. Также

Поддержка и отзывы

Есть вопросы или отзывы об Office VBA или этой документации? См. Раздел Поддержка и отзывы Office VBA, чтобы узнать, как получить поддержку и оставить отзыв.

.

VBA: как открыть два последних файла Excel в папке

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики & amp
.

Рабочих тетрадей. Открытый метод (Excel) | Документы Microsoft

  • 5 минут на чтение

В этой статье

Открывает книгу.

Примечание

Заинтересованы в разработке решений, расширяющих возможности Office на нескольких платформах? Ознакомьтесь с новой моделью надстроек Office.Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любые технологии веб-программирования, такие как HTML5, JavaScript, CSS3 и XML.

Синтаксис

выражение . Открыть ( FileName , UpdateLinks , ReadOnly , Format , Password , WriteResPassword , IgnoreReadOnlyRecommended , Origin , Delimiter , Editable , Notify Converter , AddToMru , Локальный , CorruptLoad )

выражение Переменная, представляющая объект Workbooks .

Параметры

Имя Обязательно / Дополнительно Тип данных Описание
Имя файла Дополнительно Вариант Строка . Имя файла книги, которую нужно открыть.
Ссылки обновления Дополнительно Вариант Определяет способ внешних ссылок (ссылок) в файле, например ссылки на диапазон в Бюджете.xls по следующей формуле = SUM ([Budget.xls] Annual! C10: C25) , обновляются. Если этот аргумент опущен, пользователю предлагается указать, как будут обновляться ссылки. Дополнительные сведения о значениях, используемых этим параметром, см. В разделе «Примечания».

Если Microsoft Excel открывает файл в формате WKS, WK1 или WK3 и аргумент UpdateLinks равен 0, диаграммы не создаются; в противном случае Microsoft Excel создает диаграммы из графиков, прикрепленных к файлу.

Только чтение Дополнительно Вариант True, чтобы открыть книгу в режиме только для чтения.
Формат Дополнительно Вариант Если Microsoft Excel открывает текстовый файл, этот аргумент указывает символ-разделитель. Если этот аргумент опущен, используется текущий разделитель. Дополнительные сведения о значениях, используемых этим параметром, см. В разделе «Примечания».
Пароль Дополнительно Вариант Строка, содержащая пароль, необходимый для открытия защищенной книги.Если этот аргумент опущен и для книги требуется пароль, пользователю предлагается ввести пароль.
WriteResPassword Дополнительно Вариант Строка, содержащая пароль, необходимый для записи в книгу с зарезервированной записью. Если этот аргумент опущен и для книги требуется пароль, пользователю будет предложено ввести пароль.
Игнорировать Только чтение Рекомендуется Дополнительно Вариант Истинно , чтобы в Microsoft Excel не отображалось рекомендованное только для чтения сообщение (если книга была сохранена с опцией Рекомендовано только для чтения ).
Происхождение Дополнительно Вариант Если файл является текстовым файлом, этот аргумент указывает, откуда он возник, чтобы кодовые страницы и возврат каретки / перевод строки (CR / LF) могли быть правильно сопоставлены. Может быть одной из следующих констант XlPlatform : xlMacintosh , xlWindows или xlMSDOS . Если этот аргумент опущен, используется текущая операционная система.
Разделитель Дополнительно Вариант Если файл является текстовым файлом, а аргумент Format равен 6, этот аргумент представляет собой строку, определяющую символ, который будет использоваться в качестве разделителя.Например, используйте Chr (9) для вкладок, используйте "," для запятых, используйте ";" для точки с запятой или используйте собственный символ. Используется только первый символ строки.
Редактируемый Дополнительно Вариант Если файл представляет собой надстройку Microsoft Excel 4.0, этот аргумент равен Истинно , чтобы открыть надстройку и сделать ее видимым окном. Если этот аргумент равен False или опущен, надстройка открывается как скрытая, и ее нельзя отобразить.Этот параметр не применяется к надстройкам, созданным в Microsoft Excel 5.0 или более поздней версии.

Если файл является шаблоном Excel, Истинно , чтобы открыть указанный шаблон для редактирования. Неверно , чтобы открыть новую книгу на основе указанного шаблона. Значение по умолчанию - Ложь .

Уведомить Дополнительно Вариант Если файл не может быть открыт в режиме чтения / записи, этот аргумент равен Истина , чтобы добавить файл в список уведомлений о файлах.Microsoft Excel откроет файл как доступный только для чтения, опросит список уведомлений о файлах, а затем уведомит пользователя, когда файл станет доступным. Если этот аргумент равен Ложь или опущен, уведомление не запрашивается, и любые попытки открыть недоступный файл не удастся.
Преобразователь Дополнительно Вариант Индекс первого конвертера файлов, который нужно попробовать при открытии файла. Сначала выполняется попытка указанного конвертера файлов; если этот конвертер не распознает файл, пробуются все остальные конвертеры.Индекс преобразователя состоит из номеров строк преобразователей, возвращаемых свойством FileConverters .
AddToMru Дополнительно Вариант True , чтобы добавить эту книгу в список недавно использованных файлов. Значение по умолчанию - Ложь .
Местный Дополнительно Вариант True сохраняет файлы на языке Microsoft Excel (включая настройки панели управления). False (по умолчанию) сохраняет файлы на языке Visual Basic для приложений (VBA) (который обычно является американским английским, если только проект VBA, из которого запускается Workbooks.Open, не является старым интернационализированным проектом XL5 / 95 VBA).
CorruptLoad Дополнительно XlCorruptLoad Может быть одной из следующих констант: xlNormalLoad , xlRepairFile и xlExtractData .Поведение по умолчанию, если значение не указано, - xlNormalLoad , и не предпринимает попыток восстановления при инициировании через OM.

Возвращаемое значение

Объект Workbook , представляющий открытую книгу.

Замечания

По умолчанию макросы включены при программном открытии файлов. Используйте свойство AutomationSecurity , чтобы установить режим безопасности макросов, используемый при программном открытии файлов.

Вы можете указать одно из следующих значений в параметре UpdateLinks , чтобы определить, обновляются ли внешние ссылки (ссылки) при открытии книги.

Значение Описание
0 Внешние ссылки (ссылки) не будут обновляться при открытии книги.
3 Внешние ссылки (ссылки) будут обновлены при открытии книги.

Вы можете указать одно из следующих значений в параметре Format , чтобы определить символ-разделитель для файла.

Значение Разделитель
1 Вкладки
2 запятые
3 Помещения
4 точка с запятой
5 ничего
6 Пользовательский символ (см. Аргумент Delimiter )

Пример

В следующем примере кода открывается книга Analysis.xls, а затем запускает макрос Auto_Open.

  Рабочие тетради. Открыть "ANALYSIS.XLS" ActiveWorkbook.RunAutoMacros xlAutoOpen  

В следующем примере кода выполняется импорт листа из другой книги на новый лист в текущей книге. Лист1 в текущей книге должен содержать путь к импортируемой книге в ячейке D3, имя файла в ячейке D4 и имя рабочего листа в ячейке D5. Импортированный рабочий лист вставляется после Sheet1 в текущую книгу.

  Sub ImportWorksheet () 'Этот макрос импортирует файл в эту книгу Листы («Лист1»).Выбрать PathName = Range ("D3"). Значение Имя файла = Диапазон ("D4"). Значение TabName = Range ("D5"). Значение ControlFile = ActiveWorkbook.Name Workbooks.Open Filename: = Путь и имя файла ActiveSheet.Name = TabName Таблицы (TabName). Копировать после: = Рабочие книги (ControlFile) .Sheets (1) Windows (Имя файла). Активировать ActiveWorkbook.Close SaveChanges: = False Windows (ControlFile). Активировать Конец подписки  

Поддержка и отзывы

Есть вопросы или отзывы об Office VBA или этой документации? См. Раздел Поддержка и отзывы Office VBA, чтобы узнать, как получить поддержку и оставить отзыв.

.

Метод OpenTextFile (Visual Basic для приложений)

  • 2 минуты на чтение

В этой статье

Открывает указанный файл и возвращает объект TextStream , который можно использовать для чтения, записи или добавления в файл.

Синтаксис

объект . OpenTextFile ( имя файла , [ iomode , [ создать , [ формат ]]])

Метод OpenTextFile состоит из следующих частей:

Деталь Описание
объект Обязательно. Всегда имя FileSystemObject .
имя файла Обязательно. Строковое выражение, определяющее открываемый файл.
режим Необязательно. Указывает режим ввода / вывода. Может быть одной из трех констант: ForReading , ForWriting или ForAppending .
создать Необязательно. Логическое значение , которое указывает, можно ли создать новый файл, если указанное имя файла не существует. Значение Истинно , если создается новый файл; Ложь , если он не создан.По умолчанию Ложь .
формат Необязательно. Одно из трех значений Tristate , используемых для обозначения формата открытого файла. Если не указано, файл открывается как ASCII.

Настройки

Аргумент iomode может иметь любое из следующих значений:

Константа Значение Описание
Для чтения 1 Открыть файл только для чтения.Вы не можете писать в этот файл.
Для записи 2 Открыть файл только для записи. Используйте этот режим для замены существующего файла новыми данными. Вы не можете читать из этого файла.
Для добавления 8 Откройте файл и выполните запись в конец файла. Вы не можете читать из этого файла.

Аргумент формата может иметь любое из следующих значений:

Константа Значение Описание
TristateUseDefault -2 Открывает файл, используя системные настройки по умолчанию.
TristateTrue -1 Открывает файл в формате Unicode.
Tristate False 0 Открывает файл в формате ASCII.

Примечания

Следующий код иллюстрирует использование метода OpenTextFile для открытия файла для добавления текста:

  Sub OpenTextFileTest Const ForReading = 1, ForWriting = 2, ForAppending = 8 Дим фс, ф Установите fs = CreateObject ("Scripting.FileSystemObject ") Установите f = fs.OpenTextFile ("c: \ testfile.txt", ForAppending, TristateFalse) е. Напишите "Привет, мир!" е. закрыть Конец подписки  

См. Также

Поддержка и отзывы

Есть вопросы или отзывы об Office VBA или этой документации? См. Раздел Поддержка и отзывы Office VBA, чтобы узнать, как получить поддержку и оставить отзыв.

.

Смотрите также