大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、ファイルを開く方法についてご紹介します。ファイルを開く方法として、ファイルパスを指定する方法と、ファイル選択用ダイアログを使う方法があります。ファイルパスの取得は、使う場面に応じて、パス指定なのか、ダイアログを使うのかを、選べるようになると効率的にVBAコードを作成できます。

はじめに

この記事では、「ファイルパスを指定してファイルを開く方法」と、「ダイアログを使ってファイルを開く方法」をご紹介します。

ファイルパスを指定する方法は、ファイルの保存場所やファイル名に変更がない場合に、使えます。

また、反対に、ダイアログを使ってファイルを開く方法は、ファイルの場所が変わる場合に使えるので、応用が利きます。

ファイルパスを取得する方法は、いくつかありますので、最適な方法を選べると効率的です。

では、ファイルを開く方法について、ご紹介していきます。

この記事で紹介すること

  • ファイルパスを指定してファイルを開く
  • ダイアログを使ってファイルを開く

目次から見たい項目へ移動すると便利ですよ。

目次

ポイントとなるVBAコード

VBAで、ファイルを開く方法で、「パスを指定して開く方法」と、「ファイルダイアログを使って開く方法」があります。

パスを指定して開く方法と、ファイルダイアログのVBAコードをまとめると、次のようになります。

'ファイルパスを指定して、ファイルを開く
a = "C:\TEST\TEST.xlsx" 'ファイルパス
Workbooks.Open Filename:=a 'ファイルを開く

'現在のフォルダからファイルパスを指定して、ファイルを開く
a = ThisWorkbook.Path & "\TEST.xlsx" 'ファイルパス
Workbooks.Open Filename:=a 'ファイルを開く

'ダイアログを使って、ファイルを開く
With CreateObject("WScript.Shell")
    .CurrentDirectory = ThisWorkbook.Path '最初のフォルダを設定
End With
a = Application.GetOpenFilename("Microsoft Excelブック,*.xlsx?") 'ファイルパスを取得
If a = False Then Exit Sub 'キャンセルした場合は終了
Workbooks.Open Filename:=a 'ファイルを開く

では、それぞれのVBAコードと、具体的な使い方について、解説していきます。

VBAでパス指定してファイルを開く

VBAでパス指定してファイルを開く方法について、ご紹介します。

パスを指定して開く方法は、2つあって次の通りです。

  • フルパスを入力する
  • 現在のフォルダからファイルパスを指定

という感じです。

フルパスを入力する

フルパスを入力して、ファイルを開く方法は、一番簡単です。

しかし、フォルダ名が変更されてしまうと、ファイルパスを取得できなくなってしまうのが、欠点です。

フルパスを入力して、ファイルを開くVBAコードです。

Sub TEST1()
    
    'ファイルパス
    a = "C:\TEST\TEST.xlsx"
    
    'ファイルを開く
    Workbooks.Open Filename:=a
    
End Sub

最初にフルパスを入力しています。

フルパスの取得は、ファイルを「Shift+右クリック」して、「パスのコピー」をクリックすると取得できます。

パスのコピー

フルパスを取得する方法

こんな感じ『"C:\TEST\TEST.xlsx"』で取得できます。

では、こちらのファイルを開いてみます。

開くファイル

開くファイル

では、VBAコードを実行してみます。

フルパスを指定して、ファイルを開く

フルパスを指定して、ファイルを開いた結果

フルパスを指定して、ファイルを開くことができました。

現在のフォルダからファイルパスを指定する

次は、現在のフォルダからファイルパスを指定する方法です。

現在のフォルダは、VBAコードを記載しているファイルが保存されているフォルダです。

現在のフォルダからファイルパスを指定して、ファイルを開くVBAコードは次のようになります。

Sub TEST2()
    
    'ファイルパス
    a = ThisWorkbook.Path & "\TEST.xlsx"
    
    'ファイルを開く
    Workbooks.Open Filename:=a
    
End Sub

現在のフォルダパスは、『ThisWorkBook.Path』で取得できます。

現在のフォルダパスから、次のファイル『TEST,xlsx』というファイルを指定してます。

ThisWorkbook.Pathで指定する

ThisWorkbook.Pathを使って指定しているファイル

現在のフォルダパスを『ThisWorkBook.Path』で取得できるので、『\TEST.xlsx』を足してファイルパスを取得しています。

では、実行してファイルを開いてみます。

現在フォルダからファイルパスを指定して、ファイルを開く

現在フォルダパスからファイルパスを指定してファイルを開いた結果

現在のフォルダから、ファイルパスを指定して、『TEST.xlsx』ファイルを開くことができました。

ファイルパスを指定して開く方法は、ファイルの保存場所やファイル名が変わらない場合に、使えます。

ファイルパスを一回設定してしまえば、実行する際は、VBAコードを実行するだけですので楽できます。

VBAでダイアログを使ってファイルを開く

次は、ダイアログでファイルパスを取得して、ファイルを開いてみます。

ファイルダイアログを使う

ダイアログでファイルパスを指定して、ファイルを開くVBAコードはこちらです。

Sub TEST3()
    
    'ファイルパスを取得
    a = Application.GetOpenFilename("Microsoft Excelブック,*.xlsx?")
    
    'キャンセルの場合、終了
    If a = False Then Exit Sub
    
    'ファイルを開く
    Workbooks.Open Filename:=a
    
End Sub

では、現在のファイルと、同じフォルダに保存されている次のファイルを選択してみます。

開きたいファイル

取得するファイル

『TEST.xlsx』というファイルです。

『C:\TEST』というフォルダに保存されています。

では、VBAコードを実行してみます。

ファイル選択用ダイアログが表示

ファイル選択用のダイアログが表示される

ファイル選択用のダイアログが表示されました。

PCの一番上のフォルダが表示されました。

開きたいファイルのフォルダまで、移動します。

開きたいファイルを探す

開きたいファイルまで移動する

ありました。『TEST.xlsx』ファイルです。

このダイアログで、開きたいファイルを選択します。

ファイルを開く

ファイル選択用のダイアログでファイルを開いた結果

『TEST.xlsx』のファイルを開くことができました。

ただ、ダイアログを開いて、PCの一番上からスタートするってめんどくさいですよね。

そんなときは、最初に開くフォルダを指定すると、便利になります。

最初に開くフォルダを指定する

最初に開くフォルダを指定して、ダイアログでファイルを開くVBAコードです。

Sub TEST4()
    
    '最初に開くフォルダを指定
    With CreateObject("WScript.Shell")
        .CurrentDirectory = ThisWorkbook.Path
    End With
    
    'ファイルパスを取得
    a = Application.GetOpenFilename("Microsoft Excelブック,*.xlsx?")
    
    'キャンセルの場合、終了
    If a = False Then Exit Sub
    
    'ファイルを開く
    Workbooks.Open Filename:=a
    
End Sub

最初に開くフォルダの指定は、次のようにします。

最初に開くフォルダの指定

'最初に開くフォルダを指定
With CreateObject("WScript.Shell")
    .CurrentDirectory = ThisWorkbook.Path
End With

『ThisWorkbook.Path』を指定していますので、現在のフォルダを最初に開くことができます。

では、実行してみます。

最初に開くフォルダを指定

最初に開くフォルダを現在のフォルダにした結果

最初に開くフォルダを、現在のフォルダにすることができました。

大体の場所が決まっているときに、効果的です。

この場合は、すぐ開きたいファイル『TEST.xlsx』があるので、すぐ開くことができます。

ファイルを開く

ダイアログでファイルを選択して開いた結果

ファイル『TEST.xlsx』を開くことができました。

ダイアログを使うなら、最初に開くファイルも設定しておいた方が、使い勝手がいいです。

VBAでCSVファイルも開けます

開けるファイルは、「.xlsx」ファイルだけではなくて、「CSV」ファイルも開くことができます。

では、パス指定して開く方法と、ダイアログを使って開く方法で、CSVファイルを開いてみます。

パス指定で開く

CSVファイルをパスを指定する方法で、開いてみます。

Sub TEST5()
    
    'ファイルパス
    a = ThisWorkbook.Path & "\TEST.csv"
    
    'ファイルを開く
    Workbooks.Open Filename:=a
    
End Sub

現在のフォルダパスから、ファイルパス『ThisWorkbook.Path & "\TEST.csv"』を指定しています。

同じフォルダ内にCSVファイルを用意しました。

CSVファイル

CSVファイルを用意した

では、このCSVファイルを開いてみます。

CSVファイルを開く

パスを指定してCSVファイルを開いた結果

パスを指定して、CSVファイルを開くことができました。

ダイアログで開く

次に、ダイアログを使ってCSVファイルを開いてみます。

CSVファイルを開くVBAコードはこちらになります。

Sub TEST6()
    
    '最初に開くフォルダを指定
    With CreateObject("WScript.Shell")
        .CurrentDirectory = ThisWorkbook.Path
    End With
    
    'ファイルパスを取得
    a = Application.GetOpenFilename("Microsoft Excelブック,*.csv?")
    
    'キャンセルの場合、終了
    If a = False Then Exit Sub
    
    'ファイルを開く
    Workbooks.Open Filename:=a
    
End Sub

『GetOpenFilename』に指定するファイルの種類を、「.csv」に変更しています。

では、実行してみます。

ダイアログでファイルを選択

初期のフォルダが表示される

最初に開くフォルダとして指定したフォルダが、表示されました。

あとは、開きたい『TEST.csv』を選択して、ファイルを開きます。

CSVファイルを開く

ダイアログを使ってCSVファイルを開いた結果

『TEST.csv』ファイルを開くことができました。

エクセルで開くことができるファイル拡張子であれば、同じ方法でファイルを開くことができます。

おわりに

この記事では、ファイルパスを指定してファイルを開く方法と、ダイアログを使ってファイルを開く方法をご紹介しました。

ファイルパスを指定する方法は、ファイルの保存場所やファイル名に変更がない場合に、使えます。

また、反対に、ダイアログを使ってファイルを開く方法は、ファイルの場所が変わる場合に使えるので、応用が利きます。

ファイルパスを取得する方法は、いくつかありますので、場合に応じて取得する方法を変えていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す