人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルVBAからフォルダを作る際に同じ名前のフォルダが作成先のディレクトリに存在する場合、mkdirだと”パスが無効です”とエラーになります。作成先に同じ名前のフォルダがあるかどうか調べる方法と同じ名前のフォルダがあった場合に上書きする方法を教えてください。

●質問者: hidebroken
●カテゴリ:コンピュータ 趣味・スポーツ
✍キーワード:エクセル エラー ディレクトリ パス フォルダ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● nemuneko
●50ポイント

http://www.hatena.ne.jp/

はてな

’ディレクトリがあるかどうかを調べて

If Dir$(”c:¥temp”, vbDirectory) = ”” Then

’ない場合は、作成する。

MkDir ”c:¥temp”

End If

同じ名前のフォルダがあった場合に上書きする方法は調査中です。(ポイント半分でいいです)

できたら上書きする理由を教えてください。

◎質問者からの返答

ありがとうございます。ちょっとやってみます

上書きする理由は、一つフォルダを作った中にシート名を名前にしたフォルダを作り、その中にセルの内容が名前になったフォルダを作るからです。シートを増やした場合や削除した際に、フォルダの中身も更新したいと考えるからなんです。これだとわかりにくいでしょうか。


2 ● nemuneko
●50ポイント

http://www.hatena.ne.jp/1091947376#

エクセルVBAからフォルダを作る際に同じ名前のフォルダが作成先のディレクトリに存在する場合、mkdirだと”パスが無効です”とエラーになります。作成先に同じ名前のフ.. - 人力検索はてな

今度は上書きするほうですが、

上書きコピー

(サブディレクトリ含む)

Call Shell(”cmd.exe /c xcopy c:¥元 c:¥先 /s /y”, vbHide)

※蛇足※ オプション”/s /y”の使用方法については、コマンドプロンプトで ”XCOPY /?”と打ってみてください。

現にあるディレクトリを削除して再度作成する方法

’ディレクトリがあった場合

If Dir$(”c:¥temp”, vbDirectory) <> ”” Then

’サブディレクトリまで削除する。

Call Shell(”cmd.exe /c RmDir c:¥temp /S /Q”, vbHide)

MkDir ”c:¥temp”

End If

◎質問者からの返答

ありがとうございます!!できました!!

蛇足がむしろありがたいです。Shellとかその辺がよくわかりませんが(VBAではない部分なんでしょうか)、ちょっと調べてみます。とにかくありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ