2

Excel 2010 で、スプレッドシートを開くと読み込まれるフォームを含む簡単なスプレッドシートを作成しました。従業員は必要なフォーム データを入力し、SaveAs メソッドを使用して [保存] ボタン マクロを押します。

私の質問は、保存されたコピーでフォームを無効にできるかどうかです。その理由は、簿記部門がデータを確認するためにコピーを開いたときに、フォームが読み込まれないようにしたいからです。

これを明確にするために、私のvbaコードは次のとおりです

Sub SaveAsButton()
Dim applicationUserName As String
Dim saveLocation As String
Dim fileName As String
Dim weekNo As String
Dim year As String

weekNo = ThisWorkbook.Sheets("Service").Range("M4").Value
Debug.Print (weekNo)
year = ThisWorkbook.Sheets("Service").Range("R4").Value
Debug.Print (year)
applicationUserName = Application.UserName
Debug.Print (applicationUserName)
saveLocation = "w:\Service Users\" & applicationUserName & "\Service\"
Debug.Print (saveLocation)
fileName = "Service" & "-" & weekNo & "-" & year & "-" & applicationUserName
Debug.Print (fileName)
fileName = Replace(fileName, " ", "")
Debug.Print (fileName)

ThisWorkbook.SaveAs (saveLocation & fileName)

End Sub

ありがとうございました。

4

2 に答える 2

2

最終的なワークブックにコードが必要ない場合は、.xlsx として保存するだけで、すべての vb コンポーネントを削除できます。

于 2013-06-05T10:46:05.127 に答える
2

あなたはそのために使いたいかもしれませんCustomProperties

まず、次を作成しますCustomProperty

ActiveWorkbook.CustomDocumentProperties.Add "Saved", False, msoPropertyTypeNumber, 0

CustomPropertyユーザーがフォームを保存するときに の値を に変更します1(次のコードを に追加しますSaveAsButton())。

ActiveWorkbook.CustomDocumentProperties("Saved").Value = 1

ActiveWorkbook.CustomDocumentProperties("Saved").Value = 0フォームを開くメソッドにcheck if を追加します。

于 2013-06-05T10:10:36.210 に答える