• ベストアンサー

ExcelのVBAで他のファイルを起動する時の指定

ExcelのVBAで他のファイルを起動する時の指定 ExcelのVBAで他のファイルを起動する時の指定の仕方で、 例えば同ディレクトリや一つ下の階層のファイルとかの場合、 フルパス以外で簡単に指定する方法はあるのでしょうか? 現在フルパスにて記述しているのですが、 ファイルを移動したりした時に、またそちらでのフルパスに 修正しないといけなくなるので手間がかかって困っています。 何かいい方法はないでしょうか? Excelは2000を使っています。

  • compq
  • お礼率84% (105/124)

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

一体、どういう内容なのか、コードを見てみないと、ご自身の技術的な問題なのか、テクニック上の問題なのか、はっきり言えません。下位フォルダと一緒に移動させる場合は、以下のようにしていますが、「指定」というだけでは、明確な判断は付きかねます。 つまり、対話型にするなら、Dialog やGetOpenFilename メソッドを使うこともあるからです。 例: 同じフォルダなら、本来、そのまま何も書く必要もありません。 下位フォルダなら、以下のようにします。 Sub MyTest1() Dim myPath As String  myPath = ".\TestFolder\" '自ブックの下位フォルダという意味(先頭にピリオドを入れる)  Workbooks.Open myPath & "Test1.xls" End Sub

compq
質問者

お礼

なるほど! ありがとうございました。

その他の回答 (1)

  • hoiho11
  • ベストアンサー率15% (8/53)
回答No.1

同じ階層の場合は Thisworkbook.Path & "\ファイル名.拡張子" で指定 サブフォルダーがある場合は Thisworkbook.Path & "\フォルダー名\ファイル名.拡張子" で指定 Thisworkbookとはマクロを含んでいる自ブックのことでありそのパスをさします これはフルパスが返ってくるのでブックをOpenできるのです 試しに Msgbox Thisworkbook.Path を実行してみましょう

compq
質問者

お礼

ご回答ありがとうございます。 教えて頂いた方法で試してみたのですが、 何故かその箇所でデバッグエラーが出て実行できませんでした。 何度もタイプミスが無いか確認したのですが。 何故でしょうか…。

関連するQ&A

  • ExcelVBAでファイルを開くフォルダ指定方法

    ExcelのVBAを用いて実験データのcsvファイルをまとめるプログラムを書いています. 肝心のプログラムはほぼできています. しかし OpenfileName = Application.GetOpenFilename("CSVファイル,*.csv?") としたときに開かれるフォルダ(ファイルを指定するフォルダ)がカレントフォルダ?となっております. 実行するExcel(VBA入り)と実験データが下記のパスにあったとして C:\Users\ABC\Documents\Data\110302\ カレントフォルダはなぜかマイドキュメントがデフォルトになってしまいます. C:\Users\ABC\Documents\ 階層移動できるので問題なくもないのですが,一々階層移動するのも面倒なので修正したいと考えております. そこで (1)プログラム実行直前にカレントフォルダを実行するExcel(VBA入り)の位置に変更する方法 (2)カレントフォルダと関係なく実行するExcel(VBA入り)があるフォルダを開く方法 どちらかで対処できると考えたのですがその方法が見つかりません. (ちなみに実行するExcel(VBA入り)の位置は動かすものとするので絶対パスでの指定はなしとします) どなたかご教授お願いします.

  • エクセルVBAで相対パスでファイルを読み込めない

    こんにちは。 標題の通りです。 現在、エクセルのVBAを使用してちょっとしたものを作成しているのですが、 相対パスを使用して他のファイル(DATファイル)を読みこませようとしています。 しかし、どうにもうまくいかなかったのです。 最初は問題なく読み込めていましたが、あるとき突然パスが見つかりませんとの エラーメッセージが出るようになりました。 結局、開いているブックの絶対パスを取得するという方法にして思っている結果 は得られることができましたが、どうにも不思議なので質問しました。 コードは以下のように記述していました。 Open "..\ディレクトリ\ファイル.dat" For Input As #1 上記ではだめなのでしょうか? VBでは問題なかったような気がします。

  • エクセルファイルの起動が遅い

     今、仕事でエクセルを使用しています。前任者が作成したエクセルファイルが急に起動が遅くなり困っています。そのファイルはVBAが使用されています。原因として考えられるのが、そのファイルをコピー、別名で保存し、少しVBAを修正していたら急に遅くなったので、その作業に問題があったのかもしれません。なおコピー元、コピー先の2つのファイルとも起動時時間がかかります。(ファイルサイズは大きくありません。) なお立ちあがればさくさく動きます。起動時と終了時非常に時間がかかるんです。また起動中タスクマネージャーで見るとCPU100パーセントになっています。(他のエクセルファイルは普通に動きます。この特定のファイルのみ遅いのです。) PC初心者です。よろしくおねがいします。

  • ACCESS2000 VBAでのファイル名指定

    お世話になります。 先日、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=383826 こちらの質問で、フォームのコマンドボタンからExcelファイルをACCESSテーブルへインポートする方法を教えていただきました。 で、新たに分らないことがでてきました。 回答で教えていただいた参考URLで、ファイル(Excelファイル)を指定するのに >strxls = "C:\My Documents\sample_127.xls" となっておりました。データベースが置いてあるフォルダと同じフォルダを参照したくて、 strxls = "sample_127.xls" とだけ入れてみたんですが(これでカレントディレクトリを見てくれるだろうと思っていたんですが)、実際に動かしてみると、マイドキュメントのフォルダを参照していました。 カレントディレクトリを参照させるには、どうしたらよいでしょうか。 やはり、フルパスを記述するしかないのでしょうか。

  • EXCEL2000のVBAで、ディレクトリを指定するダイアログボックスを出したい

    VBA歴日も間もない者です。仕事上でVBAをいろいろいじくっています。 Excel2000VBAで、ディレクトリの指定をできるダイアログ画面はないのでしょうか? ユーザーにディレクトリを入力してもらいたいのですが、方法としては、1)直接手で打ってもらうか、2)ダイアログで指定できるようにするかにしたいのですが、あいにく Application.Dialogs(xlDialogOpen).Show Application.GetOpenFilename で「ファイルを開く」でディレクトリを割り出す方法しか分かりませんでした。 できれば、ディレクトリ指定のダイアログ画面をだしたいのですけど、他に方法があれば教えてください。よろしくお願いします。

  • エクセルVBAでの画像印刷について。

    エクセルVBAにて、JPG画像ファイルを印刷するにはどのように記述すればいいのでしょうか? JPG画像ファイルをフルパスで指定して印刷できればベストです。 宜しくお願い致します。

  • ハイパーリンクで開いたエクセルファイルの画面分割またはエクセル起動時にファイル指定で自動実行

    お世話になります。 イントラネットの内HPでエクセルファイルをハイパーリンクで開いて共有利用しています。大変便利なのですがブラウザー内だと画面の分割が出来ない?ようです。もし出来るようでしたら教えていただきたいのですが… それが無理ならパイパーリンクの記述にエクセル自身を記述し、実行時ファイルを指定して起動させたいのですが、記述方法がありますか?

  • VBAからEXCELの新規ファイルを作成する

    VB6.0 Excel2000を使用しています。 VBAからEXCELファイルを参照する方法は前回教えていただきましたが 新規にEXCELファイルを作成する方法がわからないので教えてください。 【やりたいこと】 ・ファイル名は、ダイアログボックスから入力され、フルパスで変数に  格納されています。 ・シート名は固定文字で指定します。 (↑ここまではできています) (↓ここからわかりません) ・セルの内容を編集したあと、指定のファイル名・シート名で保存したい よろしくお願いします。

  • エクセルVBAのファイルが開けなくなりました

    比較的長くて複雑なVBAを含むエクセルのファイルが開けなくなりました。ファイルが開いた状態で砂時計がずっと回ったままです。 おそらくVBAで誤った記述をしたまま、無理に閉じてしまったからではないかと 思うのですが、このファイルを何とか開く方法はありますでしょうか?

  • Excelで他Excelファイルのセルの値をVBAで参照したい時

    こんにちは。 Excelで他Excelファイルにあるセルの値をVBAで参照したい時って、 場所をどう指定したらいいのでしょうか。 やろうとしている事ですが、 c:\1.xlsに記述するVBAで c:\2.xlsのsheet1のA1の値を参照して、 それとc1.xlsのsheet1のA1の値が一致した時に、 c:\2.xlsのsheet1のB1の値を、 C:\1.xlsのsheet1のB1に書き出そうとしています。 派遣就業先でAccessで作ればいいものを なぜか社員の方たちでExcelで作ってしまったため、 そのメンテに四苦八苦しています。(笑) ご存知の方ぜひ教えてください。 よろしくお願いします!

専門家に質問してみよう