セル値からフォルダー名を取得して、ある場所にフォルダーを作成するというものです。
下記を私の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ランキング
-
DMMのサンプル動画がみれない
-
FTP エラーコード451
-
FFFTPで「フォルダを作成できま...
-
office 2007 インストールできない
-
FTPにアップロードすると、エラ...
-
HTTP403エラーが表示されて...
-
デスクトップに移動すると自動...
-
スクロールさせないと収まらな...
-
excelデータをコンマ付きテキス...
-
Excelファイルの限界は何MBまで?
-
googleやyahooの地図を切り取っ...
-
画像をURLに変換(http://××)...
-
一度しか表示されないページを...
-
Bingのホームページの壁紙を保...
-
excelの資料をURL化してweb上に...
-
Error550って何でしょう
-
ftp 接続先のフォルダのファイ...
-
アウトルックの添付ファイルを...
-
文字の入力方法
-
MacにおけるWordの使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DMMのサンプル動画がみれない
-
FFFTPで「フォルダを作成できま...
-
Outlookでアイテムを保存できま...
-
IEのエラーメッセージ URLは取...
-
FTP エラーコード451
-
エクセルでマクロ。他のパソコ...
-
squid:リクエストされた URL は...
-
転送中にエラーが出ます
-
Microsoft Word 2002 のエラー
-
404エラー 画像がアップロード...
-
FTPでアップロード中に落ちる。
-
プロフィールの編集について。
-
office 2007 インストールできない
-
FTPにアップロードすると、エラ...
-
DNSエラー
-
FTPソフトでアップロードしたフ...
-
「サポートされないファイル フ...
-
パソコン画面が突然真っ青にな...
-
HTTP403エラーが表示されて...
-
PDFで作られたホームページ...
おすすめ情報
実際のプログラムは下記です。
宜しくお願い致します。
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