• ベストアンサー

Excel VBAで同じフォルダ内のファイルを開くには?

Windows2000、Excel2000を使用しています。 「経理」というフォルダに「見積」「請求」の2つのExcelファイルがあります。 「見積」から「請求」を開くマクロを作りたいのですが、どうすればいいでしょうか? 「経理」フォルダは場所が変わることがあるので、パスをどうすれば良いかがわからず苦しんでいます。 VBAはまったくの素人で、本を見ながら挑戦しているのですがうまくできないのです。 どうかよろしくお願いします。

noname#13076
noname#13076

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

  • ベストアンサー
  • GETSTREET
  • ベストアンサー率18% (14/74)
回答No.4

必ず「経理」というフォルダに「見積」「請求」の2つのExcelファイルがあると仮定。 以下ならどうでしょう? フォルダごと移動されても上記のお約束があれば大丈夫と思います。 以下の記述は「見積」に記述してください。 Sub BookOpen() Workbooks.Open Filename:=ThisWorkbook.Path & "\請求.xls" End Sub

noname#13076
質問者

お礼

そのままコピペさせていただきました。 助かりました、ありがとうございました。

その他の回答 (3)

回答No.3

おはようございます。 同一フォルダ内の別ファイルを開くには Sub FileOpen() '変数の宣言//////////////////////////////   Dim Wb As Workbook   Dim Fname As String  '開きたいファイル名格納用   Dim PathName As String '見積ファイルが入っているフォルダのパス格納用 '////////////////////////////////////////   Set Wb = ActiveWorkbook   Fname = "請求.xls" PathName = Wb.Path   If Right(PathName,1)="\" then   Workbooks.Open Filename:=PathName & Fname   Else     Workbooks.Open Filename:=PathName & "\" & Fname   End If End Sub ぼくもまったく同じようなことしてます^^

noname#13076
質問者

お礼

同じように見積と請求を使っていらっしゃるのですね。 自分の考えが非常識じゃないと分かり安心しました。(^^; ありがとうございました。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

見積.xls が保存されている。 請求.xls は見積.xls と同じフォルダ内にある。 見積.xls にマクロを作成しそこから 請求.xls を開く。 以上の条件なら、パスは Thisworkbook.Path で取れます。 例は 請求.xls を操作しやすいように、Open時にWorkbook型変数に代入しています。 Sub Test() Dim wb As Workbook, FName As String FName = ThisWorkbook.Path & "\請求.xls" On Error GoTo ER: Set wb = Workbooks.Open(FName)  MsgBox wb.FullName & "を開きました。" & vbCrLf _   & "アクティブシート名は、" & wb.ActiveSheet.Name & " です。" & vbCrLf _   & "A1の値は「" & wb.ActiveSheet.Range("A1").Value & "」です。" & vbCrLf _   & "では" & wb.Name & "を閉じます。"  wb.Close  Exit Sub ER:   MsgBox "何らかのエラーが起こりました。", vbCritical, "エラー" End Sub

noname#13076
質問者

お礼

期待していた以上にスマートなものが作れそうです。 ありがとうございました。

  • ogura_kei
  • ベストアンサー率33% (115/346)
回答No.1

Dialogオブジェクトを使用するのではないでしょうか。たとえば、 Dialogs(wdDialogFileOpen).Show とすると、見慣れた[開く]のウィンドウが表示されるはずです。 詳しい使用方法は、EXCELのHELPを参照してください。

noname#13076
質問者

お礼

どうもありがとうございました。 便利に使えそうです。

関連するQ&A

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

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

  • VBAでフォルダにあるエクセルファイルを開く

    こんにちは このコードがうまく動かないのですが、 どこがいけないのかわからなく助けてください。 なおフォルダの中には******データ.xlsと言うファイルがあり、アスタリスク部分は日付が不規則に変化して上書きされるのです。 このファイルを開くマクロを作りたいのですが。 うまく行きません。 よろしくおねがいします。 Sub excelopen() ' ' Dim エクセル As String 'エクセル = Dir(ActiveWorkbook.Path & "\*データ.XLS") If エクセル = "" Then Exit Sub エクセル = ActiveWorkbook.Path & "\" & エクセル Workbooks.Open Filename:=エクセル End Sub

  • VBAでパスを取得しファイル名を入力するには

    EXCEL2003です。同じフォルダにVBAマクロとデータのcsvファイルがあります。このとき、マクロでパスを取得し、次にcsvファイル名を手入力あるいはそのフォルダの詳細表示からファイルをクリックすればデータを取り込めるようにしたいのですが、どなたかマクロを教えてくれないでしょうか。か。

  • VBA サブフォルダ内のエクセルファイル転記

    VBAについてお尋ねします。 当方VBA初心者です。 やりたい事は下記です。 ・サブフォルダ(2階層目)に入っているエクセルファイルからマクロ実行ファイルにセルデータを転記 ・全てのサブフォルダを網羅 サブフォルダに対しての扱いが難しくて理解に困ってます。 サルプルなどありましたらいただけると幸いです。 よろしくお願いします。

  • VBAでエクセルからエクセルのファイルを開くには?

    D:\に db1.mdb Book1.xls があります。 db1.mdbのフォームのコマンドボタンをクリックして Book1.xlsを開きたいのですが VBAコードをご教授いただけますか? (マクロではなくVBAコードが知りたいです) エクセルからエクセルのファイルを開くなら Workbooks.Open ファイルのフルパス で出来ました。 ご回答よろしくお願いします。

  • シンクライアントでのVBAによるファイル保存

    ExcelのテンプレートファイルにVBAマクロを記述しています。 VBAにより新しいブックを開き、データを作り込んだ後、テンプレートファイルが置かれているフォルダに保存するマクロを作成しました。 リッチクライアント上では問題なく動くのですが、シンクライアント上で実行すると、  ActiveWorkbook.SaveAs Filename:='フルパスのファイル名'  ※フルパスのファイル名は、"C:\folder\file.xlsx"というような形式になっています。 のところでエラーになってしまいます。 パス付きのファイル名について、作法があるようでしたらお教えいただけますか。 よろしくお願い致します。

  • エクセル VBA ファイルをフォルダへ移動させる

    エクセル VBA 手探り状態です。 001大企業.xls、001中小企業.xls、003大企業.xls、003中小企業.xls、008大企業.xls、008中小企業.xls・・・・というファイルが300ほど企業種類という名前のフォルダにあります。 VBAで企業種類という名前のフォルダの中に、001、003、008・・・というフォルダは作成しました。 (ネットで”フォルダ作成”を検索して、、、自力ではVBAは書けません) それを001という名前のフォルダへは、001大企業.xls、001中小企業.xlsのファイル、003という名前のフォルダへは003大企業.xls、003中小企業.xlsのファイルを、008フォルダへは008大企業.xls、008中小業.xlsファイルを・・・というように、マクロで移動させたいのです。 これらのファイル、フォルダは全て、企業種類というフォルダの中にあります。 VBAを教えていただけましたら嬉しいです。

  • エクセルのVBAで開いているファイルと同じフォルダのファイルを開きたいとき

    エクセルのVBAで開いているファイルと同じフォルダのファイルを開きたいのですが、どうしても上手くいきません。 いろいろなフォルダやパソコンに移動しても使えるように C:\フォルダ1\TEST.XLS という指定ではなく、「今開いているファイルと同じフォルダから開く」ということはできますか? 上手く説明ができていなくて申し訳ありませんが、 もしよろしければ教えてください。

  • 特定のフォルダー内のエクセルファイルを開くVBA

    たとえば C:\My Documents\データ というフォルダーには20~30のエクセルファイルが入っています ファイルの名前は「えくせる なんばー101」などという名前になっています 「えくせる なんばー」までは共通で「101」の部分はそれぞれランダムな数字が入っています ランダムなファイル名なのでファイルを捜して開くのが大変です インプットボックスなどで 「101」の部分を入力すれば該当ファイルが開くような マクロを作りたいのですが (続きナンバーにして フォルダの整列をすれば捜しやすいのですが ネットワーク上の共有フォルダなので勝手にファイル名を変えることが出来ないのです) VBA初心者なのでよろしくお願いします

  • オープンできないexcelファイルからVBAを取り出せるか?

    自宅でEXCEL2000でVBAを作成しました。FDで仕事場に持ち込むと EXCELオープン→マクロの有効→強制終了 になってしまいます。マクロを無効としても同じです。 このサイトの過去の質問で「開けないエクセルのデータを取り出すことができる」とありましたが、エクセルファイルに組み込んであるVBAのコードは取り出せることが可能なのでしょうか??よろしくお願いします。 ちなみにデータは外部参照やワードで開いて取り出すことができました。 OS:WIN95 B EXCEL:2000 (9.0.3821 SR-1)

専門家に質問してみよう