【VBA】Excel2000でのフォルダ指定方法

このQ&Aのポイント
  • VBA初心者向けにExcel2000でのフォルダ指定方法について解説します。
  • Summary.xlsにLog.xlsの内容をコピーするマクロを作りたいが、相対パスで指定する必要があります。
  • Summary.xlsを基準にした相対パスでLog.xlsを開く方法を教えてください。
回答を見る
  • ベストアンサー

【VBA】フォルダ指定の方法【Excel2000】

独学で学んでいるVBA初心者です。 Summary.xlsにLog.xlsの内容をコピーするマクロを作りたいと思っています。 しかしDataフォルダは一定の場所にあるわけではないので相対パスで指定したいと思っています。 いろいろ自分なりに調べて Workbooks.OpenText Filename:=ActiveWorkbook.Path & "\..\Log\Log.xls" と記述したのですがLog.xlsが見つかりませんとエラーがでてしまいます。 (図中のData,Summary,Logはフォルダ名です。) Summary.xlsを基準にした相対パスでLog.xlsを開きたい時にどう記述すればいいのか どなたかご教授下さい、お願いします。

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

  • ベストアンサー
  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.3

EXCEL2000でもEXCEL2003でも以下のパスでできましたよ。 aazz12さんと同じ(ActiveWorkbookはThisWorkbookと同様)だと思うので 何か勘違いしているような気がします? Workbooks.OpenText Filename:=ThisWorkbook.Path & "\..\log\Log.xls"

aazz12
質問者

お礼

すみません、今一度よく確認してみたらそれで通りました。 おっしゃるとおり、どこか勘違いしていたのかもしてません;;

その他の回答 (2)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

失礼 ChDir ThisWorkbook.Path Workbooks.OpenText Filename:="..\Log\Log.xls" でよかったです。

aazz12
質問者

お礼

回答ありがとうございます。 無事開くことができました!

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

ChDir ThisWorkbook.Path ChDir "..\Log" Workbooks.OpenText Filename:="Log.xls" でいかがですか。

関連するQ&A

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

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

  • エクセル vba サブフォルダ名

    申し訳ございませんが、教えて下さい。 新規フォルダ内に 1.xls とフォルダBが存在し、B内にフォルダK、Jが存在します。 【新規フォルダ】    |_______★1.xls    |    |_______【B】      |      |________【K】      |     |________★KKK.xls      |      |________【J】            |________★JJJ.xls .LookInを使用して【B】以下を検索し、 ★KKK.xls★JJJ.xls のデータを1★1.xls Sheet2へ順次貼り付ける予定です。 FileName = ActiveWorkbook.Name (←★1.xlsなので\新規フォルダまでのパス) .LookIn =FileName で検索は可能なのですが、どうしても★1.xlsを見てしまいます。 FileName の値を \新規フォルダ\B にするか、1.xlsを除くエクセルファイルを検索する にプログラムを組みたいのですが、どうすれば宜しいでしょうか・・・・・。 以上、宜しくお願い致します。

  • VBAで名前を付けて保存

    テキストファイルをエクセル出力する処理を考えております。 テキストファイルを開き、名前をつけて保存する処理が上手くできません。 シート1のある2つのセルに入力パスと出力パスが設定されているとします。 例えばcells(4,4)に入力パスが設定されており(¥~~~.txt) cells(6,4)に出力パスが設定されており(¥~~~xls) 上記のような状態とします。 cells(4,4)にあるテキストファイルを開き、 それを拡張子をエクセルにしてcells(6.4)にある出力先に名前をつけて保存をしたいのです。 オープンする場合は Workbooks.OpenText Filename:=Workbooks("○○.xlsm").Sheets(1).Cells(4, 4).Value & ".TXT" で上手くいきました。 しかし保存の際に ActiveWorkbook.SaveAs Filename:=Sheets(1).Cells(6, 4).Value & ".xls" で実行するとエラーがでてしまいます。 どうすれば良いでしょうか。

  • EXCEL/VBA:WORDファイルの上書き保存を確認する方法

    以下のvbaを実行すると、次のように動作します。   test1.xlsを開いて、Atest1.xlsの名前で保存するときに、既にファイルが存在する場合、excelでは上書き保存するか聞いてきます。  しかし、test1.docを開いて、Atest1.docの名前で保存するときは、いきなり上書き保存されます。 wordの場合も上書き保存するか聞くようにするには、どうしたら良いか教えてください。 Workbooks.OpenText Filename:="test1.xls" ActiveWorkbook.SaveAs Filename:="Atest1.xls" ActiveWindow.Close Dim wordApp As Word.Application Dim wordDoc As Word.Document Dim wordRange As Word.Range Set wordApp = New Word.Application wordApp.Visible = True Set wordDoc = wordApp.Documents.Open(ThisWorkbook.Path & "\test1.doc") Set wordRange = wordDoc.Content wordDoc.SaveAs Filename:="Atest1.doc" wordDoc.Close wordApp.Quit

  • エクセルVBAでの呼出操作をマクロ化するには?

    エクセルVBAでの呼出操作をマクロ化するには? エクセル2000です。宜しくお願いします。 VBAで、ファイルを呼び出したいのですが、Workbooks.openの書き方が良く分かりません。 呼び出すファイル名は決まっていなくて、フォルダ名は固定です。 エクセルの操作で言うと、ファイルを開くを押して、フォルダを選ぶとこまでをマクロかしたいのですが。 例えば、ドライブDの「作業用」フォルダを開きたい場合は、どう記述すれば宜しいでしょうか? 基礎的な部分でお恥ずかしいのですが、以下で実行しても動かんのです。 ChDir "D:\作業用" Workbooks.OpenText Filename:= "D:\作業用\*.*"

  • EXCEL2000でのVBAについて

    お世話になります。 EXCEL2000のVBで下記のことをしたいのですが、うまく出来ないところがあり対処方法を教えて頂きたいです。 (1)アクティブブックの名前を取得   (2)ブックのセルA1の値を取得 (3)保存ダイアログでA1の値をファイル名にし保存 (4)保存したファイルを閉じる (5)基のアクティブブックを再度開く 以上です。 今できていないのは(1)と(5)です。 基のアクティブブックの名前をプログラム上に直接入力する分には出来るのですが、 ファイル名が変更になった時に、いちいちVBを書き換えるのが面倒なだけです… コードを提示しますので、ご教授願えればと思います。 Sub 保存() Dim ファイル名 As String, フォルダ名 As Object, フォルダ選択 As Object, ファイル名2 As Workbook Set ファイル名2 = ActiveWorkbook ファイル名 = Range("A1").Value Set フォルダ選択 = CreateObject("Shell.Application") Set フォルダ名 = フォルダ選択.BrowseForFolder(0, "保存フォルダを選んでください", 1) ActiveWorkbook.SaveAs Filename:=フォルダ名.items.Item.Path & "\" & ファイル名 & ".xls" MsgBox ファイル名 & ".xls", vbOKOnly, フォルダ名 & "に保存しました" Workbooks.Open "C:\test\" & ファイル名2 Workbooks(ファイル名 & ".xls").Close End sub ファイル名の取得が間違っていると思うのですが、ネットなどで調べてみましたが、よくわかりませんでした。

  • VBA 1004 エラー

    前月まで動いたVBAが 今月下記デバックのエラーがでてしまいましたが、どのようなエラーか分かりません。 どなたか教えてください。 microsoft365に切り替わっていますが、そのせいでしょうか Workbooks.OpenText Filename:=ThisWorkbook.Path & "\" & DnTxFl, _ Origin:=932, StartRow:=1, DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), Array(794, 1), Array(1000, 1)), TrailingMinusNumbers:=True

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

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

  • EXCELVBAでONEDRIVE上への保管方法 

    EXCEL ファイルの VBAで、 OneDrive上の ファイルを コピーして XLSX および XLS旧フォーマット 両方の 保存形式で ファイルを 保管しようとしています。 WINDOWS8.1 EXCEL2013 を 使用しています。 ONEDRIVE上へ、コピー作成する同名ファイルがなく、 新規のファイルを コピー作成する場合は 『Microsoft Excelは動作を停止しました。』 というエラーが (ファイルをコピー作成していますが)、 出てしまいます。 上書きする場合は エラー がでない模様です。 ' Sub 旧EXCEL形式保管() ' Application.DisplayAlerts = False ' Dim PathName, FileName1, FileName2, FileName3 As String ' PathName = ActiveWorkbook.Path FileName1 = "テスト.xlsx" FileName2 = "テストCOPY旧.xls" FileName3 = "テストCOPY新.xlsx" ' Workbooks.Open Trim(PathName) & "\" & Trim(FileName1) Windows(Trim(FileName1)).Activate ' ActiveWorkbook.SaveAs Filename:=Trim(PathName) & "\" & Trim(FileName3) ActiveWorkbook.Close ' Workbooks.Open Trim(PathName) & "\" & Trim(FileName1) Windows(Trim(FileName1)).Activate ' If Application.Version < 12 Then ActiveWorkbook.SaveAs Filename:=Trim(PathName) & "\" & Trim(FileName2), FileFormat:=xlExcel9795 Else ActiveWorkbook.SaveAs Filename:=Trim(PathName) & "\" & Trim(FileName2), FileFormat:=xlExcel8 End If ' ActiveWorkbook.Close ' End Sub ' より効率的な VBA記述、 エラーへの対処方法 を 教えていただけないでしょうか? よろしく お願いします。

  • 【Excel】「リンクを更新する」のダイアログを表示させないようにするには

    教えて下さい! AAA.xlsとBBB.xlsというファイルがあります。 AAA.xlsを開くと自動的にBBB.xlsが開くようになっています。 BBB.xlsにはグラフがあり、AAA.xlsからデータを読んでいるため「リンクを更新しますか?」というダイアログが表示されてしまいます。 これを表示させないようにするにはどういう記述をしたらよろしいでしょうか? AAA.xlsを開く際にBBB.xlsも開くように、AAA.xlsに以下のように記述してあります。 ================================================================ Sub Auto_open() Workbooks.Open Filename:=ThisWorkbook.Path & ("\BBB.xls") Workbooks("AAA.xls").Worksheets("Sheet1").Activate End Sub ================================================================ その記述に付け加える形になると思うのですが。 宜しくお願い致します。