2016-08-22 5 views
2

ボタンを押したときに特定のフォルダを開くファイルがあります。フォルダが既にか存在しているかどうかを確認し存在しない場合、任意のユーザーのデスクトップディレクトリにフォルダを作成します。

  1. 、それはフォルダ
  2. を開き、存在する場合は、フォルダを作成します:コードはに正しいディレクトリを見て知っている必要がありますので、私は他のユーザーにこのファイルを配布します

    If Dir("C:\Users\myUsername\Desktop\sampleFolder", vbDirectory) = "" Then 
          MkDir "C:\Users\myUsername\Desktop\sampleFolder" 
          retVal = Shell("explorer.exe C:\Users\myUsername\Desktop\sampleFolder", vbNormalFocus) 
        Else 
          retVal = Shell("explorer.exe C:\Users\myUsername\Desktop\sampleFolder", vbNormalFocus) 
    End If 
    

    私の主な問題は、私がfiguことができないということです。それはすでに存在し、これまでのところ

を作成した後、それを開けていない場合は、ここに私のコードの該当部分でありますファイルパス "C:\ Users __________ \ Desktop"に表示されるユーザーの実際のユーザー名を取得する方法を再確認してください

これは正しい方法ですか?コードは自分のユーザー名をコードに挿入すると機能しますが、ユーザー名を自動的に取得してコードをエンドユーザーに簡単に伝える方法は見つけられません。

答えて

2

Public Sub EnsureDesktopFolderExists(ByVal folderName As String) 
    Dim path As String 
    path = Environ$("USERPROFILE") & "\Desktop\" & folderName 
    If Len(Dir(path, vbDirectory)) = 0 Then MkDir path 
End Sub 
をお試しください

VBA Environ

1

私の主な問題は、私は、ファイルのパスに表示されるユーザーの実際のユーザ名を取得する方法を見つけ出すことができないということである「C:\ユーザー__________ \デスクトップ」

一般

Environ機能を(例外はおそらくありますが)動作するはずです、そしてあなたも、コードを少し凝縮することができます

Dim username$ 
Dim myFolder$ 
username = ENVIRON("username") 
myFolder = "C:\Users\" & username & "\Desktop\sampleFolder" 

If Dir(myFolder, vbDirectory) = "" Then 
    MkDir myFolder 
End If 

retVal = Shell("explorer.exe " & myFolder, vbNormalFocus) 
+1

宣言時に変数の最後に '$ 'が表示されるのはなぜですか?私はかつてそれを見たことがない。 – Kyle

+0

@kyle 'As String'の略記:) –

+1

++ nice、@Kyle [変数宣言]を参照(https://stackoverflow.com/documentation/vba/877/declaring-variables#t=20160822220156988865) – 0m3r

関連する問題