Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2019)
MkDirのエラーについて
投稿日時: 22/08/27 16:57:28
投稿者: TI

MkDirにて、フォルダの作成を行いたいと思っています。
 
フォルダの作成先は複数階層あるフォルダで、「C:\ユーザー」に配置を
しています。
 
この状態でMkDirを実行すると「パスが見つかりません。」というエラーが
出ます。
 
しかし、同じフォルダを「デスクトップ」や「Cドライブ直下」に配置をすると
フォルダを作成することができます。
 
「C:\ユーザー」にてMkDirを実行する際に追加しなければいけないコードが
あるのでしょうか。
 
 

回答
投稿日時: 22/08/27 20:55:45
投稿者: simple

特殊なフォルダなので、セキュリティの関係でできないようです。

回答
投稿日時: 22/08/29 09:04:46
投稿者: Suzu

まず、「C:\ユーザー」というフォルダ自体ありません。
本体は、C:\Users これを、Windows が ユーザー と見せているだけです。
なので、C:\ユーザー としても、エラーとなります。行うなら、C:\Users となります。
 
 
ただし、

引用:
フォルダの作成先は複数階層あるフォルダで、「C:\ユーザー」に配置をしています。

これは、C:\Users 直下に、新たにフォルダ を作成するという話でしょうか?
それとも、既存の、C:\Users\○○ にフォルダを作成する話でしょうか?
 
どちらにしても、作成したいパスの 親フォルダ におけるアクセス許可を確認してください。
 1.右クリック プロパティーで、フォルダのプロパティを表示。
 2.フォルダのプロパティウィンドのセキュリティタブ において
  VBA実行ユーザーに、アクセス許可として、「変更」の許可が与えられている必要があります。
 
 上記のアクセス許可について、詳しく判らないのであれば、いじらない方が良いです。
  simpleさんから 既に回答がある様に、「C:\Users」は 特殊なフォルダです。
 実行ユーザーの マイドキュメント等の、別なパスに変える事をお勧めします。

回答
投稿日時: 22/09/02 20:40:21
投稿者: simple

Suzuさんから懇切丁寧な回答がございました。
 
もう必要がなくなったり、興味を失ったのであれば、放置せずに閉じてもらえませんか?
それほど長考しないといけない話ではないと思います。

投稿日時: 22/09/04 10:00:51
投稿者: TI

Simple様 Suzu様
 
ご回答ありがとうございます。
 
他の方から頼まれて作業をしていた件でしたので、フォルダの配置場所の
変更ができるかなどの確認がなかなか取れず、ご返信できずにおりました。
 
フォルダの権限については、自分も完全に地震があるというわけでは
ないので、フォルダの配置場所の変更を第一とし、複数階層あるフォルダの途中の
フォルダがない場合の対策のため、以下のコードを作成し、依頼者に確認を
依頼中です。
 
Sub MakeFolder(Path As String)
Dim Ary() As String
Dim temp_Path As String
Dim i As Integer
 
    '「¥」で各フォルダ名を分割
    Ary = Split(Path, "\")
     
    'ドライブ名の代入
    temp_Path = Ary(0)
     
    For i = 1 To UBound(Ary)
     
        temp_Path = temp_Path & "\" & Ary(i)
         
        'フォルダの存在確認
        If Dir(temp_Path, vbDirectory) = "" Then
         
            'フォルダがない場合はフォルダ作成
            MkDir (temp_Path)
             
        End If
         
    Next
End Sub
 
一旦、解決済みとさせていただきます。