24

フォーム ボタンをクリックすると、ワークブックのコピーをユーザーのデスクトップに保存する必要がある Excel ワークブックがあります。

当初はすべてが共有ネットワーク フォルダーにある予定でしたが、現在は約 6 人のユーザーがいて、ボタンをクリックしたときにワークブックをそれぞれのデスクトップに保存する必要があります。

個々のユーザーを指定せずにマシンのデスクトップに保存する (コーディングに関して) 方法ですか (6 つの異なるワークブック ファイルを維持する必要があります)。

4

3 に答える 3

-3

これがまだ関連しているかどうかはわかりませんが、私はこの方法を使用しています

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
于 2015-03-15T11:33:06.637 に答える