【簡単エクセル/Excel VBA マクロ】ファイル名を指定してファイル(ワークブック)を開く方法|Workbooks.Open|ファイル操作 #002


いつもありがとうございます!
皆さん、こんにちは。ご覧いただきありがとうございます。
“日々の業務にちょうどいい自動化を”──
業務改善アプリケーションの作成を行っている「ソフトデザイン工房」 です。
この記事では、ファイル名を指定してファイル(ワークブック)を開く方法を解説します。とてもシンプルなコードです。
この記事が、あなたのVBAマクロの価値をさらに高める一助となれば幸いです。
VBAを活用して、自分自身や身近なコミュニティに合ったアプリケーションを作成し、仕事量は半分に、成果は2倍に──そんな未来を目指すあなたを応援しています。
VBAにおけるファイル操作の全体像
VBAにおける「ファイル操作」の全体像は以下の記事で解説しています。
この記事では、「ファイル操作」の一部である「ファイル名を指定してファイル(ワークブック)を開く方法」を解説します。
VBAでファイル名を指定してファイル(ワークブック)を開く方法
ファイル名をして指定して(ワークブック)を開くには、Workbooks.Openメソッドを使用します。Workbooks.Open メソッドの 構文を以下に示します。
Workbooks.Open(Filename)ここで Filename は、開きたいファイルのフルパスです。
実際には以下のように実装することが多いと思います。
' 変数の宣言
Dim fp As String ' ファイルパス
' 変数に値を代入
fp = "path_to_your_book\your_book.xlsx"
' ファイルを開く
Workbooks.Open (fp)例えば、マクロを記述したファイルと同階層にあるファイルを開くには、以下のようにコードを記述します。同階層に "your_book.xlsx" というファイルがある前提です。
Sub sample()
' 変数の宣言
Dim fp As String
' 変数に値を代入
fp = ThisWorkbook.Path & "\your_book.xlsx"
' ファイルを開く
Workbooks.Open (fp)
End Subこのコードを実行すると以下のようにファイルが立ち上がります。

なお、Workbooks.Open メソッドは、以下の引数をとることができます。Filename 以外は省略可能です。
Workbooks.Open( _
Filename, _
[UpdateLinks], _
[ReadOnly], _
[Format], _
[Password], _
[WriteResPassword], _
[IgnoreReadOnlyRecommended], _
[Origin], _
[Delimiter], _
[Editable], _
[Notify], _
[Converter], _
[AddToMru], _
[Local], _
[CorruptLoad] _
) 使用頻度が高い引数の意味を下表に示します。
| 引数 | 解説 |
|---|---|
| UpdateLinks | ブック内のリンクを更新するかどうかを指定します。 |
| ReadOnly | ファイルを読み取り専用で開くかどうかの指定です。読み取り専用で開く場合には、以下のように記述します。 ReadOnly:=True |
| IgnoreReadOnlyRecommended | 開きたいファイルが「読み取り専用を推奨」の設定で保存されている場合に、ファイルを開いた際に表示される警告メッセージを無視するかどうかの指定です。 複数のファイルを処理するマクロなどでは、この警告は煩わしい場合があるので、状況に応じて IgnoreReadOnlyRecommended を指定しましょう。 警告を無視して開く場合は、以下のように記述します。 IgnoreReadOnlyRecommended:=True |
もう少し実用的な例を示したいと思いますので、続けます。
実際の場面では、ファイルを開くだけで終わることは少なく、開いたファイルに何かしらの操作を加えるでしょう。
開いたファイルに何かしらの操作を加えるには、開いたファイルをオブジェクト変数として取得しておくのが通常です。
開いたファイルをオブジェクト変数として取得するには、以下のようにコードを記述します。
Sub sample2()
' 変数宣言
Dim fp As String ' ファイルパス
Dim wb As Workbook ' ワークブック
' 変数に値を代入
fp = ThisWorkbook.Path & "\your_book.xlsx"
' ファイルを開くと同時にオブジェクト変数として取得する
Set wb = Workbooks.Open(fp)
End Subこれで、オブジェクト変数 wb(つまり、開いたファイル) に対して、命令することが出来るようになりました。
例として、wbのシートにコメントを入力し、上書き保存するコードを実装してみましょう。各行のコードの意味は、コードの上に行に記載したコメントをご参照ください。
Sub sample3()
' 変数宣言
Dim fp As String ' ファイルパス
Dim wb As Workbook ' ワークブック
' 変数に値を代入
fp = ThisWorkbook.Path & "\your_book.xlsx"
' ファイルを開くと同時にオブジェクト変数として取得する
Set wb = Workbooks.Open(fp)
' シートにコメントを入力
wb.Worksheets(1).Cells(1, 1) = "これはファイル名を指定して開いたファイルです"
' ファイルを保存して閉じる
wb.Close SaveChanges:=True
End Subこれを実行後、上書き保存したファイルを開いてみましょう。

コードの中で命令した通りにコメントが入力されています。
以上で、ファイル名を指定してファイルを開く方法の解説は終わりです。

ご覧いただきありがとうございました!
VBAスキルアップの参考情報
近年は、ChatGPTをはじめとするAIの登場によって、学習のスタイルが大きく変わりました。
分からないことがあれば、AIに尋ねれば答えがすぐに見つかる時代です。
とはいえ、AIを使いこなすには、自分自身の基本的な知識や理解力が欠かせません。
全体像をつかむためには、やはり書籍などで体系的に学んでおくことが今でも有効です。
そのうえでAIを活用すれば、自分の理解度に合わせた的確な解説や、応用のヒントを得ることができます。
「学んで基礎を築く → AIで補い発展させる」──このサイクルを重ねることで、VBAスキルは着実に高まっていくでしょう。
VBAのスキルアップ
VBAを学び始めるなら
入門書は、どれを選んでも大きな差はないように感じます。
どれを選ぶかに悩むことに時間をかけるよりも、まずは手頃な一冊を手に取って進めてみるのがおすすめです。
もし迷ったときには、私はインプレス社の「いちばんやさしい」シリーズを選ぶことが多いです。
基礎を超えて力をつけたいなら
私は上級者を目指していましたので、入門書にとどまらず、このような内容の濃い一冊を選んで学んでいました。
今は誰でもAIを活用できる時代になりましたが、上級者を目指す方にとっては、AIをより上手に活用するという意味でも、こうした本は今なお価値があります。
このレベルの本を一冊持っておくことに、損はないでしょう。
資格で能力を証明したいなら
VBAのプログラミング能力を客観的に示したい場合には「VBAエキスパート試験」があります。
特に「スタンダード」の方は上級者向けです。
あなたが社内業務の改善を行う立場であっても、VBAで作成したシステムをお客様に納める立場であっても、この資格は信頼や安心につながるでしょう。
以下の公式テキストが販売されています。
プログラミングの一般教養
「独学プログラマー」というプログラミングの魅力を解説した書籍があります。
これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。
今はAIにコードを尋ねれば、答えが返ってくる時代です。
しかし、この本からは「コード」以上に、プログラミングに向き合う姿勢や考え方を学ぶことができるでしょう。
こちらの記事でも紹介しています。もしよろしければご覧ください。
【初心者歓迎】無料相談受付中

いつもありがとうございます!
限られた時間をより良く使い、日本の生産性を高めたい──
みんなの実用学を運営するソフトデザイン工房では、業務整理や業務改善アプリケーション作成のご相談を承っております。
お気軽にご相談ください。
こちらの記事でも紹介しております。
おわりに


ご覧いただきありがとうございました!
この記事では、「ファイル操作」の中の「新規ファイル(ワークブック)の作成」を解説しました。
お問い合わせやご要望がございましたら、「お問い合わせ/ご要望」フォームまたはコメント欄よりお知らせください。
この記事が皆様のお役に立てれば幸いです。
なお、当サイトでは様々な情報を発信しております。よろしければトップページもあわせてご覧ください。
この記事を書いた人






