VBA FileSystemObject (FSO) - Como acessar o FileSystemObject?

Excel VBA FileSystemObject (FSO)

O VBA FileSystemObject (FSO) funciona de forma semelhante ao FileDialog, usado para obter acesso a outros arquivos do computador em que estamos trabalhando. Também podemos editar esses arquivos significa ler ou gravar o arquivo. Usando FSO podemos acessar arquivos, trabalhar com eles, modificar arquivos e pastas. FSO é a ferramenta API importante que podemos acessar com o VBA. Como parte do projeto VBA, podemos precisar acessar algumas pastas e arquivos em nosso computador para fazer o trabalho.

Podemos fazer muitas tarefas usando o FSO, como “verificar se a pasta está disponível ou não”, criar uma nova pasta ou arquivos, renomear a pasta ou arquivos existentes, obter a lista de todos os arquivos na pasta e também os nomes das subpastas . Finalmente, podemos copiar arquivos de um local para outro.

Mesmo que existam outras funções disponíveis para trabalhar com pastas e arquivos, FSO é o método mais fácil de trabalhar com pastas e arquivos, mantendo o código VBA organizado e direto.

Podemos acessar quatro tipos de objetos com FileSystemObject. Abaixo estão aqueles.

  1. Drive: Utilizando este objeto, podemos verificar se o drive mencionado existe ou não. Podemos obter o nome do caminho, o tipo de finalidade e o tamanho da empresa.
  2. Pasta: Este objeto permite verificar se a pasta específica existe ou não. Podemos criar, excluir, modificar, copiar pastas usando este objeto.
  3. Arquivo: Este objeto permite verificar se um determinado arquivo existe ou não. Podemos criar, excluir, modificar e copiar arquivos usando este objeto VBA.
  4. Fluxo de texto: Este objeto nos permite criar ou ler arquivos de texto.

Todos os métodos acima têm seus próprios métodos para trabalhar. Com base em nossos requisitos, podemos escolher o método de cada objeto.

Como habilitar FileSystemObject?

Não é facilmente acessível em VBA. Visto que acessar arquivos e pastas é uma tarefa externa do Excel, precisamos habilitar o FileSystemObject. Para incentivar, siga as etapas abaixo.

Etapa # 1: Vá para Ferramentas> Referências.

Etapa 2 - Selecione a opção 'Microsoft Scripting Runtime'

Role para baixo e selecione a opção 'Microsoft Scripting Runtime'. Após escolher as opções, clique em OK.

Agora podemos acessar o FileSystemObject (FSO) no VBA.

Crie uma instância de FileSystemObject

Depois que a opção 'Microsoft Scripting Runtime' estiver habilitada na biblioteca de objetos, precisamos criar um objeto do sistema de arquivos (FSO) por meio da codificação.

Para criar a instância, primeiro declare a variável como FileSystemObject.

Como podemos ver, FileSystemObject aparece na lista do IntelliSense no VBA. Isso não estaria disponível antes de habilitarmos o 'Microsoft Scripting Runtime'.

Visto que FSO é um objeto, precisamos configurá-lo para criar uma nova instância.

Agora podemos acessar todas as opções do FSO (FileSystemObject).

Exemplos para usar VBA FileSystemObject

Exemplo # 1 - Encontre o espaço total em disco

O código abaixo dará o espaço total da unidade.

Código:

Sub FSO_Example1 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = Novo FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Criar novo objeto de unidade DriveSpace = DriveName.FreeSpace' Isto irá obter o espaço livre da unidade "C" DriveSpace = DriveSpace / 1073741824 'Isso irá converter o espaço livre em GB DriveSpace = Round (DriveSpace, 2)' Round the total space MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Sub

Divisão do Código.

Primeiro, criamos uma instância do FSO.

Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject

Em seguida, declaramos duas variáveis.

Dim DriveName As Drive Dim DriveSpace As Double

Como DriveName é uma variável de objeto, precisamos defini-la como FSO um dos métodos FSO. Como precisamos da característica da unidade, usamos a opção Get Drive e mencionamos o nome da unidade.

Definir DriveName = MyFirstFSO.GetDrive ("C:")

Para outra variável, DriveSpace, atribuiremos o método de espaço livre da unidade que estamos acessando.

DriveSpace = DriveName.FreeSpace

A partir de agora, a equação acima pode nos dar espaço livre da unidade “C”. Então, para mostrar o resultado em GB, dividimos o espaço aberto por 1073741824

DriveSpace = DriveSpace / 1073741824

A seguir, arredondaremos o número.

DriveSpace = Round (DriveSpace, 2)

Finalmente, mostre o resultado na caixa de mensagem.

MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB"

When we run the code manually or through shortcut key F5, then in the message box, we will get the free space of the drive “C.”

So, in my computer Drive C has 216.19 GB of free space memory.

Example #2 - Check Whether the Folder Exists or Not

To check whether the particular folder exists or not, use the below code.

If the mentioned folder is available, it will show us the message box as “The Mentioned Folder is Available.” If not, it will show the VBA message box as “The Mentioned Folder is Not Available.”

Code:

Sub FSO_Example2() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FolderExists("D:Excel FilesVBAVBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" End If End Sub

Execute este código através da tecla de atalho do excel F5 ou manualmente e veja o resultado.

Exemplo # 3 - Verifique se o arquivo existe ou não

O código abaixo irá verificar se o arquivo mencionado está disponível ou não.

Código:

Sub FSO_Example3 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = Novo FileSystemObject If MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm") Então MsgBox "O arquivo mencionado está disponível" Else Msg "O arquivo mencionado O arquivo não está disponível "End If End Sub

Execute este código manualmente ou usando a tecla F5 e veja o resultado.

Artigos interessantes...