Gérer les codes VBA du classeur activé par macro Excel.
Ajouter un module VBA en C#
Le code d’exemple suivant crée un nouveau classeur et ajoute un nouveau module VBA et un code de macro, puis enregistre la sortie au format XLSM. Une fois, vous ouvrirez le fichier XLSM de sortie dans Microsoft Excel et cliquerez sur les commandes de menu Développeur > Visual Basic, vous verrez un module nommé “TestModule” et à l’intérieur, vous verrez le code de macro suivant.
Sub ShowMessage()
MsgBox "Welcome to Aspose!"
End Sub
Voici le code d’exemple pour générer le fichier XLSM de sortie avec un module VBA et un code de macro.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create new workbook | |
Workbook workbook = new Workbook(); | |
// Access first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Add VBA Module | |
int idx = workbook.VbaProject.Modules.Add(worksheet); | |
// Access the VBA Module, set its name and codes | |
Aspose.Cells.Vba.VbaModule module = workbook.VbaProject.Modules[idx]; | |
module.Name = "TestModule"; | |
module.Codes = "Sub ShowMessage()" + "\r\n" + | |
" MsgBox \"Welcome to Aspose!\"" + "\r\n" + | |
"End Sub"; | |
// Save the workbook | |
workbook.Save(dataDir + "output_out.xlsm", SaveFormat.Xlsm); |
Modifier le VBA ou la macro en C#
Vous pouvez modifier le code VBA ou macro en utilisant Aspose.Cells. Aspose.Cells a ajouté l’espace de noms et les classes suivants pour lire et modifier le projet VBA dans le fichier Excel.
- Aspose.Cells.Vba
- VbaProject
- VbaModuleCollection
- VbaModule
Cet article vous montrera comment modifier le code VBA ou Macro à l’intérieur du fichier Excel source en utilisant Aspose.Cells.
Le code d’exemple suivant charge le fichier Excel source qui contient un code VBA ou Macro à l’intérieur
Sub Button1_Click()
MsgBox "This is test message."
End Sub
Après l’exécution du code d’exemple Aspose.Cells, le code VBA ou Macro sera modifié comme ceci
Sub Button1_Click()
MsgBox "This is Aspose.Cells message."
End Sub
Vous pouvez télécharger le fichier Excel source et le fichier Excel de sortie à partir des liens donnés.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create workbook object from source Excel file | |
Workbook workbook = new Workbook(dataDir + "sample.xlsm"); | |
// Change the VBA Module Code | |
foreach (VbaModule module in workbook.VbaProject.Modules) | |
{ | |
string code = module.Codes; | |
// Replace the original message with the modified message | |
if (code.Contains("This is test message.")) | |
{ | |
code = code.Replace("This is test message.", "This is Aspose.Cells message."); | |
module.Codes = code; | |
} | |
} | |
// Save the output Excel file | |
workbook.Save(dataDir + "output_out.xlsm"); |
Sujets avancés
- Ajouter une référence de bibliothèque au projet VBA dans le classeur
- Attribuer une macro à un contrôle de formulaire
- Vérifier si la signature numérique du code VBA est valide
- Vérifier si le code VBA est signé
- Vérifier si le projet VBA dans un classeur est signé
- Vérifier si le projet VBA est protégé et verrouillé pour la visualisation
- Copier le stockage de concepteur de formulaire utilisateur de macro VBA du modèle vers le classeur cible
- Signer numériquement un projet de code VBA avec un certificat
- Exporter le certificat VBA vers un fichier ou un flux
- Filtrer le projet VBA lors du chargement d’un classeur
- Découvrir si le projet VBA est protégé
- Protéger par mot de passe le projet VBA du classeur Excel