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

アフィリエイト広告を利用しています。
Information
運営者・ポテ

いつもありがとうございます!

皆さん、こんにちは。ご覧いただきありがとうございます。

“日々の業務にちょうどいい自動化を”──

業務改善アプリケーションの作成を行っている「ソフトデザイン工房」 です。

この記事では、ファイル名を指定してファイル(ワークブック)を開く方法を解説します。とてもシンプルなコードです。

Information
  • ワークブック
    Excelファイルのことです。

この記事が、あなたのVBAマクロの価値をさらに高める一助となれば幸いです。

VBAを活用して、自分自身や身近なコミュニティに合ったアプリケーションを作成し、仕事量は半分に、成果は2倍に──そんな未来を目指すあなたを応援しています。

VBAにおけるファイル操作の全体像

VBAにおける「ファイル操作」の全体像は以下の記事で解説しています。

この記事では、「ファイル操作」の一部である「ファイル名を指定してファイル(ワークブック)を開く方法」を解説します。

VBAでファイル名を指定してファイル(ワークブック)を開く方法

ファイル名をして指定して(ワークブック)を開くには、Workbooks.Openメソッドを使用します。Workbooks.Open メソッドの 構文を以下に示します。

Information
  • メソッド
    オブジェクトを操作するための命令文のことです。
  • 構文
    プログラミング言語の文法のことです。
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] _
) 

使用頻度が高い引数の意味を下表に示します。

Information

引数
メソッドや関数、プログラムを制御するために渡す値やオブジェクトのことです。

引数 解説
UpdateLinks ブック内のリンクを更新するかどうかを指定します。
ReadOnly ファイルを読み取り専用で開くかどうかの指定です。読み取り専用で開く場合には、以下のように記述します。
ReadOnly:=True
IgnoreReadOnlyRecommended 開きたいファイルが「読み取り専用を推奨」の設定で保存されている場合に、ファイルを開いた際に表示される警告メッセージを無視するかどうかの指定です。
複数のファイルを処理するマクロなどでは、この警告は煩わしい場合があるので、状況に応じて IgnoreReadOnlyRecommended を指定しましょう。
警告を無視して開く場合は、以下のように記述します。
IgnoreReadOnlyRecommended:=True

もう少し実用的な例を示したいと思いますので、続けます。

実際の場面では、ファイルを開くだけで終わることは少なく、開いたファイルに何かしらの操作を加えるでしょう。

開いたファイルに何かしらの操作を加えるには、開いたファイルをオブジェクト変数として取得しておくのが通常です。

Information

オブジェクト変数
「オブジェクト」を入れておく箱のようなものです。通常の変数が数値や文字列などを格納するのに対して、オブジェクト変数はオブジェクトを格納します。

開いたファイルをオブジェクト変数として取得するには、以下のようにコードを記述します。

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にコードを尋ねれば、答えが返ってくる時代です。

しかし、この本からは「コード」以上に、プログラミングに向き合う姿勢や考え方を学ぶことができるでしょう。


こちらの記事でも紹介しています。もしよろしければご覧ください。

【初心者歓迎】無料相談受付中 

運営者・ポテ

いつもありがとうございます!

限られた時間をより良く使い、日本の生産性を高めたい──

みんなの実用学を運営するソフトデザイン工房では、業務整理や業務改善アプリケーション作成のご相談を承っております。

お気軽にご相談ください。


こちらの記事でも紹介しております。

おわりに

運営者・ポテ

ご覧いただきありがとうございました!

この記事では、「ファイル操作」の中の「新規ファイル(ワークブック)の作成」を解説しました。

お問い合わせやご要望がございましたら、「お問い合わせ/ご要望」フォームまたはコメント欄よりお知らせください。

この記事が皆様のお役に立てれば幸いです。

なお、当サイトでは様々な情報を発信しております。よろしければトップページもあわせてご覧ください。

この記事を書いた人

ポテ
ポテソフトデザイン工房|日々の業務にちょうどいい自動化を
■人生を追求する凡人 ■日本一安全で、気の向くままに自分の時間を過ごせる、こだわりのキャンプ場を作るのが夢 ■ソフトデザイン工房運営(個人事業者) - 業務改善アプリケーションをご提供 ■人生は時間そのもの。ひとりでも多くの人が「より良い人生にするために時間を使って欲しい」と願い、仕事のスキルの向上、余暇の充実、資産形成を追求。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です