• ベストアンサー
  • 困ってます

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

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

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数680
  • ありがとう数4

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連する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入り)の位置は動かすものとするので絶対パスでの指定はなしとします) どなたかご教授お願いします.

  • ExcelVBAでカレントディレクトリのファイルを開く方法は?

    ExcelVBAでファイルを開くとき、 Workbooks.OpenText Filename:="D:\DataDir\TestFile.txt" とフルパスを指定すれはファイルを開けますが、パス指定なしでカレントディレクトリ(VBAを起動したExcelファイルがあるディレクトリ)のファイルを開くためにはどうしたらいいんでしょうか? 教えてください。ちなみにExcel2000を使っています。

  • VBAで「ファイルを開く」ダイアログボックスにパスは指定できますか?

    エクセルVBAでプログラミングをしています。 「ファイルを開く」ダイアログボックスを開くときに、パスを指定して開くことは可能でしょうか? ご存じの方、教えてください。 エクセルは、Excel2000、Excel98などを使用しています。

その他の回答 (1)

  • 回答No.1

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

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

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

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

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

  • 他のExcelファイルのVBAコードを検索したい

    他のExcelファイルに書かれたVBAコードに、ある特定のキーワード(パス名など)が使われているかを自動的に調べるためのVBAを書きたいと思っています。 仕事で使っているマクロが書かれたExcelファイルからある特定の処理をしているマクロを含むものを検索したいのですが、検索するExcelファイルが膨大なため、順番にExcelファイルを開いてVBAコードをチェックしていく工程をマクロ化したいのです。ファイルを順に開いていく処理はマクロ化できるのですが、書かれたVBAコードのチェックをどうしたらよいか悩んでいます。 「VBAコードに対して検索する」または「VBAコードを1行ずつ変数に代入する」、「モジュールシートをテキストファイルに出力する」などの処理が自動化できれば対応できそうなのですが、そのような処理をExcelVBAで作成できるでしょうか。 なお環境はWindowsXPのExcel2003です。 よろしくお願いいたします。

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

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

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

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

  • VBAで別エクセルファイルから指定エクセルファイルにシートをコピー

    Office2003のエクセルでVBAを勉強しております。 そこで、VBAで別エクセルファイルからあるシートを指定エクセルファイルへ丸まるコピーしたい場合にはどのようにすればよいのでしょうか?

  • Excel VBAでファイル オープン時のイベント

    Excelファイルを開く際、イベントを発生したいのですが可能でしょうか? 通常だと、開くファイルにイベントを記述するとおもいますが、ExcelファイルAを 起動しておくと、ファイルB、ファイルCを開いた際に、ファイルB、ファイルCを 開いたイベントを取得したいのです。 イベントは、ファイルAに記述することになります。 Excel上にハイパーリンクで他のExcelファイルをリンクしています。 リンクを開くとハイパーリンクのあるファイルが下になってしまい、次のファイル が開きにくいため、開いたファイルのサイズ、位置を修正したいためです。 以上 よろしくお願いします。

  • エクセルのマクロとVBAについて

    まだあまり多用していないのですが、エクセルでは使っていくアイコンを指定することで(それを利用することで)、マクロを組みそれがエクセルのVBAで記述されるということですが、その逆エクセルのVBAで記述したプログラムを動作に対応したアイコン等の流れで示すことは出来るのでしょうか?もしあったらどのような方法でしょう?

  • エクセルVBAでVBAの修正は出来るのでしょうか?

    エクセルVBAでVBAの修正は出来るのでしょうか? あるエクセルファイルにマクロを組み込んでいます(ユーザーフォームも使用)。 このエクセルファイルを複数個フォルダ内にコピーしています。 このコピーした全てのファイルのマクロの修正をVBAで出来ないかと考えています。 修正箇所はモジュール内のコード修正、モジュールの追加、既存のユーザーフォームにボタン等の追加等です。 エクセルは2003を使用しています。 どなたか教えてください。

  • エクセルVBA 他のファイルからデータをコピー

    エクセルVBAについて質問があります。お詳しい方、ご教授頂ければ幸いです。 A,B2つのエクセルのファイルがあります。例えばファイルAのセル「A10」から下を、(ファイルBを開かずに)ファイルBのセル「A10」から下のデータに置き換えたいのですが、どのようにすれば良いでしょうか。 また、ファイルAから「ファイルを開く」ダイアローグを表示させてファイルBを指定したいのですが、この場合の方法もよろしければ教えて頂けませんでしょうか。 よろしくお願いいたします。