
セル値からフォルダー名を取得して、ある場所にフォルダーを作成するというものです。
下記を私のPCでは問題なく動作するのですが、
別のPCからは「パスが見つかりません」とエラーになります。
デバッグは「MkDir mydir」を指しています。
すべてのPCから実行可能にするためにはどの様にすればよろしいのでしょうか?
ご教授願います。
win10、excel2013
Sub フォルダー作成()
Dim mydir As String
Dim i As Integer
For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
mydir = "C:\Users\user\Desktop\test\" & Cells(i, 17).Value
If Dir(mydir, vbDirectory) = vbNullString Then MkDir mydir
Next i
MsgBox "完了しました"
End Sub
No.5ベストアンサー
- 回答日時:
ファイルやフォルダを扱うなら、FileSystemObjectが便利と思います。
作成したいフォルダのパスをmydirとして、それが存在しなければ作成します。
これでもだめでしょうか?
Sub test()
Dim mydir As String, i As Long
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
mydir = "C:/Google ドライブ/T/01_T/02_受注/" & Cells(i, 17).Value
If FSO.FolderExists(mydir) = False Then
FSO.CreateFolder mydir
End If
Next i
MsgBox "完了しました"
Set FSO = Nothing
End Sub
ご回答、ありがとうございます。
試しましたところ
パスがみつかりません
となり
デバックは
FSO.CreateFolder mydir
を指していました。
お忙しい中、申し訳ないです。
No.4
- 回答日時:
こんばんは。
>すべてのPCから実行可能にするためにはどの様にすればよろしいのでしょうか?
こんなふうにしてみたらいかがでしょうか?
Shell(command prompt)からも取る方法はあったはずですが、
CreateObject("Wscript.Shell").SpecialFolders
この方法がメジャーだと思います。
'//
Sub フォルダー作成R()
Dim myDir As String
Dim i As Integer
myDir = CreateObject("Wscript.Shell").SpecialFolders(4) & "\Test"
If Dir(myDir, vbDirectory) = "" Then
MsgBox "Testフォルダーがありません。", vbCritical
Exit Sub
End If
For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
myDir = myDir & "\" & Cells(i, 17).Value
If Dir(myDir, vbDirectory) = "" Then
MkDir myDir
End If
Next i
MsgBox "完了しました"
End Sub
ご回答、ありがとうございます。
当方マクロ初心者でして、
このプログラムもたまたまネット上で見つけてフォルダー位置を変更して利用しております。
実際のフォルダー位置でのプログラムは下記です。
申し訳ないですがもう少しお願いいたします。
Sub フォルダー作成()
Dim mydir As String
Dim i As Integer
For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
mydir = "C:/Google ドライブ/T/01_T/02_受注/" & Cells(i, 17).Value
If Dir(mydir, vbDirectory) = vbNullString Then MkDir mydir
Next i
MsgBox "完了しました"
End Sub
No.2
- 回答日時:
> 何故なんでしょうか?!
エラーの原因を探ってみては。
Sub フォルダー作成()
Dim mydir As String
Dim i As Integer
On Error Goto myErr
For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
mydir = "C:\Users\user\Desktop\test\" & Cells(i, 17).Value
If Dir(mydir, vbDirectory) = vbNullString Then MkDir mydir
Next i
MsgBox "完了しました"
Exit Sub
myErr:
MsgBox "エラー番号:" & Err.Number & vbCrLf & _
"エラーの種類:" & Err.Description, vbExclamation
End Sub
で、エラーが発生すると、エラーの番号、エラーの種類が取得できるハズなので、
MkDir 関数
https://msdn.microsoft.com/ja-jp/library/k1d22wf …
エラー番号が70ならアクセス権が無いとか。
エラー番号が75ならディレクトリが既に存在してるって事で、Ifの条件判断を確認とか。
ご回答ありがとうございます。
これを実行すると
エラー番号:76
エラーの種類:エラーパスがみつかりません
と表示されます。
一体なにが原因なんでしょうか。。。
No.1
- 回答日時:
MkDirは階層のあるフォルダを一気に作成できません。
> 別のPCからは「パスが見つかりません」とエラーになります。
"C:\Users\user\Desktop\test\"
のフォルダを予め作っといてください。
あるいは、下記のサイトのような方法で逐次フォルダを作るとか。
MkDirで階層の深いフォルダーを作成する:エクセルマクロ・Excel VBAの使い方-VBA関数
http://www.relief.jp/docs/excel-vba-mkdir-folder …
お答え、ありがとうございます。
> "C:\Users\user\Desktop\test\"
のフォルダを予め作っといてください。
もちろん別のPCにも同じ場所に同じフォルダがあるんですよ。
なのに、私のPCでしか動作しないのは何故なんでしょうか?!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
エクセルVBA フォームを開く時パスが見つからない
Visual Basic(VBA)
-
excel vba 他のパソコンでマクロを使用すると動かない(新規ブックにコピペができない)
Visual Basic(VBA)
-
-
4
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
5
昨日まで動いていたエクセルのマクロが急に動かなくなりました
Excel(エクセル)
-
6
会社のネットワーク上のファイルを開けない こんにちわ 今大変困ってます 会社のネットワーク上のファイ
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FFFTPで「フォルダを作成できま...
-
エクセルでマクロ。他のパソコ...
-
「サポートされないファイル フ...
-
デスクトップに移動すると自動...
-
excelの資料をURL化してweb上に...
-
ftp 接続先のフォルダのファイ...
-
アウトルックの添付ファイルを...
-
小さい写真・画像を鮮明に拡大...
-
ホームページのアップロードか...
-
p2p、torrentの事で質問です。...
-
一度しか表示されないページを...
-
さくらインターネットのレンタ...
-
excelデータをコンマ付きテキス...
-
無料レンタルサーバーがアクセ...
-
EXCELで複数個所に同時にファイ...
-
確定申告e-taxの保存データが読...
-
HPについて
-
携帯・PC両方から見られるHP
-
FFFTP アップロードしたURLの表示
-
ワードでHP製作中。マウスポ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一定期間内のYahoo! JAPAN IDの...
-
エクセルでマクロ。他のパソコ...
-
IEのエラーメッセージ URLは取...
-
FFFTPで「フォルダを作成できま...
-
XP-proとXP-home間でのファイル...
-
DMMのサンプル動画がみれない
-
FTP エラーコード451
-
プロフィールの編集について。
-
インテル PROSet/Wireless エラー
-
転送中にエラーが出ます
-
Outlookでアイテムを保存できま...
-
ページが進まない
-
ファイルのアップロードで・・・・
-
Movable Typeの設置について
-
「サポートされないファイル フ...
-
HTTP403エラーが表示されて...
-
FC2でHPの編集が出来ません。エ...
-
YOUTUBE編集中にエラー表示が出...
-
ネットで特定のホームページだ...
-
gooのページでエラーが発生
おすすめ情報
実際のプログラムは下記です。
宜しくお願い致します。
Sub フォルダー作成()
Dim mydir As String
Dim i As Integer
For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
mydir = "C:/Google ドライブ/T/01_T/02_受注/" & Cells(i, 17).Value
If Dir(mydir, vbDirectory) = vbNullString Then MkDir mydir
Next i
MsgBox "完了しました"
End Sub