VBAの困った はVBA開発室で研究してみませんか? VBA作成も格安で承っております。

VBA開発室 鹿児島ワイズ:メインバナー
 トップページ
 EXCEL VBA
 ACCESS VBA
 VBA 開発相談

VBA開発室 鹿児島ワイズ は、

 ・VBAの操作入門

 ・VBAの開発代行

をご提供しています。

 登録無料!相互リンクはココをClick

   オススメリンク

  ・VBA開発室 鹿児島ワイズ

  ・パソコン修理専門店 Y's

  ・パソコン買援隊

  ・鹿児島パソコン教室 ワイズ

  ・激安データリカバリー専門店

  ・鹿児島学習塾WISE

  ・売れるホームページ!鹿児島SEO

  ・LAN工事 鹿児島

 
トップページ >> 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 >> 次のページへ


All rights reserved to VBA開発室 鹿児島ワイズ