Introdução ao FileSystemObject

Por que usamos o VBA? Usamos o VBA para automatizar nossas tarefas. Normalmente, no Excel, trabalhamos apenas com dados presentes em linhas e colunas que estão na forma de tabelas ou algo assim. Mas e os arquivos e pastas que não fazem parte do excel? E se precisarmos usar esses dados de qualquer arquivo, como os acessamos. É aqui que o FileSystemObject é útil.

FileSystemObject ou FSO é usado para acessar o sistema de arquivos do nosso computador. Usando isso, podemos ter acesso a todas as pastas de arquivos que apresentamos no computador em que estamos trabalhando. O FSO é basicamente uma ferramenta de API usada para acessar outros arquivos. Agora, isso não está presente por padrão no VBA, que aprenderemos mais adiante neste artigo. Vamos primeiro entender o que é o FOE. Anteriormente, no VBA, tínhamos a função DIR que era referida para acessar outros arquivos e pastas a partir de um computador. A codificação da função DIR era muito complexa de se trabalhar. Mas no FOE as coisas são diferentes.

Agora, existem quatro tipos de objetos que podemos acessar pelo FSO e são os seguintes:

  • Unidade: usada para ter acesso a uma unidade mencionada.
  • Pasta: É usada para ter acesso a uma pasta mencionada.
  • Arquivo: É usado para ter acesso a um arquivo mencionado.
  • Fluxo de texto: com este objeto, podemos ler ou escrever um arquivo de texto.

Cada um dos objetos listados acima possui métodos diferentes para usá-los. Por exemplo, se quisermos copiar um arquivo, usaremos o método CopyFile ou excluiremos uma pasta, usaremos o método DeleteFolder e assim por diante.

Como discuti acima, o FSO não está presente por padrão no VBA, existem dois métodos para habilitar o FSO no VBA.

  • O primeiro método é através da configuração da referência.
  • O segundo método é fazer referência à biblioteca a partir do código.

Enquanto o segundo método é mais complexo, é sempre recomendável usar o primeiro método, que é muito simples. Vamos seguir estes passos básicos.

No VBA, vá para a guia Ferramentas e depois para Referências,

Uma caixa do assistente será exibida, selecione Microsoft Scripting Runtime, como mostrado abaixo, e pressione OK.

Agora podemos acessar o FSO no VBA. Agora vamos usar isso através de alguns exemplos e aprender sobre isso.

Como usar o VBA FileSystemObject no Excel?

Abaixo estão os diferentes exemplos para usar a função VBA FileSystemObject no Excel

Você pode fazer o download deste modelo do VBA FileSystemObject Excel aqui - Modelo do VBA FileSystemObject Excel

VBA FileSystemObject - Exemplo # 1

Antes de começarmos a usar o FSO no Vba, primeiro vamos aprender como criar instâncias no VBA.

Etapa 1: no submódulo, crie um sub-procedimento,

Código:

 Sub Newfso () End Sub 

Etapa 2: declarar uma variável como FileSystemObject, como mostrado abaixo,

Código:

 Sub Newfso () Dim A Como FileSystemObject End Sub 

Etapa 3: agora precisamos criar uma instância, pois o FSO é um objeto usando a instrução SET, como mostrado abaixo,

Código:

 Sub Newfso () Dim A Como FileSystemObject Definir A = Novo FileSystemObject End Sub 

Agora, esta declaração nos permitirá criar ou modificar arquivos ou pastas usando o FSO.

Etapa 4: Agora podemos ver o recurso IntelliSense após ativar o FSO. Use o operador de ponto da seguinte maneira:

Código:

 Sub Newfso () Dim A como FileSystemObject Defina A = New FileSystemObject A. End Sub 

Ele nos deu várias opções usando o recurso IntelliSense. É assim que criamos instâncias usando o FSO.

VBA FileSystemObject - Exemplo # 2

Agora que criamos uma instância no Exemplo 1, vamos avançar para usá-la e verificar se um arquivo ou pasta existe ou não.

Etapa 1: depois de criarmos um novo FileSystemObject, use a instrução IF para determinar se uma pasta existe ou não da seguinte maneira,

Código:

 Sub Newfso () Dim A como FileSystemObject Defina A = New FileSystemObject Se A.FolderExists ("C: \ Users \ Public \ Project") e então End Sub 

Etapa 2: se a pasta existir, queremos exibir a pasta existente e, se não existir, queremos que a pasta não exista.

Código:

 Sub Newfso () Dim A As FileSystemObject Definir A = Novo FileSystemObject Se A.FolderExists ("C: \ Users \ Public \ Project") Então MsgBox "A pasta existe" Else MsgBox "A pasta não existe" End If End Sub 

Etapa 3: agora execute o código acima e veja o resultado da seguinte maneira:

A pasta existe na minha área de trabalho, então recebemos a mensagem de que a pasta existe.

VBA FileSystemObject - Exemplo # 3

Agora, desde que discutimos, o FSO tem vários objetos, como unidades. Vamos descobrir quanto espaço tenho disponível no meu drive E.

Etapa 1: inicie por outro subprocedimento, como a seguir,

Código:

 Sub Newfso1 () End Sub 

Etapa 2: agora declare uma variável como FileSystemObject e defina-a como nova instância da seguinte maneira:

Código:

 Sub Newfso1 () Dim A Como FileSystemObject Definir A = Novo FileSystemObject End Sub 

Etapa 3: agora que estamos usando a propriedade Drive, declare uma variável como tipo de unidade e uma variável como dupla para armazenar os dados por espaço da seguinte maneira:

Código:

 Sub Newfso1 () Dim A como FileSystemObject Definir A = New FileSystemObject Dim D como unidade, Dspace como Double End Sub 

Etapa 4: agora vamos criar um novo objeto de unidade, como mostrado abaixo,

Código:

 Sub Newfso1 () Dim A como FileSystemObject Definir A = Novo FileSystemObject Dim D como unidade, Dspace como conjunto duplo D = A.GetDrive ("C:") End Sub 

Este é um dos métodos do FSO que estamos usando para acessar a unidade.

Etapa 5: usaremos outro método FSO para obter o espaço livre da unidade e armazená-lo na variável definida para armazenar o espaço na unidade,

Código:

 Sub Newfso1 () Dim A como FileSystemObject Definir A = Novo FileSystemObject Dim D Como unidade, Dspace como conjunto duplo D = A.GetDrive ("C:") Dspace = D.FreeSpace End Sub 

Etapa 6: agora vamos calcular o espaço em GB da seguinte maneira:

Código:

 Sub Newfso1 () Dim A como FileSystemObject Definir A = Novo FileSystemObject Dim D como unidade, Dspace como conjunto duplo D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) End Sub 

Etapa 7: agora exiba o valor armazenado no espaço do Drive usando a função msgbox da seguinte maneira:

Código:

 Sub Newfso1 () Dim A como FileSystemObject Definir A = Novo FileSystemObject Dim D como unidade, Dspace como conjunto duplo D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) MsgBox "The Drive" & D & "possui" & Dspace e "GB free space" End Sub 

Etapa 8: execute o código acima para descobrir o resultado abaixo,

VBA FileSystemObject - Exemplo # 4

Agora vamos criar uma nova pasta para um local especificado usando o FSO.

Etapa 1: novamente, comecemos com outro subprocedimento, como a seguir,

Código:

 Sub Newfso2 () End Sub 

Etapa 2: siga as mesmas etapas e crie uma instância da seguinte maneira,

Código:

 Sub Newfso2 () Dim A Como FileSystemObject Definir A = Novo FileSystemObject End Sub 

Etapa 3: agora usaremos o método Criar Pasta para criar uma nova pasta para um local especificado,

Código:

 Sub Newfso2 () Dim A como FileSystemObject Definir A = Novo FileSystemObject A.CreateFolder ("C: \ Usuários \ Público \ Projeto \ FSOExample") End Sub 

Etapa 4: execute o código acima e veja o resultado na área de trabalho da seguinte maneira:

Criamos com sucesso uma nova pasta para o local especificado.

Coisas a serem lembradas no VBA FileSystemObject

  • FSO é uma ferramenta de aplicação de API.
  • Por padrão, o FSO não está disponível no VBA.
  • Com o FSO, podemos criar, modificar ou ler arquivos e pastas em um computador.
  • Também podemos usar o FSO para nossas unidades de rede.

Artigos recomendados

Este é um guia para o VBA FileSystemObject. Aqui discutimos como usar o VBA FileSystemObject no Excel, juntamente com alguns exemplos práticos e o modelo do Excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Guia completo da pasta de trabalho do VBA
  2. Função indireta no Excel
  3. Função de contagem VBA
  4. Função XOR do Excel

Categoria: