- ベストアンサー
Excel VBAで同じフォルダ内のファイルを開くには?
Windows2000、Excel2000を使用しています。 「経理」というフォルダに「見積」「請求」の2つのExcelファイルがあります。 「見積」から「請求」を開くマクロを作りたいのですが、どうすればいいでしょうか? 「経理」フォルダは場所が変わることがあるので、パスをどうすれば良いかがわからず苦しんでいます。 VBAはまったくの素人で、本を見ながら挑戦しているのですがうまくできないのです。 どうかよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
必ず「経理」というフォルダに「見積」「請求」の2つのExcelファイルがあると仮定。 以下ならどうでしょう? フォルダごと移動されても上記のお約束があれば大丈夫と思います。 以下の記述は「見積」に記述してください。 Sub BookOpen() Workbooks.Open Filename:=ThisWorkbook.Path & "\請求.xls" End Sub
その他の回答 (3)
- freezemoon
- ベストアンサー率39% (13/33)
おはようございます。 同一フォルダ内の別ファイルを開くには 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 ぼくもまったく同じようなことしてます^^
お礼
同じように見積と請求を使っていらっしゃるのですね。 自分の考えが非常識じゃないと分かり安心しました。(^^; ありがとうございました。
- papayuka
- ベストアンサー率45% (1388/3066)
見積.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
お礼
期待していた以上にスマートなものが作れそうです。 ありがとうございました。
- ogura_kei
- ベストアンサー率33% (115/346)
Dialogオブジェクトを使用するのではないでしょうか。たとえば、 Dialogs(wdDialogFileOpen).Show とすると、見慣れた[開く]のウィンドウが表示されるはずです。 詳しい使用方法は、EXCELのHELPを参照してください。
お礼
どうもありがとうございました。 便利に使えそうです。
お礼
そのままコピペさせていただきました。 助かりました、ありがとうございました。