Excel VBAで変数名を指定してワークブックを開く方法

  • これを共有
Hugh West

当然ながら、VBAを使用して、別のディレクトリにある親Excelファイルからファイルを開く必要があるかもしれません。 しかし同時に、ワークブックを開く方法についても、さまざまな種類の基準があります。 もしあなたが、変数名でワークブックを開く方法を知りたければ、この記事はあなたのために役に立つでしょう。 この記事では、変数名を使用してワークブックを開く方法について説明します。ExcelのVBAを使用して、丁寧な解説を行います。

練習用ワークブックをダウンロードする

この練習用ワークブックは以下からダウンロードできます。

VBAを使用して変数名でワークブックを開く.xlsm

Sample.xlsx

ExcelのVBAを使用して、変数名でワークブックを開く4つの簡単な方法

ここでは、以下のデータセットを使ってデモを行います。 複数の製品の製品情報とそのIDが格納されています。

1.Workbook.Openプロパティを使用する

を使用しています。 ワークブック.オープン また、オープンしたファイルを読み取り専用にすることもできます。

1.1 ファイルパスを指定してワークブックを開く

次のメソッドでは Workbook.Open プロパティ を使えば、ファイルのあるディレクトリから直接ファイルを開くことができます。 ファイルがどこにあっても、簡単にファイルを開くことができるのです。

ステップス

  • ドキュメントフォルダーに保存されているファイルを開く必要があります。
  • ファイル名を変数にし、小さなVBAマクロを使ってファイルを開くことにします。
  • ファイルのExactファイルディレクトリは、プロパティウィンドウで以下のように表示されます。

  • まず デベロッパー タブをクリックし ビジュアルベーシック それがない場合は デベロッパー」タブを有効にする または、''を押すこともできます。 Alt+F11」です。 を開くためのものです。 Visual Basic エディター .

  • 新しいダイアログボックスが表示されるので、その中で、[OK]をクリックします。 インサート > モジュール .

  • 次に モジュール エディタウィンドウに、次のコードを入力します。
 Sub Open_with_File_Path() Dim Open_File As String: File_path = "C:\UsersUser﹑OneDrive﹑Sample" Dim wrkbk As Workbook Set wrkbk = Workbooks.Open(Filename:=File_path)エンドサブ。 

  • そして、閉じる モジュール ウィンドウに表示されます。
  • その後、次のページに進んでください。 表示 tab> マクロ .
  • をクリックします。 マクロを見る .

  • をクリックすると マクロを表示します。 は、先ほど作成したマクロを選択します。 ここでの名称は ファイルパスで開く をクリックします。 実行 .

  • それ以降は サンプル ファイルが開くことになります。

🔎 コードのブレークダウン

 Sub Open_with_File_Path() 

⮚ まず、サブプロシージャーに名前を付けます。 ファイルパスで開く .

 Dim Open_File As String: File_path = "C:♪Users♪User♪OneDrive♪Documents♪Sample♪" 

⮚ そして、そのファイルの場所を ファイル_パス 変数

 Dim wrkbk As Workbook 

⮚ そして、変数を宣言します。 ワークブック であり、そのタイプはワークブックである。

 Set wrkbk = Workbooks.Open(Filename:=File_path)を実行します。 

⮚ そして、その名の通り、ファイルを開く。 ファイル_パス ディレクトリ変数に設定し、そのファイルを ワークブック の変数になります。

 エンド・サブ 

⮚ 最後に、このコードのサブプロシージャを終了します。

続きを読む Excel VBAを使用してパスからワークブックを開く方法(4例)

1.2 ファイルパスを指定せずにワークブックを開く

次の方法では、メインファイルが保存されている親フォルダーからファイルを開きます。 このファイルは、コード内で場所を指定しなくても開くことができます。 このファイルは、親フォルダーと同じフォルダーにあればいいのです。

ステップス

  • 現在、親エクセルファイルが保存されているのと同じディレクトリに、別のファイルを保存しています。
  • ファイル名は1です。

  • まず デベロッパー タブをクリックし ビジュアルベーシック それがない場合は デベロッパー」タブを有効にする または、''を押すこともできます。 Alt+F11 ' を開くためのものです。 Visual Basic エディター .

  • 新しいダイアログボックスが表示されるので、その中で、[OK]をクリックします。 インサート > モジュール .

  • 次に モジュール エディタウィンドウに、次のコードを入力します。
 Sub Open_without_File_Path() Dim wrkbk As Workbook Set wrkbk = Workbooks.Open(Filename:="1.xlsx") End Sub 

  • その後 モジュール ウィンドウに表示されます。
  • その後、次のページに進んでください。 表示 tab> マクロ .
  • をクリックします。 マクロを見る .

  • マクロの表示]をクリックしたら、先ほど作成したマクロを選択します。 ここでの名称は ファイルパス無しで開く 次に、[実行]をクリックします。

  • を押した後 実行 という名前のファイルが開かれていることに気づくでしょう。
  • そして、これがExcelのVBAを使って変数名のワークブックを開く方法です。

🔎 コードのブレークダウン

 Sub Open_without_File_Path() 

⮚ まず、サブプロシージャーに名前を付けます。 Sub Open_without_File_Path()

 Dim wrkbk As Workbook 

⮚ 私たちは宣言します。 ワークブック をWorkbook型の変数として使用します。

 Set wrkbk = Workbooks.Open(Filename:="1.xlsx")を実行します。 

⮚ 親ディレクトリのファイルを開く。 1.xlsx .

 エンド・サブ 

⮚ 最後に、このコードのサブプロシージャを終了します。

1.3 ワークブックを読み取り専用で開く

この方法は、最初の方法とよく似ていますが、ここでは、ファイルを読み取り専用モードで開き、Excelファイル内のデータや値を変更することができないようにします。

ステップス

  • 開きたいファイルは、ドキュメントフォルダに保存されています。
  • そして、これが読み取り専用で開きたいファイルです。

  • まず デベロッパー タブをクリックし ビジュアルベーシック それがない場合は デベロッパー」タブを有効にする または、''を押すこともできます。 Alt+F11 をクリックすると、Visual Basic Editorが起動します。

  • すると、新しいダイアログボックスが表示されるので、その中の インサート > モジュール .

  • 次に モジュール エディタウィンドウに、次のコードを入力します。
 Sub Open_with_File_Read_Only() Dim wrkbk As Workbook Set wrkbk = Workbooks.Open("C:\Users³³User³³OneDrive³³Documents³³Sample", ReadOnly:=True) End Sub 
  • そして、閉じる モジュール ウィンドウに表示されます。
  • その後、次のページに進んでください。 表示 tab> マクロ .
  • をクリックします。 マクロを見る .

  • マクロの表示]をクリックしたら、先ほど作成したマクロを選択します。 ここでの名称は ファイル読み込み専用で開く をクリックします。 実行 .

  • をクリックすると 実行 をクリックすると、タイトルバーに表示されているように、ファイルが読み取り専用で開かれたことが確認できます。

🔎 コードのブレークダウン

 Sub Open_with_File_Read_Only() 

⮚ まず、サブプロシージャーに名前を付けます。 Open_with_File_Read_Only()

 Dim wrkbk As Workbook 

⮚ 私たちは宣言します。 ワークブック をワークブックタイプの変数として使用します。

 Set wrkbk = Workbooks.Open("C:♪Usersers ♪User ♪OneDrive ♪Documents ♪Sample", ReadOnly:=True) 

⮚ その後、指定されたディレクトリからファイルが開かれ、ファイルがセットされます。 リードオンリー を最後の引数で指定します。

 エンド・サブ 

⮚ 最後に、このコードのサブプロシージャを終了します。

続きを読む Excel VBAでワークブックを読み取り専用で開く方法

2.メッセージボックスの使用

先ほどの方法とほぼ同様に、ExcelのここのVBAコードでファイルを開くことができますが、今回はここに小さなメッセージボックスを組み込みます。

ステップス

  • まず デベロッパー タブをクリックし ビジュアルベーシック それがない場合は デベロッパー」タブを有効にする または、''を押すこともできます。 Alt+F11」です。 を開くためのものです。 Visual Basic エディター .

  • すると、新しいダイアログボックスが表示されるので、その中の インサート > モジュール .

  • 次に モジュール エディタウィンドウに、次のコードを入力します。
 Sub Open_File_with_Messege_Box() Dim path As String: path = "C:\Users³³³³Documents³³Sample.xlsx" If Dir(path) "" Then Workbooks.Open (path) MsgBox "The File Opened Successfully" Else MsgBox "Opening of The File Failed" End If End Sub 

  • そして、閉じる モジュール ウィンドウに表示されます。
  • その後、次のページに進んでください。 表示 tab> マクロ .
  • をクリックします。 マクロを見る .

  • をクリックすると マクロを表示します。 は、先ほど作成したマクロを選択します。 ここでの名称は ファイルを開く(メッセンジャーボックス付き をクリックします。 実行 .

  • すると、警告ボックスが表示され、次のように表示されました。 ファイルのオープンに成功しました .
  • をクリックします。 よっしゃー .

  • そして、ファイルが開かれたことが確認できます。

  • そして、コードを少し変えてみるのです。
  • というファイル名に変更します。 サンプル10 という名前のファイルはありません。 サンプル10 をドキュメントフォルダに保存します。

  • その後、私たちは 実行 というメッセージボックスが表示されます。 ファイルのオープンに失敗しました .
  • クリック よっしゃー この後

🔎 コードのブレークダウン

 Sub Open_File_with_Messege_Box() 

⮚ まず、サブプロシージャーに名前を付けます。 Open_with_File_Read_Only()

 Dim path As String: 

⮚ 私たちは宣言します。 ワークブック をWorkbook型の変数として使用します。

 If Dir(path) "" Then Workbooks.Open (path) 
 MsgBox "ファイルのオープンに成功しました" Else 

この行は、Sampleという名前のファイルがディレクトリにあるかどうかをチェックし、ファイルがある場合はファイルを開くと同時に、メッセージを表示します。

 MsgBox "ファイルのオープンに失敗しました" 

⮚ ファイル名がない場合 サンプル がディレクトリにある場合、このメッセージは配信されます。

 End If 

⮚ 最後に、このコードのサブプロシージャを終了します。

 エンド・サブ 

⮚ 最後に、このコードのサブプロシージャを終了します。

続きを読む VBAでワークブックを開き、マクロを実行する方法(4例)

3.ファイルを開くためのダイアログボックスの使用

VBAのコードで毎回ファイルのあるディレクトリを抽出してインポートするのはかなり面倒です。 この問題を解決するために、ダイアログボックスを使用して任意のディレクトリからファイルを選択する方法を紹介します。

ステップス

  • それでは、ファイルエクスプローラーのダイアログボックスを使用してファイルを開いてみます。
  • まず デベロッパー タブをクリックし ビジュアルベーシック それがない場合は Developerタブを有効にする または、''を押すこともできます。 Alt+F11」です。 を開くためのものです。 Visual Basic エディター .

  • 新しいダイアログボックスが表示されるので、その中で、[OK]をクリックします。 インサート > モジュール .

  • 次に モジュール エディタウィンドウに、次のコードを入力します。
 Sub Open_File_with_Dialog_Box() Dim Dbox As FileDialog Dim File_Path As String Dim wrkbk As Workbook Set Dbox = Application.FileDialog(msoFileDialogFilePicker) Dbox.Title = "Choose and Open " & FileType Dbox.Filters.Clear Dbox.Show If Dbox.SelectedItems.Count = 1 Then File_Path = Dbox.SelectedItems(1) End If Set wrkbk = Workbooks.Open(Filename:=File_Path) End Sub 
  • そして、閉じる モジュール ウィンドウに表示されます。
  • その後、次のページに進んでください。 表示 tab> マクロ .
  • をクリックします。 マクロを見る .

  • をクリックすると マクロを表示します。 は、先ほど作成したマクロを選択します。 ここでの名称は ファイルを開く ダイアログボックス付き をクリックします。 実行 .

  • そして、新しいウィンドウが開きます。 ファイルエクスプローラーのダイアログボックスで、以下を選択します。 サンプル をクリックします。 よっしゃー .

  • という名前のファイルを作成します。 サンプル をオープンしました。
  • そして、これがExcelのVBAを使って変数名のワークブックを開く方法です。

🔎 コードのブレークダウン

 Sub Open_File_with_Dialog_Box() 

⮚ まず、サブプロシージャーに名前を付けます。 Sub Open_File_with_Dialog_Box()

 Dim Dbox As FileDialog 

⮚ 私たちは宣言します。 Dボックス を変数として ファイルダイアログ タイプ

 Dim File_Path As String 

⮚ 私たちは宣言します。 ファイル_パス を変数として ファイル_パス として 文字列 タイプ

 Set Dbox = Application.FileDialog(msoFileDialogFilePicker) Dbox.Title = "選べて開く" & FileType 

1行目からダイアログボックスが表示されます。 次の行はダイアログボックス名とファイルタイプを表します。

Dbox.Title(ディーボックスタイトル はダイアログボックスのタイトルを設定します。 ファイルタイプ ファイルの種類を設定します。

 Dbox.Filters.Clear 

⮚ その Dbox.Filters.Clear ダイアログボックスに適用されている以前のフィルタをクリアします。

 Dbox.Show 

⮚ その Dbox.Show をクリックすると、ファイル上にダイアログボックスが表示されます。

⮚ この行は、ユーザーが複数のファイルを選択したかどうかを判断します。 もし、ユーザーが複数のファイルを選択した場合は、すべての手順が停止されます。

 エンド・サブ 

⮚ 最後に、このコードのサブプロシージャを終了します。

続きを読む Excel VBAでフォルダを開き、ファイルを選択する方法(4例)

4.Workbook.Addプロパティの使用

これまでの方法とは逆に、あらかじめ決められたディレクトリに新しいExcelファイルを作成し、そのファイルを ワークブック 追加 プロパティを使用します。

ステップス

  • まず デベロッパー タブをクリックし ビジュアルベーシック それがない場合は Developerタブを有効にする または、''を押すこともできます。 Alt+F11」です。 を開くためのものです。 Visual Basic エディター .

  • 新しいダイアログボックスが表示されます。 インサート > モジュール .

次に モジュール エディタウィンドウに、次のコードを入力します。

 Sub Open_File_with_Add_Property() Dim File_Path As String: File_Path = "C:\Users³³³³Documents³³Sample.xlsx" Dim wb As Workbook Set wb = Workbooks.Add(File_Path) End Sub 
  • そして、閉じる モジュール ウィンドウに表示されます。
  • その後、次のページに進んでください。 表示 tab> マクロ .
  • をクリックします。 マクロを見る .

  • をクリックすると マクロを表示します。 は、先ほど作成したマクロを選択します。 ここでの名称は ファイルを開くとプロパティが付く をクリックします。 実行 .

  • をクリックすると 走る。 をクリックすると、新しいファイルが作成され、開かれていることがわかります。

🔎 コードのブレークダウン

⮚ まず、サブプロシージャーに名前を付けます。 Sub Open_File_with_Add_Property()

⮚ そして、宣言します。 ファイル_パス という変数があります。 文字列 のタイプになります。

 Dim File_Path As String: File_Path = "C:♪Users ♪User ♪OneDrive ♪Documents ♪Sample.xlsx" 

⮚ そして、設定する。 ファイル_パス 変数にファイルの場所を指定します。

 Dim wb As Workbook 

⮚ 私たちは宣言します。 ダブリューダブリュー を変数として ワークブック のタイプになります。

 Set wb = Workbooks.Add(File_Path)を実行します。 

⮚ ワークブックは、そのディレクトリに保存されているものから追加されます。 ファイル_パス を使用している場所です。 ワークブック.Add プロパティを使用します。

 エンド・サブ 

⮚ 最後に、このコードのサブプロシージャを終了します。

続きを読む [修正!】オブジェクトワークブックのメソッドオープンに失敗する(4つの解決方法)

結論

要約すると、VBAを使用して変数名を持つワークブックを開く方法について、4つの異なる例でお答えしています。 VBAマクロ 方式は、事前に VBA関連 ゼロから理解するための知識

この問題では、これらの方法を実践できるマクロ対応のワークブックをダウンロードできます。

ご質問やご意見は、コメント欄からお気軽にお寄せください。 より良い製品作りのためのご提案があれば、ぜひお寄せください。 Exceldemy 社会的に高く評価される

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。