特定のブックを開くマクロ
マクロ 11回
指定したフォルダのブックを開くマクロ
たとえば、documentフォルダ内のExcel_Sampleフォルダにある、Book1.xlsxを開くマクロを、記録してみましょう。
以下のようになります。
(サンプルファイルは、こちらから マクロ講座11回サンプルデータ)
ブックを開くマクロを記録
あらかじめ指定フォルダにBook1.xlsxを作成してあります。
このファイルを開くマクロを記録してみましょう。
このファイルを開くマクロを記録してみましょう。
マクロの記録ボタンをクリックします。
記録するマクロの名前をつけます。
メニューのファイルをクリックします。指定したフォルダに作成しておいた、Book1.xlsxを開きます。
Visual Basicを開いたて、記録されたコードをみてみましょう。
コードはこのようになっています。
それでは、マクロの中身を見てみましょう。
これが、Dドライブの『顧客データ』というフォルダであれば、
Sub ブックを開く() Workbooks.Open Filename:="C:\Users\ユーザー名\Documents\Excel_Sample\Book1.xlsx" Windows("macro_kouza_11.xlsm").Activate End SubWindows("macro_kouza_11.xlsm").Activateの部分は、マクロの記録を終了するために、記述された部分ですから、不要です。
これが、Dドライブの『顧客データ』というフォルダであれば、
Sub ブックを開く() Workbooks.Open Filename:="D:\顧客データ\Book1.xlsx" End SubだけでOKです。
任意のファイル名を指定して開く
ここまでは、簡単に理解できたと思います。
でも、これでは、たくさんある顧客データの限定されたファイルしか、 開くことができません。
ファイル名を指定して開く
『D:\顧客データ』
Dドライブにある、顧客データフォルダに、ブックが 以下のようにあると 仮定して、B1セルに、名前を入れると、そこに入れた名前をもとに ブックを開くように変更してみましょう。
でも、これでは、たくさんある顧客データの限定されたファイルしか、 開くことができません。
ファイル名を指定して開く
『D:\顧客データ』
Dドライブにある、顧客データフォルダに、ブックが 以下のようにあると 仮定して、B1セルに、名前を入れると、そこに入れた名前をもとに ブックを開くように変更してみましょう。
表のB1セルにファイル名を入れて、マクロを実行すると、
そのブックを開くというわけです。
そのブックを開くというわけです。
元になるコードは、
メソッドの部分はそのままで、変更するのは、
D:\顧客データ\Book1.xlsx の
名前の部分『Book1』のところだけです。
『Book1』をB1セルの内容を表すように書き換えます。
B1セルの内容を表すのは「 & Range("B1").Value & 」という記述ですが、 これをファイル名を示す文字列として認識させる必要があります。
マクロの記述では「""」で囲むと、その部分は文字列として認識されます。
\顧客データ\" & Range("B1").Value & ".xlsx"
Sub ブックを開く() Workbooks.Open Filename:="D:\顧客データ\Book1.xlsx" End Sub記録されたマクロでは、 Workbooks.Openメソッドを使っています。
メソッドの部分はそのままで、変更するのは、
D:\顧客データ\Book1.xlsx の
名前の部分『Book1』のところだけです。
『Book1』をB1セルの内容を表すように書き換えます。
B1セルの内容を表すのは「 & Range("B1").Value & 」という記述ですが、 これをファイル名を示す文字列として認識させる必要があります。
マクロの記述では「""」で囲むと、その部分は文字列として認識されます。
\顧客データ\" & Range("B1").Value & ".xlsx"
Sub ブックを開く() Workbooks.Open Filename:="D:\顧客データ\Book1.xslx" End Sub以下のように変更
Sub ブックを開く() Workbooks.Open Filename:="D:\顧客データ\" _ & Range("B1").Value & ".xlsx" End Sub以上で、B1セルに入力した名前をもとに、その名前のブックを開くマクロが作成できました。
Excel2003のファイルであれば、Book1.xls です。
Sub ブックを開く() Workbooks.Open Filename:="D:\顧客データ\" _ & Range("B1").Value & ".xls" End Sub
B1セルにファイルの名前を入力するのが面倒なときは、
入力規制でリストからファイルを選択するようにすれば良いでしょう。
B1セルに入力する名前は、実在するファイルなら何でもかまいませんし、 フォルダの場所を変更すれば、どこのフォルダのファイルでも開くことができます。
今日の講義は以上です。お疲れ様でした。
B1セルに入力する名前は、実在するファイルなら何でもかまいませんし、 フォルダの場所を変更すれば、どこのフォルダのファイルでも開くことができます。
Sub ブックを開く2() Workbooks.Open Filename:= _ "D:\顧客データ\" & Range("B5").Value & ".xlsx" End Sub
今日の講義は以上です。お疲れ様でした。