[[20170223104228]] 『フォルダの中を表示する』(さゆり) ページの最後に飛ぶ

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

 

『フォルダの中を表示する』(さゆり)

こんにちわ。エクセルマクロをご教授下さい。
フォルダ(A2)の中身を全て表示する
フォルダ名(A2)が存在しない場合は、「フォルダが存在しません」とメッセージを表示する。
よろしくお願いします。

     A            B         C
1  フォルダ名
2 C\さゆり
3

< 使用 Excel:Excel2010、使用 OS:Windows7 >


ヘルプやWeb検索で、Dir関数について調べてみてください。
マクロの基本形みたいなものなので、まずは自力解決してみてください。
作ってみて、問題が出て、調べても試してもどうしても納得がいかないような場合に、質問してみましょう。
(???) 2017/02/23(木) 11:23

???さん
 Sub SSS()

    保管場所 = Sheets("menu").Range("O25")

     ChDir 保管場所
     Application.Dialogs(xlDialogOpen).Show
 End Sub

ここまでできました。
エラーの場合(On Error Resume Next)
例えば 保管場所が存在しない場合、”保管場所が存在しません”とメッセージをだしたいのですが
うまくいきません。
どうすればよろしいですか?

(さゆり) 2017/02/23(木) 12:47


 On Errorステートメント
http://officetanaka.net/excel/vba/statement/OnError.htm

 を参考にしてみてください。
(bi) 2017/02/23(木) 13:05

On Error は使わない方が良いです。 Dir関数の第2引数指定で、ディレクトリも対象にできるので、これで存在チェックしてはいかがでしょうか。

 Sub SSS()
    Dim 保管場所 As String

    保管場所 = Sheets("menu").Range("O25")

    If Dir(保管場所, vbDirectory) = "" Then
        MsgBox 保管場所 & " が存在しません。", vbCritical, "エラー"
        Exit Sub
    End If

     ChDir 保管場所
     Application.Dialogs(xlDialogOpen).Show
 End Sub
(???) 2017/02/23(木) 17:12

 もし、xlDialogOpen を使うのであれば、初期フォルダや、必要であれば、ファイル形式も指定できますので
 ??? さんのコードの

     ChDir 保管場所
     Application.Dialogs(xlDialogOpen).Show

 ここを以下のように記述することも可能です。
 対象フォルダがカレントドライブとは異なる場所にある場合は ChDir だけでは
 切り替えができませんし、フォルダがネットワークドライブにある場合は、ややこしいコードが必要ですので。

    With Application.FileDialog(msoFileDialogOpen)
        .InitialFileName = 保管場所
        .Show
    End With

( β) 2017/02/23(木) 19:50


コメント返信:

[ 一覧(最新更新順) ]


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