Page 580 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼ファイルの検索して開く。なければ作る 飛影 03/1/20(月) 18:52 ┗Re:ファイルの検索して開く。なければ作る BOTTA 03/1/20(月) 20:18 ┗ありがとうございました! 飛影 03/1/21(火) 9:47 ┗自分自身が許さないので BOTTA 03/1/22(水) 0:32 ─────────────────────────────────────── ■題名 : ファイルの検索して開く。なければ作る ■名前 : 飛影 ■日付 : 03/1/20(月) 18:52 -------------------------------------------------------------------------
はじめて投稿します。飛影ともうします。 VBAを始めて間もない初心者です。 質問ですが、ファイルを検索(例200301.xls)して、あればそのファイルを開く。なければある特定のファイルを開いて保存(200301xls)してもう一度検索をかけるというマクロを作りたいのですが、どうしても実行エラー1004 ファイルにアクセスできません。というエラーが出てしまいます。 For i = 1 To 2 FileName = Format(Now(), "yyyymm") Application.DisplayAlerts = False '確認ダイアログを表示させない Application.ScreenUpdating = False '画面更新を中断する< On Error GoTo Err_chek ' フォルダ「MyDocuments」に指定したファイルがあるとき、ファイルを展開する Workbooks.Open FileName:= _ ActiveWorkbook.Path & "\DATA\" & FileName & ".xls" GoTo Owari Err_chek: ' フォルダ「MyDocuments」に指定したファイルがないとき、ファイルを新規作成して名前を付ける Workbooks.Open FileName:= _ "\My Documents\検討中\test.xls" Workbooks("test.xls").Activate ActiveWorkbook.SaveAs FileName:="\My Documents\検証中\DATA" & FileName & ".xls" Owari: Application.DisplayAlerts = True '確認ダイアログを表示する Workbooks("data" & FileName & ".xls").Close Next i どうやればうまく動くかわかりません。すいませんがわかる方がおられれば 教えてください。よろしくお願いします。 |
飛影さん、こんにちは。 : : >Err_chek: >' フォルダ「MyDocuments」に指定したファイルがないとき、ファイルを新規作成して名前を付ける >Workbooks.Open FileName:= _ >"\My Documents\検討中\test.xls" ↑"C:\My Documents\検討中\test.xls" 'ドライブ名がありません >Workbooks("test.xls").Activate >ActiveWorkbook.SaveAs FileName:="\My Documents\検証中\DATA" & FileName & ".xls" ↑'ここも >Owari: >Application.DisplayAlerts = True '確認ダイアログを表示する >Workbooks("data" & FileName & ".xls").Close ↑Workbooks("\DATA\" & FileName & ".xls").Close >Next i > とりあえず気づいたところ。検証してません。^^; 検証しました。 Sub Test() Dim Filename As String, myPath As String myPath = ActiveWorkbook.Path & "\" Filename = Format(Now(), "yyyymm") & ".xls" Application.DisplayAlerts = False Application.ScreenUpdating = False On Error GoTo Err_chek Workbooks.Open Filename:=myPath & Filename GoTo Owari Err_chek: Workbooks.Open Filename:=myPath & "test.xls" Workbooks("test.xls").Activate ActiveWorkbook.SaveAs Filename:=myPath & Filename Owari: Application.DisplayAlerts = True Workbooks(Filename).Close Application.ScreenUpdating = True '一応これも元に戻しましょう End Sub パスなどは、スペル間違いでつまずくと時間のロスなので変数に入れました。 |
BOTTAさん ありがとうございました。 きちんと動作してやりたいことが出来ました。 これからも質問をすると思いますがよろしくお願いします。 |
飛影さん、皆さんこんばんは。 上の例だと、引数の名前と変数の名前が重複しています。 変数名は、別のものに変えた方がいいです。 あまり気にしなくてもいいかもしれませんが、 私、個人的にはとても気になりますので、 これを見ていただいた方に、お詫びいたします。 |