トップページ |
EXCEL VBA |
ACCESS VBA |
VBA 開発相談 |
VBA開発室 鹿児島ワイズ は、
・VBAの操作入門
・VBAの開発代行
をご提供しています。
|
|
トップページ >> EXCEL VBA >> 014.同じフォルダ内にある指定ブックを開く 1/2
|
同じフォルダ内にある指定ブックを開く 1/2
|
マクロで別のエクセルブックを開くことは可能です。
しかし、別のエクセルブックを開くことは簡単ではありません。
なぜなら、開きたいブックがどこにあるか(=パス)を指定しないといけないからです。
このパスは、Windows のバージョンによっても異なりますので、難しいことはあまり考えたくありません。
そこで最も簡単な方法として、
マクロが記載されているブックと同じフォルダにあるブックを開く ようにフォルダを指定していくことをオススメします。
その方法とは以下のように記載していくことです。

@ Workbooks.Open は英語の通り、ワークブックを開きなさい の意味です。しかし、これだけでは、どのワークブックを開くか分かりません。そこで、
A Workbooks.Open Filename:=ThisWorkbook.Path & "/" & fname の意味を考えましょう。
ThisWorkbook.Path も英語の通り、“このワークブックのパス” という意味です。これは、マクロを記載しているブックがある場所 を意味しています。
前述したように、マクロを実行するブック と マクロによって開きたいブックを同じフォルダに置けば 当然に、ThisWorkbook.Path は両ブックとも同じとなります。つまり、開きたいブックのパスはこれで取得できたのと同じです。
次に ThisWorkbook.Path & "/" & fname とあります。 & は “(文字列を)つなげる” の意味です。 また、"/" はこの場合 フォルダを意味します。 fname は文字型の変数で、この変数には book14.xls が代入されていますので、結果として Filename は
Filename:=C\://user/book14.xls と同値になります。(book14.xlsをCドライブ直下のuserフォルダに保存している場合)
book14.xls が 元のブックと同じフォルダにあれば 無事開かれるはずです。
緑枠で囲われた部分ですが、 これは記載の決まり と思い込んでください。 ブックを開くには常にこのように書く と思い込んでください。それくらい頻繁に記載します。
If Dir(ThisWorkbook.Path & "/" & fname) <> "" Then
とは、 C\://user/book14.xls が 存在する場合に If 文内のことを実行しなさい という意味です。
(If 文内の ○○ <> "" とは、○○が空白でない(=○○が存在しない でない => ○○が存在する) という意味です。)
よって If 文 が成り立つ以上 必ず指定ブックを開くことができるのです。
次へ
|
|
トップページ >> EXCEL VBA >> 次のページへ
|
|