フォーム ボタンをクリックすると、ワークブックのコピーをユーザーのデスクトップに保存する必要がある Excel ワークブックがあります。
当初はすべてが共有ネットワーク フォルダーにある予定でしたが、現在は約 6 人のユーザーがいて、ボタンをクリックしたときにワークブックをそれぞれのデスクトップに保存する必要があります。
個々のユーザーを指定せずにマシンのデスクトップに保存する (コーディングに関して) 方法ですか (6 つの異なるワークブック ファイルを維持する必要があります)。
これがまだ関連しているかどうかはわかりませんが、私はこの方法を使用しています
Public bEnableEvents As Boolean
Public bclickok As Boolean
Public booRestoreErrorChecking As Boolean 'put this at the top of the module
Private Declare Function apiGetComputerName Lib "kernel32" Alias _
"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function GetUserID() As String
' Returns the network login name
On Error Resume Next
Dim lngLen As Long, lngX As Long
Dim strUserName As String
strUserName = String$(254, 0)
lngLen = 255
lngX = apiGetUserName(strUserName, lngLen)
If lngX <> 0 Then
GetUserID = Left$(strUserName, lngLen - 1)
Else
GetUserID = ""
End If
Exit Function
End Function
この次のビットは、ファイルを PDF として保存しますが、それに合わせて変更できます
Public Sub SaveToDesktop()
Dim LoginName As String
LoginName = UCase(GetUserID)
ChDir "C:\Users\" & LoginName & "\Desktop\"
Debug.Print LoginName
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\" & LoginName & "\Desktop\MyFileName.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub