
セル値からフォルダー名を取得して、ある場所にフォルダーを作成するというものです。
下記を私の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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- Excel(エクセル) 【マクロ】【VBA】同じフォルダ内にあるエクセルのデータを転記したい【ブック1からブック2へ】 9 2023/08/10 07:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IEのエラーメッセージ URLは取...
-
デジカメ写真のアップロードが...
-
エクセルでマクロ。他のパソコ...
-
FTP エラーコード451
-
ページが進まない
-
YOUTUBE編集中にエラー表示が出...
-
【マクロ】WEBシステムから保存...
-
デスクトップに移動すると自動...
-
ftp 接続先のフォルダのファイ...
-
ダウンロード途中停止
-
excelの資料をURL化してweb上に...
-
アップロードしたら画像が表示...
-
デジカメの画像の編集
-
無料ホームページ、ブログ内で...
-
HTMLファイルについて
-
Acrobat X Proの背景が点の格...
-
excelデータをコンマ付きテキス...
-
EXCELで複数個所に同時にファイ...
-
Excelファイルの限界は何MBまで?
-
確定申告e-taxの保存データが読...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DMMのサンプル動画がみれない
-
FFFTPで「フォルダを作成できま...
-
エクセルでマクロ。他のパソコ...
-
一定期間内のYahoo! JAPAN IDの...
-
IEのエラーメッセージ URLは取...
-
FTP エラーコード451
-
squid:リクエストされた URL は...
-
Outlookでアイテムを保存できま...
-
転送中にエラーが出ます
-
FTPにアップロードすると、エラ...
-
FTPでアップロード中に落ちる。
-
問題が発生したため?
-
PDFのファイルが壊れる?
-
無線LAN子機の抜き方
-
gooのページでエラーが発生
-
FTPソフトでアップロードしたフ...
-
ページが進まない
-
FC2レンタルサーバーでCGI設置...
-
DNSエラーの実際の問題
-
Execlの名称とバージョンを自動...
おすすめ情報
実際のプログラムは下記です。
宜しくお願い致します。
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