【VBA】ファイルを開こう!閉じよう!【Excel】

Excel_VBA

みなさんこんにちは、現役エンジニアのサメハックです

未経験からWebエンジニアに転職し、
現在正社員として5年働いたのちフリーランスとして独立しました。

1分で理解できるVBA講座シリーズです。

今回はファイルを開く・閉じる方法について学んでいきましょう!

駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!

この記事を読むと・・・
  • 1分でファイルが開ける
  • 1分でファイルが閉じられる
1分で理解できるVBA講座シリーズはじめっ!

初期設定

マクロを有効にする

Excelファイルを開き、
ファイル→オプション→トラストセンター→トラストセンターの設定→マクロの設定
という順に進み、
VBAが有効な場合にExcel4.0のマクロを有効にする
という項目にチェックを入れてください。

VBEの起動

Excelファイルを開いた状態でAlt+F11を押してVBEを開いてください

モジュールの作成

挿入→標準モジュール
という順に操作すると自動的にモジュールが開くので、ここにコードを記述します。

ファイルを開こう!

ファイルを開く構文

Workbooks.Open ファイルパス
VBAではファイルパスをフルパスで指定する必要があるけど
すべてベタ書きするのは現実的ではないので
カレントディレクトリを取得して、相対パスと結合させるよ!

カレントディレクトリの取得

ThisWorkbook.Path
これでカレントディレクトリ、つまり
現在のファイルが存在するパスが取得出来るよ!

パスの生成

path = ThisWorkbook.Path & "¥フォルダ¥フォルダ¥ファイル名"

パスの生成は+で文字列を結合するのではなく、
&を使って結合します。

実際にファイルを開いてみよう!

このような構成のファイルを用意しました。

ファイルを開く_閉じる.xlsm
から
サンプルデータ.xlsx
を開くVBAマクロを動かしてみましょう。

Sub ファイルを開く()
    '相対パス
    relativePath = "\フォルダ1\サンプルデータ.xlsx"
    'カレントディレクトリのパスと相対パスを結合
    fullPath = ThisWorkbook.path & relativePath
    
    'ファイルを開く
    Workbooks.Open fullPath
    
End Sub

これを実行することで、ファイルを開くことが出来ました。

ポイントはパスの結合部分だよ!

ファイルを閉じよう!

ファイルを閉じる構文

Workbooks(ファイル名).Close
ファイル名に拡張子をつけるかどうかはPCの設定と合わせる必要があるよ!

開いているファイル名の取得

ActiveWorkbook.Name

これは現在使用中のExcelファイル(=ブック)の
ファイル名を取得するコマンドです。

直前に開いたファイルを閉じたい場合によく使われます。

この記法を使うと、ファイル名の拡張子を気にしなくて済むよ!

実際にファイルを閉じてみよう!

Sub ファイルを開く()

    '相対パス
    relativePath = "\フォルダ1\サンプルデータ.xlsx"
    'カレントディレクトリのパスと相対パスを結合
    fullPath = ThisWorkbook.path & relativePath
    
    'ファイルを開く
    Workbooks.Open fullPath
    
    '開いているファイル名の取得
    Filename = ActiveWorkbook.Name
    
    'ファイルを閉じる
    Workbooks(Filename).Close
    
End Sub

先程のファイルを開くマクロに
閉じる処理も追加してみました。

これをF8でデバックしながら実行すると
一度開いたファイルを閉じていることがわかります。

ファイル操作をマスターしてえらい!

まとめ

  • ファイルを開く→ Workbooks.Open ファイルパス
  • カレントディレクトリの取得→ ThisWorkbook.Path
  • パスの結合には&を使う
  • ファイルを閉じる→ Workbooks(ファイル名).Close
  • アクティブなファイルの名前を取得→ ActiveWorkbook.Name

満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈

タイトルとURLをコピーしました