Gallery
Excel - Power Query - Power Pivot - VBA
Share
Explore

Office Scripts pour Excel : Comparaison avec VBA

Introduction

Ce support de cours présente les concepts fondamentaux d’Office Scripts pour Excel, en établissant des parallèles avec VBA (Visual Basic for Applications). Ce document est conçu pour faciliter la transition des utilisateurs familiers avec VBA vers Office Scripts, la nouvelle solution d’automatisation pour Excel dans le cloud.

Table des matières

1. Présentation générale

Office Scripts

Office Scripts est une technologie d’automatisation moderne pour Excel basée sur TypeScript (sur-ensemble de JavaScript). Elle permet de créer et exécuter des scripts dans Excel Online et est particulièrement adaptée à l’environnement Microsoft 365.

VBA

Visual Basic for Applications (VBA) est le langage de script traditionnel pour les applications Office, utilisé principalement dans les versions bureautiques d’Excel. Il est basé sur Visual Basic et est intégré dans les applications Office depuis des décennies.

2. Configuration de l’environnement

Office Scripts

// Aucune configuration préalable requise
// Accessible via l'onglet Automatiser dans Excel Online
Étapes d’accès :
Ouvrir Excel Online via Microsoft 365
Cliquer sur l’onglet “Automatiser”
Sélectionner “Nouveau script”

VBA

' Nécessite l'activation du développeur
' Sub EnableDeveloper()
' MsgBox "Activer l'onglet Développeur via Fichier > Options > Personnaliser le ruban"
' End Sub
Étapes d’accès :
Activer l’onglet Développeur (Fichier > Options > Personnaliser le ruban)
Cliquer sur “Visual Basic” ou utiliser Alt+F11

3. Structure de base d’un script

Office Scripts

function main(workbook: ExcelScript.Workbook) {
// Le point d'entrée principal de votre script
// workbook représente le classeur actif
let sheet = workbook.getActiveWorksheet();
// Votre code ici
sheet.getRange("A1").setValue("Hello from Office Scripts");
// Pas besoin de sauvegarder explicitement
}

VBA

Sub Main()
' Le point d'entrée principal de votre macro
' ThisWorkbook représente le classeur actif
Dim sheet As Worksheet
Set sheet = ActiveSheet
' Votre code ici
sheet.Range("A1").Value = "Hello from VBA"
' Pas besoin de sauvegarder explicitement
End Sub

4. Variables et types de données

Office Scripts

function main(workbook: ExcelScript.Workbook) {
// Déclaration avec typage explicite
let age: number = 30;
let nom: string = "Jean";
let estActif: boolean = true;
// Déclaration avec inférence de type
let salaire = 50000; // TypeScript infère le type number
// Constantes
const TAUX_TVA = 20; // Ne peut pas être modifiée
// Tableaux
let nombres: number[] = [1, 2, 3, 4, 5];
let noms: string[] = ["Jean", "Marie", "Paul"];
// Objet
let employe = {
id: 101,
nom: "Dupont",
departement: "Marketing"
};
// Type any (similaire à Variant en VBA)
let donnees: any = "texte";
donnees = 42; // Valide car type any
}

VBA

Sub Variables()
' Déclaration explicite (recommandée)
Dim age As Integer
Dim nom As String
Dim estActif As Boolean
age = 30
nom = "Jean"
estActif = True
' Constantes
Const TAUX_TVA As Integer = 20 ' Ne peut pas être modifiée
' Tableaux
Dim nombres(1 To 5) As Integer
nombres(1) = 1
nombres(2) = 2
' Collection
Dim noms As New Collection
noms.Add "Jean"
noms.Add "Marie"
' Type Variant (par défaut si non spécifié)
Dim donnees As Variant
donnees = "texte"
donnees = 42 ' Valide car type Variant
End Sub

Comparaison des types de donnéesOffice Scripts (TypeScript)VBAnumberInteger, Long, Double, SinglestringStringbooleanBooleananyVariantarray[]Array, CollectionobjectType, Class, Dictionaryundefined/nullNothing

5. Opérateurs

Office Scripts

function main(workbook: ExcelScript.Workbook) {
// Opérateurs arithmétiques
let a = 10;
let b = 3;
let somme = a + b; // 13
let difference = a - b; // 7
let produit = a * b; // 30
let quotient = a / b; // 3.333...
let modulo = a % b; // 1
let puissance = a ** b; // 1000 (10^3)
// Opérateurs d'affectation
let x = 5;
x += 3; // x = x + 3
x -= 2; // x = x - 2
// Opérateurs de comparaison
let estEgal = (a == b); // false
let estStrictementEgal = (a === b); // false (vérifie type et valeur)
let estPlusGrand = (a > b); // true
// Opérateurs logiques
let et = (a > 5 && b < 5); // true (les deux conditions sont vraies)
let ou = (a > 20 || b < 5); // true (au moins une condition est vraie)
let non = !(a > b); // false (inverse de true)
}

VBA

Sub Operateurs()
Share
 
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.