• ベストアンサー

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

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

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

  • ベストアンサー
  • 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
質問者

お礼

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