[[20230213181256]] 『メッセージ:ファイルが存在しません。』(のむじゅん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『メッセージ:ファイルが存在しません。』(のむじゅん)

皆様、こんばんは。
お忙しいところ、申し訳ございません。
一点、ご教示頂きたいことがございまして
書き込みをさせて頂きました。

以下のようなvbaを作りましたところ、作業用ファイルと言うファイルが存在しません。
指定のフォルダに該当のファイルを入れて実行し直してください。と言うメッセージが出てしまいます。
どこを、チェックすれば宜しいのでしょうか?
宜しければ、ご教示頂けましたら、幸いです。

本当に、お手数をお掛け致します。

sub sample3()

 Dim Filepath As String
 Dim FileName As String
 Dim wb As Workbook

'ファイルの入っているフォルダをパス設定

 Filepath = ThisWorkbook.Path & ”¥¥〇〇.〇〇.co.jp¥〇〇部門¥〜作業用”
’と言うように該当のファイルがある↑パスを入力
 FileName = "作業用ファイル.xlsm"

'コピー元のブックが存在するか確認
If Dir(Filepath & "\" & FileName)=""Then
’既に開いていたら、メッセージを表示して、Subを抜ける。
MsgBox FileName & ”と言うファイルが、存在しません。” &vbCrLf &
"指定のフォルダに該当のファイルを入れて実行し直してください”
Exit SuB

 End If

'既に開いているかをチェック
For Each wb In Workbooks

 If wb.Name = FileName Then
   '既に開いていたら、メッセージを表示して、SUBを抜ける。
MsgBox FileName & ”は、既に開いています”
Exit SuB 
 End If
 Next wb

’コピー元のブックを開く
Workbooks.Open FilePath & "\作業用ファイル.xlsm”
’データをコピー
Workbooks(FileName).Worksheets(”Sheet3").Range("A2:T80").Copy_
Workbooks(ThisWorkbook.Name).Worksheets(”Sheet1").Range("A2")

"コピー元のブックを閉じる(セーブしない)
Workbooks(FileName).Close savechanges:=Falce
End sub

< 使用 Excel:Microsoft365、使用 OS:Windows11 >


[[20230213152118]] 『別ブックで2つの別ブックを操作する。』(のむじゅん)
 新しく始めないで こっちお片付けしようよ・・・

 ところどころ全角だし、ファイルのアドレスもネットワークパスをThisworokbookのパスにつなげるようになってるし

 確認の仕方であれば、どっかにStop入れて、ローカルウィンドウで
 Filepath
 の中身が、思った通りのパスなのかちゃんと確認してみてください。
https://www.excelspeedup.com/vbadebug/
(稲葉) 2023/02/13(月) 18:25:09

稲葉さん
こんばんは。お忙しいところ、もう一つのご質問の方も、見てくださいまして、有り難うございました。仰るとおりなんですよね。学校に通うとか、オンライン講座も考えたのですが、時間を作れなくて、この有様です。
稲葉さんからご指摘頂きました「ファイルのアドレスもネットワークパスをThisworkbookのパスにつなげるようになってる」の意味が理解しきれず、ネットで調べても、良く分からなかったですし…1からやり直してみますね。ちなみに、ご指摘戴いた部分は、初心者でも、分かるレベルですか?

本当に、ご指摘有り難うございました。
(のむじゅん) 2023/02/13(月) 21:13:50


パスでしたら、エクスプローラーで実際のフォルダを開けた状態で
パス表示部分を。ポチ、すれば、青色に反転してコードでそのまま
使えるパスが表示されますよ。コピペしてOK。^^;
m(__)m
(隠居Z) 2023/02/13(月) 21:32:51

横からですが何点か。

■1
提示されたコードはどうやって作成しましたか?
既に指摘があるように、大文字小文字がごちゃまぜになっているところを見ると、手打ちだったりしませんか?
可能ならば、VBE(エディタ)からコピペされると、つまらないタイプミスで手戻りとかしなくて済むと思います。

■2
また、実際のコードはどうなのか知りませんが、少なくとも提示されたコードはまともに【インデント】が付いていません。
最終的には個人の好きにすればよいですが、適切なインデントを付けると、コード全体の構造が把握しやすくなりご自身のデバッグ作業に寄与すると思いますので、とりあえず【インデント】を付けるようにされることをお勧めします。

とりあえず、提示されたコードを若干修正しつつ、私なりにインデントを付けてみました。

    Sub sample3()
        Dim Filepath As String
        Dim FileName As String
        Dim wb As Workbook

        'ファイルの入っているフォルダをパス設定
        Filepath = ThisWorkbook.Path & "¥¥〇〇.〇〇.co.jp¥〇〇部門¥〜作業用"
        'と言うように該当のファイルがある↑パスを入力

        FileName = "作業用ファイル.xlsm"

        'コピー元のブックが存在するか確認
        If Dir(Filepath & "\" & FileName) = "" Then
            '既に開いていたら、メッセージを表示して、Subを抜ける。
            MsgBox FileName & "と言うファイルが、存在しません。" & vbCrLf & "指定のフォルダに該当のファイルを入れて実行し直してください"
            Exit Sub
        End If

        '既に開いているかをチェック
        For Each wb In Workbooks
            If wb.Name = FileName Then
                '既に開いていたら、メッセージを表示して、SUBを抜ける。
                MsgBox FileName & "は、既に開いています"
                Exit Sub
            End If
        Next wb

        'コピー元のブックを開く
        Workbooks.Open Filepath & "\作業用ファイル.xlsm"

        'データをコピー
        Workbooks(FileName).Worksheets("Sheet3").Range("A2:T80").Copy_
        Workbooks(ThisWorkbook.Name).Worksheets("Sheet1").Range ("A2")

        'コピー元のブックを閉じる(セーブしない)
        Workbooks(FileName).Close savechanges:=Falce
    End Sub

■3
>「ファイルのアドレスもネットワークパスをThisworkbookのパスにつなげるようになってる」の意味が理解しきれず

  Filepath = ThisWorkbook.Path & "¥¥〇〇.〇〇.co.jp¥〇〇部門¥〜作業用"

↑をよ〜〜〜く見て、「Filepath」に何が格納されるか考えてみてはどうでしょうか?

 考えてもわからないなら、【ステップ実行】して「Filepath」に何が格納されるのか調べてもよいですね。(稲葉さん指摘済)

■4
>〜〜と言うメッセージが出てしまいます。
【ステップ実行】して、どのような処理の流れになっているか(想定通りの動きになっているか)確認されてはどうでしょうか?

※ステップ実行という言葉を聞いたことがなければ↓を読んでみてください。

 【ステップ実行】
https://www.239-programing.com/excel-vba/basic/basic023.html
http://plus1excel.web.fc2.com/learning/l301/t405.html

 【ブレークポイント】
https://www.239-programing.com/excel-vba/basic/basic022.html
https://www.tipsfound.com/vba/01010

また、↓も覚えておいて損は無いと思います。

 【イミディエイトウィンドウ】
https://www.239-programing.com/excel-vba/basic/basic024.html
https://excel-ubara.com/excelvba1/EXCELVBA486.html

 【ローカルウィンドウ】
https://excel-ubara.com/excelvba4/EXCEL266.html
http://excelvba.pc-users.net/fol8/8_2.html

(もこな2) 2023/02/13(月) 21:43:16


 >ちなみに、ご指摘戴いた部分は、初心者でも、分かるレベルですか?
 初心者と一括りにするのはいささか強引ではありますが・・・
 覚える速度も人それぞれですし、調べ方=デバッグさえわかればそのうちわかると思いますよ。

 どんな達人でも、一発でミスなく書き上げるのは難しいと思うので、パスの確認あたりは
 イミディエイトウィンドウで
 ?ThisWorkbook.Path & "\\〇〇.〇〇.co.jp\〇〇部門\〜作業用"
 のように、「?」をつけて感じで打ち込んで、ほしい値が返ってくるかチェックしてると思います。

 時間が取れないなら勉強時間をもらえるよう、上司にお願いするのも
 いいかもしれないですね!
 自分が上司なら快く快諾すると思いますよ!結果出れば!
(稲葉) 2023/02/14(火) 08:30:55

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.