Formulaires de saisie de données dans Microsoft Excel. Utiliser MS Excel

Maison / Windows 7

De nombreux utilisateurs d'Excel ne voient pas la différence entre les concepts de « format de cellule » et de « type de données ». En fait, ces concepts sont loin d’être identiques, même s’ils sont certainement liés. Découvrons quelle est l'essence des types de données, dans quelles catégories ils sont divisés et comment vous pouvez les utiliser.

Un type de données est une caractéristique des informations stockées sur une feuille de calcul. Sur la base de cette caractéristique, le programme détermine comment traiter une valeur particulière.

Les types de données sont divisés en deux grands groupes : les constantes et les formules. La différence entre elles est que les formules génèrent une valeur dans une cellule, qui peut changer en fonction de la façon dont les arguments dans d'autres cellules changent. Les constantes sont des valeurs constantes qui ne changent pas.

À leur tour, les constantes sont divisées en cinq groupes :

  • Texte;
  • Données numériques ;
  • Date et heure ;
  • Données logiques ;
  • Des valeurs erronées.

Découvrons plus en détail ce que représente chacun de ces types de données.

Valeurs de texte

Le type de texte contient des données de caractères et n'est pas traité comme un objet par Excel calculs mathématiques. Ces informations sont principalement destinées à l'utilisateur et non au programme. Le texte peut contenir n’importe quel caractère, y compris des chiffres, à condition qu’il soit formaté de manière appropriée. Dans le langage DAX, ce type de données fait référence à des valeurs de chaîne. La longueur maximale du texte est de 268435456 caractères dans une cellule.

Pour saisir une expression symbolique, vous devez sélectionner la cellule de texte ou de format général dans laquelle elle sera stockée et saisir le texte à l'aide du clavier. Si la longueur d'une expression textuelle dépasse les limites visuelles d'une cellule, elle est alors superposée à ses voisines, bien qu'elle continue physiquement à être stockée dans la cellule d'origine.

Données numériques

Les données numériques sont utilisées pour les calculs directs. C'est avec eux qu'Excel effectue diverses opérations mathématiques (addition, soustraction, multiplication, division, exponentiation, extraction de racine, etc.). Ce type de données est destiné exclusivement à l'écriture de nombres, mais peut également contenir des caractères auxiliaires (%, $, etc.). Plusieurs types de formats peuvent être utilisés par rapport à celui-ci :

  • En fait numérique ;
  • Pourcentage;
  • Monétaire;
  • Financier;
  • Fractionnaire;
  • Exponentiel.

De plus, Excel a la capacité de diviser les nombres en chiffres et de déterminer le nombre de chiffres après la virgule décimale (en fractions).

La saisie des données numériques se fait de la même manière que valeurs de texte, dont nous avons parlé plus haut.

Date et heure

Un autre type de données est le format de l'heure et de la date. C'est exactement le cas lorsque les types et formats de données sont identiques. Il se caractérise par le fait qu'il peut être utilisé pour indiquer sur une feuille et effectuer des calculs avec des dates et des heures. Il est à noter que lors du calcul de ce type de données, le jour est pris comme unité. De plus, cela s'applique non seulement aux dates, mais aussi à l'heure. Par exemple, 12h30 est considéré par le programme comme 0,52083 jours, et alors seulement est affiché dans la cellule sous une forme familière à l'utilisateur.

Il existe plusieurs types de formatage de l'heure :

  • h:mm:ss;
  • Hmm;
  • h:mm:ss AM/PM ;
  • h:mm AM/PM etc.

La situation est similaire avec les dates :

  • JJ.MM.AAAA ;
  • JJ.MMM
  • MMM.GG, etc.

Il existe également des formats de date et d'heure combinés, par exemple JJ:MM:AAAA h:mm.

Vous devez également prendre en compte que le programme affiche uniquement les valeurs à partir du 01/01/1900 comme dates.

Données logiques

Le type de données booléen est assez intéressant. Il fonctionne avec seulement deux valeurs : "VRAI" Et "MENSONGE". Si c’est exagéré, cela signifie « l’événement est arrivé » et « l’événement n’est pas arrivé ». Les fonctions, traitant le contenu des cellules contenant des données logiques, effectuent certains calculs.

Valeurs erronées

Les valeurs d'erreur sont un type de données distinct. Dans la plupart des cas, ils apparaissent lorsqu’une opération incorrecte est effectuée. Par exemple, ces opérations incorrectes incluent la division par zéro ou l'introduction d'une fonction sans respecter sa syntaxe. Parmi les valeurs erronées figurent les suivantes :

  • #VALEUR! – utiliser le mauvais type d'argument pour une fonction ;
  • #CAS! – division par 0 ;
  • #NOMBRE! – données numériques incorrectes ;
  • #N/A – une valeur indisponible a été saisie ;
  • #NOM? – nom incorrect dans la formule ;
  • #VIDE! – saisie incorrecte des adresses de plage ;
  • #LIEN! – Se produit lorsque des cellules précédemment référencées par une formule sont supprimées.

Formules

Un grand groupe distinct de types de données sont les formules. Contrairement aux constantes, elles ne sont le plus souvent pas visibles dans les cellules elles-mêmes, mais affichent uniquement le résultat, qui peut changer en fonction de l'évolution des arguments. En particulier, des formules sont utilisées pour divers calculs mathématiques. La formule elle-même peut être vue dans la barre de formule en mettant en surbrillance la cellule dans laquelle elle est contenue.

Une condition préalable pour que le programme perçoive une expression comme une formule est la présence d'un signe égal devant elle (=) .

Les fonctions sont un type distinct de formules. Il s'agit de sous-programmes uniques qui contiennent un ensemble d'arguments et les traitent selon un algorithme spécifique. Les fonctions peuvent être saisies manuellement dans une cellule en y plaçant d'abord le signe «=» , ou vous pouvez utiliser un shell graphique spécial à ces fins Assistant de fonction, qui contient la liste complète des opérateurs disponibles dans le programme, divisés en catégories.

En utilisant Assistants de fonctions Vous pouvez accéder à la fenêtre d'arguments d'un opérateur spécifique. Ses champs contiennent des données ou des liens vers des cellules contenant ces données. Après avoir appuyé sur le bouton "D'ACCORD" l'opération spécifiée est effectuée.

Comme on le voit, dans Programme Excel Il existe deux groupes principaux de types de données : les constantes et les formules. Ils sont à leur tour divisés en de nombreux autres types. Chaque type de données a ses propres propriétés, en tenant compte de celles que le programme les traite. Maîtriser la capacité de reconnaître et de travailler correctement avec différents types les données sont la tâche principale de tout utilisateur souhaitant apprendre à utiliser efficacement Excel aux fins prévues.

La pratique montre que les applications Microsoft Office (Excel, Word, Power Point, etc.) font partie des applications Windows les plus couramment utilisées. Chacun d'eux est un serveur COM et, par conséquent, tout objet qu'il contient peut être utilisé par votre programme comme le sien.

Il existe deux manières d'accéder aux méthodes et propriétés d'un objet COM : par référence à sa bibliothèque de types (liaison anticipée) et par nom (liaison tardive). Pour Object Pascal, une liaison précoce est préférable, car dans ce cas, le compilateur peut vérifier que les propriétés et les méthodes des objets externes sont correctement accessibles et que le code qu'il produit a tendance à s'exécuter plus rapidement.- Visual Basic pour Application (VBA) ne prend pas en charge les pointeurs et ne peut donc pas utiliser d'interfaces. Surtout pour ce type de langage (en plus de VBA, JavaScript, SmallTalk et quelques autres ne fonctionnent pas non plus avec des pointeurs), des dispinterfaces ont été introduites dans la technologie COM, vous permettant d'accéder aux méthodes et propriétés par nom, et non par adresse. Lors de l'installation d'Office, vous pouvez installer l'aide VBA, qui décrit en détail les interfaces des serveurs Microsoft Office, en indiquant le but des méthodes et des propriétés, ainsi que les paramètres d'accès à ceux-ci. En fait, ce sont les seuls documents dont dispose le programmeur sur lesquels il doit s'appuyer pour programmer l'accès aux puissantes capacités des serveurs Microsoft Office. Veuillez noter que lors de l'installation standard de Microsoft Office, l'aide VBA n'est pas installée. Si dans le catalogue Fichiers programme| MicrosoftOffice | Office vous ne trouverez pas les fichiers vbaxl8.hlp (Aide Excel), vbawrd8.hlp (Aide Word), etc., vous devez les ajouter en utilisant le menu Démarrer | Paramètre | Panneau de configuration | Installation et suppression de programmes.

La version 5 de Delphi inclut des composants de page Serveurs qui permettent d'accéder aux objets COM de ces serveurs à l'aide de bibliothèques de types, mais ces composants sont pratiquement non documentés. De plus, les bibliothèques elles-mêmes sont déjà implémentées dans le package dclaxserver50, donc en utilisant cette version de Delphi, je n'ai jamais pu obtenir leurs textes. Dans tous les cas, l'étude de textes de bibliothèque étendus (par exemple, le fichier Excel_TLB.pas contient plus de 20 000 lignes) n'apporte que peu d'avantages, même à un programmeur expérimenté.

Cette section fournit une brève description des principaux objets des deux serveurs les plus populaires - Excel et Word, ainsi que des exemples d'utilisation d'Excel dans le style VBA (par nom) et d'utilisation des composants de la page Serveurs. Étant donné que le langage VBA a été considérablement étendu spécifiquement pour la version de MS Office 97, ce matériel ne peut pas être utilisé pour travailler avec des versions antérieures du package.

Objets de base des serveurs Excel et Word

La terminologie VBA utilise les concepts d'« objet » et de « collection ». Un objet est un objet d'interface COM standard qui possède des propriétés, des méthodes et des événements. Une collection est un groupe d'objets du même type. Par exemple, l'objet principal du serveur Excel - Application définit les principales propriétés et méthodes du serveur, et la collection Worksheets est un ensemble de pages tabulaires dans le classeur actuel, etc. Les hiérarchies d'objets et de collections présentées ci-dessous sont extraites des fichiers vbaXXX.hlp. Contrairement aux objets VCL, ils sont construits non pas selon le principe d'héritage, mais selon la subordination fonctionnelle.

Objets Excel

Le serveur Excel est un puissant tableur qui stocke et traite divers types de données (à la fois numériques et textuelles), y compris la construction de graphiques et de diagrammes basés sur celles-ci. Lorsque vous travaillez avec Excel, un classeur (fichier de données) est créé avec une ou plusieurs feuilles. Toutes les feuilles d'un classeur peuvent être liées les unes aux autres, ce qui vous permet d'organiser des calculs communs sur les données qui y sont placées.

Maintenant petites explications. Les variables Sheet et Range ont été introduites uniquement pour raccourcir le texte du programme : partout au lieu de Sheet, par exemple, vous pouvez écrire Excel.Workbooks.Sheets. Delphi 4 est livré avec les fichiers XLCONST.PAS et XLCONST.DCU, qui définissent les constantes xlXXX utilisées dans la documentation vbaxl8.hlp. Ces fichiers ne sont pas fournis avec la version 5, j'utilise donc leurs équivalents numériques. La largeur de la marge d'un document Excel imprimé est spécifiée en unités internes, correspondant à environ 3,5 mm, de sorte que les valeurs spécifiées dans les instructions Sheet.PageSetup.XXXXMargin définiront les marges gauche, inférieure et droite sur 1,1 cm de large, et la colonne supérieure à 1,4 cm. La largeur est définie en caractères de texte qui tiennent dans la colonne sans découpage.

La variable Excel définit un champ dans la classe TForm1. Lorsqu'une classe est créée, la valeur VarEmpty y est automatiquement placée. Après avoir fini de travailler avec Excel, l'utilisateur peut le fermer. Mais dans mon programme, Excel n'était pas visualisé, son travail se déroulait « en coulisses » et le tableau créé était écrit dans un fichier spécifié par l'utilisateur à l'aide de l'opérateur Excel.Workbooks.SaveAs(FileName).

Après cela, Excel s'est fermé. Puisque dans notre cas Excel affiche sa fenêtre, mais que l'utilisateur ne peut pas la fermer, il est utile d'écrire le gestionnaire suivant pour l'événement OnDestroy du formulaire :

Procédure TForm1.FormDestroy(Expéditeur : TObject); commencer sinon VarIsEmpty(Excel) alors Excel.Quit terminer ;

Lors de l'exécution de l'exemple, n'oubliez pas que la création d'une liste de prix à l'aide d'Excel est un processus assez long. Sur mon ordinateur (400 MHz, 64 Mo), cela a pris environ une minute (par exemple, une liste de prix similaire est créée à l'aide de Quick Report en moins de 2 secondes). À la fin du gestionnaire, la durée totale d’exécution est placée dans l’étiquette lb.

Reliure anticipée

L’exemple suivant répète fonctionnellement le précédent. Il crée également une liste de prix à l'aide d'Excel, mais cette fois en utilisant l'accès directement via les interfaces du serveur. Une « surprise » vous attend : le temps d’exécution du deuxième exemple est 40 secondes plus long ! Je n'ai pas trouvé d'explication raisonnable à ce phénomène, mais les deux exemples se trouvent sur le disque qui l'accompagne, vous pouvez donc le constater par vous-même à tout moment.

Puisque la forme du deuxième exemple est exactement la même que celle du premier, je n'expliquerai pas ce que vous devez faire pour le créer. Ajoutez uniquement le composant TExcelApplication au formulaire et configurez ses propriétés : Name=Excel, AutoConnect=True, AutoQuit=True.

Si vous utilisez l'exemple de formulaire précédent comme modèle, n'insérez pas le champ Excel dans la classe TForm1. Le gestionnaire Button1Click devrait ressembler à ceci (voir Listing 2).

Comme vous pouvez le voir, il est très similaire au gestionnaire de l’exemple précédent. Je m'attarderai donc sur les différences.

Lors de l'accès à la propriété SheetsInNewWorkbook, comme dans de nombreux autres cas lors de l'accès aux propriétés et méthodes d'interface, l'identifiant de langue de localisation (lcid) est requis. La valeur 0 code la langue par défaut. Le même identifiant est passé comme deuxième paramètre de l'appel à la méthode Excel.Workbooks.Add. Le premier paramètre doit être le nom du fichier (au format WideString) si le classeur a déjà été créé précédemment, ou le paramètre EmptyParam « vide » si le classeur est créé pour la première fois.

Toutes mes tentatives pour travailler avec des objets Range ont échoué. Pour que vous ne me jugez pas trop, j'ai placé la bibliothèque de types Excel_TLB.pas dans le répertoire des exemples - parcourez-la à votre guise et essayez de trouver la bonne solution pour modifier la largeur des colonnes et les marges des feuilles, comme ainsi que pour colorer une plage, aligner du texte, etc.

Pour résumer, je voudrais attirer une fois de plus votre attention sur le fait qu'en termes de temps d'exécution, la liaison tardive n'est au moins pas inférieure à la liaison anticipée - du moins pour les exemples considérés. Considérant que les seuls documents disponibles pour la grande majorité des programmeurs sur les serveurs MS Office sont les fichiers d'aide vbaXXX.hlp, nous pouvons conclure : utiliser les options (liaison tardive) est plus simple, plus pratique et surtout beaucoup plus clair que de travailler directement avec interfaces (liaison anticipée) .

OrdinateurPress 6"2001

Jusqu'à présent, nous avons examiné les fonctionnalités de VBA sans grand lien avec les informations contenues dans la feuille de calcul. Dans ce chapitre, nous nous familiariserons avec les objets qui vous permettent de travailler avec des données situées dans les cellules des feuilles des classeurs Microsoft Excel. Les chapitres suivants exploreront des développements complexes basés sur les conceptions de base dont nous discuterons ici.

L'intégralité du dossier de travail Classeurs Excel représenté dans un objet Workbook, qui possède un grand nombre de propriétés et de méthodes. De l'aide les concernant est disponible à la fois dans l'aide en ligne de VBA et dans grandes quantités publications sur ce sujet. Nous n'entrerons pas dans les informations purement de référence et dans la partie introductive nous ne considérerons que les informations que nous rencontrerons plus tard dans les exemples considérés.

Par exemple, la propriété Worksheets d'un objet Workbook représente une famille de toutes les feuilles de calcul du classeur. Et pour accéder à une feuille de calcul spécifique à l'aide de cette propriété, il vous suffit de spécifier le numéro de feuille comme paramètre, qui ressemble à ceci - Feuilles de calcul(numéro de feuille). Une autre option consiste à spécifier le nom de la feuille en tant que paramètre - Feuilles de calcul (« Nom de la feuille »).

L'un des événements les plus couramment programmés associés à un classeur en général est l'événement Open, qui se produit lorsqu'un classeur est ouvert. Ainsi, si nous souhaitons que certaines actions soient effectuées lors de l'ouverture d'un livre, nous devons alors placer les éléments nécessaires code de programmeà l’intérieur de la procédure Workbook_Open. La plupart des exemples ci-dessous porteront sur la programmation de cet événement.

L'objet suivant dans la hiérarchie après Workbook est l'objet Worksheet, qui représente une feuille de calcul. Parmi la variété des méthodes de cet objet, Activate est largement utilisée, qui existe également pour la famille de feuilles Worksheets, que nous avons déjà mentionnée ci-dessus. Par exemple, si, lorsque vous travaillez sur la première feuille d'un classeur, vous devez activer la troisième feuille, alors la syntaxe de la ligne de programme dans la procédure (par exemple, exécutée en cliquant sur un bouton) doit être la suivante :

Feuilles de travail (3). Activer

On sait que Microsoft Excel propose un service lié à la protection des classeurs et des feuilles qui le composent. Ainsi, dans les exemples nous utiliserons la méthode Protect (de la famille Worksheets), qui protège la feuille de calcul des modifications qui y sont apportées. Pour installation de logiciels La protection par mot de passe (le mot de passe est précisé dans le paramètre Mot de passe de cette méthode) de la troisième feuille peut se faire comme suit :

Feuilles de calcul (3).Protéger le mot de passe :="12345", DrawingObjects :=True, _ Contents :=True, Scénarios :=True

Il existe également une méthode Unprotect correspondante qui vous permet de supprimer la protection d'une feuille. Pour une protection nouvellement installée, la méthode pour la supprimer est la suivante :

Feuilles de travail (3). Mot de passe non protégé : =" 12345 »

N'importe lequel travaux pratiques dans Excel, d'une manière ou d'une autre, concerne les informations contenues dans les cellules. Pour travailler avec des cellules dans VBA, il existe un objet Range (traduit par une plage de cellules). Et utiliser cet objet nécessite de spécifier un paramètre - la plage de cellules qui nous intéresse. Il peut s'agir d'une seule cellule ou d'un groupe de cellules. Alors si on écrit

Feuilles de travail (3). Plage (« A1 »). Valeur = 5,

alors cela signifie que dans la cellule A1 Sur la troisième feuille, nous écrivons par programme le nombre 5. Ici, nous utilisons la propriété principale de l'objet Range - Value. Littéralement, cela signifie la valeur ou le contenu d'une cellule (ou d'un groupe de cellules).

Dans la construction suivante, une lettre est saisie par programme dans un ensemble de cellules UN:

Feuilles de calcul (1). Plage (« A1 : C3 »). Valeur = « A ».

Une autre façon de travailler avec les cellules consiste à utiliser l'objet Cells, et la syntaxe pour l'utiliser est la suivante :

Cellules (numéro de ligne, numéro de colonne).

En effet, du point de vue de leur utilisation, les objets en question sont similaires. Par exemple, obtenez la valeur de la cellule dans la variable Z J5 peut-être deux de différentes manières:

Z = Plage (« D5 »).Valeur ou Z = Cellules(5,4).Valeur .

À titre d'exemple de conception de programme sur le thème de ces deux objets, la mission suivante peut être donnée :

Feuilles de calcul(2).Range(«C5»).Value = Feuilles de calcul(3).Cellules(5, 1).Valeur

Terme Objets Excel(entendu au sens large comme le modèle objet Excel) inclut les éléments qui composent tout classeur Excel. Il s'agit par exemple de feuilles de calcul ( Feuilles de travail), les chaînes ( Lignes), colonnes ( Colonnes), plages de cellules ( Gammes) et le classeur Excel lui-même ( Cahier d'exercices) y compris. Chaque objet Excel possède un ensemble de propriétés qui en font partie intégrante.

Par exemple, objet Feuille de travail(feuille de calcul) a des propriétés Nom(Nom), Protection(protection), Visible(visibilité), Zone de défilement(zone de défilement) et ainsi de suite. Ainsi, si lors de l'exécution d'une macro vous devez masquer la feuille de calcul, changez simplement la propriété Visible cette feuille.

DANS Excel VBA il existe un type spécial d'objets - collection. Comme son nom l'indique, une collection fait référence à un groupe (ou une collection) d'objets Excel. Par exemple, une collection Lignes est un objet contenant toutes les lignes de la feuille de calcul.

Tous les principaux objets Excel sont accessibles (directement ou indirectement) via l'objet Cahiers d'exercices, qui est une collection de tous les ouverts dans à l'heure actuelle cahiers d'exercices. Chaque classeur contient un objet Feuilles– une collection qui comprend toutes les feuilles de travail et les feuilles de diagrammes du classeur. Chaque objet Feuille de travail se compose d'une collection Lignes– il comprend toutes les lignes de la feuille de calcul et les collections Colonnes– toutes les colonnes de la feuille de calcul, et ainsi de suite.

Le tableau suivant répertorie certains des objets Excel les plus couramment utilisés. Une liste complète des objets Excel VBA est disponible sur le site Web de Microsoft Office Developer (en anglais).

Objet Description
Application Application Excel.
Cahiers d'exercices Une collection de tous les classeurs actuellement ouverts dans l’application Excel actuelle. Un classeur spécifique est accessible via un objet Cahiers d'exercices en utilisant l'index numérique du classeur ou son nom, par exemple, Cahiers d'exercices(1) ou Cahiers d'exercices (« Livre 1 »).
Cahier d'exercices Objet Cahier d'exercices- Ceci est un cahier d'exercices. Il est accessible via la collection Cahiers d'exercices en utilisant un index numérique ou un nom de classeur (voir ci-dessus). Pour accéder au classeur actuellement actif, vous pouvez utiliser Cahier de travail actif.

De l'objet Cahier d'exercices vous pouvez accéder à l'objet Feuilles, qui est une collection de toutes les feuilles d'un classeur (feuilles de calcul et graphiques) ainsi qu'un objet Feuilles de travail, qui est une collection de toutes les feuilles de calcul d'un classeur Excel.

Feuilles Objet Feuilles est une collection de toutes les feuilles d’un classeur. Il peut s'agir de feuilles de calcul ou de diagrammes sur une feuille séparée. Accéder à une fiche individuelle d'une collection Feuilles peut être obtenu à l'aide de l'index numérique de la feuille ou de son nom, par exemple, Feuilles(1) ou Feuilles ("Feuil1").
Feuilles de travail Objet Feuilles de travail est une collection de toutes les feuilles de calcul d'un classeur (c'est-à-dire toutes les feuilles de calcul à l'exception des graphiques sur une feuille séparée). Accéder à une feuille de calcul individuelle à partir d'une collection Feuilles de travail peut être obtenu en utilisant l'index numérique de la feuille de calcul ou son nom, par exemple, Feuilles de travail(1) ou Feuilles de calcul («Feuil1»).
Feuille de travail Objet Feuille de travail est une feuille de calcul distincte dans un classeur Excel. Il est accessible à l'aide de l'index numérique ou du nom de la feuille de calcul (voir ci-dessus).

De plus, vous pouvez utiliser Feuille active pour accéder à la feuille de calcul actuellement active. De l'objet Feuille de travail vous pouvez accéder aux objets Lignes Et Colonnes, qui sont une collection d'objets Gamme, faisant référence aux lignes et aux colonnes de la feuille de calcul. Vous pouvez également accéder à une seule cellule ou à n’importe quelle plage de cellules adjacentes sur une feuille de calcul.

Lignes Objet Lignes est une collection de toutes les lignes d'une feuille de calcul. Objet Gamme, constitué d'une seule ligne de feuille de calcul, est accessible par ce numéro de ligne, par ex. Lignes(1).
Colonnes Objet Colonnes est une collection de toutes les colonnes d'une feuille de calcul. Objet Gamme, composé d'une seule colonne de feuille de calcul, est accessible par ce numéro de colonne, par ex. Colonnes(1).
Gamme Objet Gamme représente un nombre quelconque de cellules adjacentes sur une feuille de calcul. Cela peut être une cellule ou toutes les cellules de la feuille.

Une plage composée d'une seule cellule est accessible via un objet Feuille de travail utiliser la propriété Cellules, Par exemple, Feuille de calcul.Cellules (1,1).

D'une autre manière, une référence à une plage peut être écrite en spécifiant les adresses des cellules de début et de fin. Ils peuvent être écrits séparés par deux points ou une virgule. Par exemple, Feuille de calcul.Range ("A1: B10") ou Feuille de calcul.Range ("A1", "B10") ou Feuille de calcul.Range (Cellules (1,1), Cellules (10,2)).

Veuillez noter si l'adresse Gamme la deuxième cellule n'est pas spécifiée (par exemple, Feuille de calcul.Range(« A1 ») ou Feuille de calcul.Range(Cellules(1,1)), alors une plage composée d’une seule cellule sera sélectionnée.

Le tableau ci-dessus montre comment les objets Excel sont accessibles via les objets parents. Par exemple, une référence à une plage de cellules peut être écrite comme ceci :

Classeurs("Livre1").Feuilles de travail("Feuil1").Plage("A1:B10")

Affectation d'un objet à une variable

Dans Excel VBA, un objet peut être affecté à une variable à l'aide d'un mot-clé Ensemble:

Dim DataWb comme classeur Set DataWb = Workbooks("Book1.xlsx")

Objet actif

Il y a un objet actif dans Excel à un moment donné Cahier d'exercices est le classeur actuellement ouvert. De même, il existe un objet actif Feuille de travail, objet actif Gamme et ainsi de suite.

Se référer à l'objet actif Cahier d'exercices ou Feuille en code VBA tu peux faire comme ça : Cahier de travail actif ou Feuille active, et à l'objet actif Gamme- comme dans Sélection.

Si le code VBA contient une référence à une feuille de calcul sans spécifier à quel classeur il appartient, Excel utilise par défaut le classeur actif. De même, si vous faites référence à une plage sans préciser de valeur spécifique classeur ou une feuille de calcul, Excel utilisera par défaut la feuille de calcul active dans le classeur actif.

Donc pour faire référence à une gamme A1:B10 sur la feuille de calcul active du classeur actif, vous pouvez simplement écrire :

Plage("A1:B10")

Changer l'objet actif

Si pendant l'exécution du programme, vous devez rendre actif un autre classeur, une autre feuille de calcul, une plage, etc., vous devez alors utiliser les méthodes Activer ou Sélectionner comme ça:

Sous ActivateAndSelect() Classeurs("Livre2").Activer les feuilles de calcul("Feuil2").Sélectionner les feuilles de calcul("Feuil2").Range("A1:B10").Sélectionner les feuilles de calcul("Feuil2").Range("A5") .Activer le sous-marin final

Méthodes objets, y compris les méthodes que nous venons d'utiliser Activer ou Sélectionner, sera discuté plus en détail ci-dessous.

Propriétés de l'objet

Chaque objet VBA possède des propriétés qui lui sont attribuées. Par exemple, objet Cahier d'exercices a des propriétés Nom(Nom), Numéro de révision(nombre de sauvegardes), Feuilles(feuilles) et bien d'autres. Pour accéder aux propriétés d'un objet, vous devez écrire le nom de l'objet, puis un point, puis le nom de la propriété. Par exemple, le nom du classeur actif est accessible comme ceci : ActiveWorkbook.Name. Ainsi, pour affecter à une variable nomwb nom du classeur actif, vous pouvez utiliser ce code :

Dim wbName As String wbName = ActiveWorkbook.Name

Nous avons montré précédemment comment un objet Cahier d'exercices peut être utilisé pour accéder à un objet Feuille de travail en utilisant cette commande :

Classeurs("Livre1").Feuilles de travail("Feuille1")

Ceci est possible parce que la collecte Feuilles de travail est une propriété d'un objet Cahier d'exercices.

Certaines propriétés d'objet sont en lecture seule, ce qui signifie que l'utilisateur ne peut pas modifier leurs valeurs. Dans le même temps, certaines propriétés peuvent se voir attribuer des valeurs différentes. Par exemple, pour changer le nom de la feuille active en « Ma feuille de travail", attribuez simplement ce nom à la propriété Nom feuille active, comme ceci :

ActiveSheet.Name = "Ma feuille de calcul"

Méthodes d'objet

Les objets VBA disposent de méthodes pour effectuer certaines actions. Méthodes d'objet– ce sont des procédures liées à des objets d’un certain type. Par exemple, objet Cahier d'exercices a des méthodes Activer, Fermer, Sauvegarder et bien d'autres encore.

Pour appeler une méthode sur un objet, vous devez noter le nom de l'objet, un point et le nom de la méthode. Par exemple, pour enregistrer le classeur actif, vous pouvez utiliser cette ligne de code :

ActiveWorkbook.Save

Comme les autres procédures, les méthodes peuvent avoir des arguments qui leur sont transmis lors de leur appel. Par exemple, la méthode Fermer objet Cahier d'exercices a trois arguments facultatifs qui déterminent si le classeur doit être enregistré avant la fermeture, etc.

Pour passer des arguments à une méthode, vous devez noter les valeurs de ces arguments après avoir appelé la méthode, séparées par des virgules. Par exemple, si vous souhaitez enregistrer le classeur actif sous forme de fichier .csv avec le nom « Book2 », alors vous devez appeler la méthode Enregistrer sous objet Cahier d'exercices et passe l'argumentation Nom de fichier signification Livre2, et l'argumentation Format de fichier- signification xlCSV:

ActiveWorkbook.SaveAs "Book2", xlCSV

Pour rendre votre code plus lisible, vous pouvez utiliser des arguments nommés lors de l'appel d'une méthode. Dans ce cas, écrivez d’abord le nom de l’argument, puis l’opérateur d’affectation « := » et après, indiquez la valeur. Donc, l'exemple d'appel de méthode ci-dessus Enregistrer sous objet Cahier d'exercices peut s'écrire différemment :

ActiveWorkbook.SaveAs Nom de fichier :="Book2", :=xlCSV

Dans la fenêtre Navigateur d'objets Visual Basic Editor affiche une liste de tous les objets disponibles, leurs propriétés et méthodes. Pour ouvrir cette liste, lancez Visual Basic Editor et cliquez sur F2.

Regardons quelques exemples

Exemple 1

Cet extrait de code VBA peut servir d'illustration de l'utilisation d'une boucle Pour chacun. DANS dans ce cas nous y ferons référence pour démontrer les références d'objets Feuilles de travail(qui par défaut est extrait du classeur actif) et des liens vers chaque objet Feuille de travail séparément. Notez que la propriété utilisée pour afficher le nom de chaque feuille de calcul est Nom objet Feuille de travail.

"Faites défiler toutes les feuilles de calcul du classeur actif une par une" et affichez une boîte de message avec le nom de chaque feuille de calcul Dim wSheet As Worksheet For Each wSheet in Worksheets MsgBox "Worksheet found: " & wSheet.Name Next wSheet

Exemple 2

Cet exemple de code VBA montre comment accéder aux feuilles de calcul et aux plages de cellules à partir d'autres classeurs. De plus, vous vous assurerez que si une référence à un objet spécifique n'est pas spécifiée, alors les objets Excel actifs sont utilisés par défaut. Cet exemple montre l'utilisation du mot-clé Ensemble pour affecter un objet à une variable.

Dans le code ci-dessous, pour l'objet Gamme la méthode est appelée CollerSpécial. Cette méthode passe l'argument Coller signification xlPasteValues.

"Copiez une plage de cellules de la feuille "Sheet1" d'un autre classeur (nommé Data.xlsx) "et collez uniquement les valeurs​​dans la feuille "Résultats" du classeur actuel (nommé CurrWb.xlsm) Dim dataWb As Workbook Set dataWb = Workbooks.Open( "C:\Data") "Notez que DataWb est le classeur actif. Par conséquent, l'action suivante est effectuée sur l'objet Sheets dans DataWb. " Sheets("Sheet1").Range("A1:B10").Copy "Collez les valeurs copiées de la plage de cellules dans la feuille de calcul "Résultats" du classeur actuel. Veuillez noter que le classeur CurrWb.xlsm n'est pas "actif" et doit donc être référencé Workbooks("CurrWb").Sheets("Results").Range("A1").PasteSpecial Paste:=xlPasteValues.

Exemple 3

L'extrait de code VBA suivant montre un exemple d'objet (collection) Colonnes et montre comment y accéder à partir d'un objet Feuille de travail. De plus, vous verrez que lorsque vous référencez une cellule ou une plage de cellules dans la feuille de calcul active, vous n'êtes pas obligé d'inclure cette feuille dans la référence. Nous retrouvons le mot-clé Ensemble, à l'aide duquel l'objet Gamme affecté à une variable Col..

Ce code VBA montre également un exemple d'accès à une propriété Valeur objet Gamme et changer sa signification.

"À l'aide d'une boucle, nous parcourons les valeurs de la colonne A sur la feuille "Feuille2", "effectuons des opérations arithmétiques avec chacune d'elles et écrivons le résultat" dans la colonne A de la feuille de calcul active (Feuil1) Dim i As Integer Dim Col As Range Dim dVal As Double "Attribuer la variable Col à la colonne A de la feuille de calcul "Sheet2" Set Col = Sheets("Sheet2").Columns("A") i = 1 "Nous parcourons séquentiellement toutes les cellules de la colonne Col jusqu'à ce que nous rencontrions une cellule vide Do Until IsEmpty(Col. Cells(i)) "Effectuer des opérations arithmétiques sur la valeur de la cellule actuelle dVal = Col.Cells(i).Value * 3 - 1 "La commande suivante écrit le résultat dans colonne A" de la feuille active. Il n'est pas nécessaire de préciser le nom de la feuille dans la référence, " puisqu'il s'agit de la feuille active du classeur.

Cellules (i, 1).Value = dVal i = i + 1 Boucle À Les principaux objets MS Excel décrits dans cette section sont les suivants : classeur (

Cahier d'exercices) et

famille de classeurs (Workbooks), feuille de calcul (Worksheet) et famille de feuilles de calcul (Worksheets), plage de cellules ou cellule (Range).

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

Exemple:

La famille WorkBooks (« Book1 ») permet d'accéder au classeur. Le titre du livre est indiqué entre parenthèses.

La famille WorkSheets (« Sheet1 ») permet d'accéder à une feuille de calcul. Le nom de la feuille est indiqué entre parenthèses.

La famille Range permet d'accéder à une plage de cellules ou à une cellule. La plage de cellules ou le nom de la cellule est indiqué entre parenthèses.

Famille de cellules (numéro de ligne, numéro de colonne) donne accès à la cellule. Les coordonnées des cellules sont indiquées entre parenthèses.

Exemples :

Cahiers d'exercices (« Livre 1 »)

Feuilles de travail (« Feuille 1 ») Plage (« A1 ») Plage (« A1:B10 ») Cellules (2,3) Cellules (k,i+1)

5.4.4.1. Objet Classeur et famille Workbooks

DANS Objet de hiérarchie MS Excel Le classeur (classeur) vient immédiatement après l'objet Application et est un fichier de classeur. Le classeur est stocké dans des fichiers XLS (classeur standard) ou XLA (application entièrement compilée). Les propriétés et méthodes du classeur vous permettent de

travailler avec des fichiers. Cet objet fait partie d'une famille (ensemble)

Cahiers d'exercices (<Индекс>) renvoie l'objet à l'index dans l'ensemble.

Classeurs("<Имя>") renvoie un objet par nom dans l'ensemble. ActiveWorkbook renvoie une référence au classeur actif au moment de l'exécution de la commande.

5.4.4.1.1. Propriétés

ActiveSheet renvoie la feuille de calcul active. Pour obtenir le nom de la feuille, utilisez la propriété Name de l'objet Sheet.

Exemples :

MsgBox ("Nom de la feuille active" & ActiveSheet.Name)

MsgBox (ActiveWorkbook.ActiveSheet.Name) – Affiche le nom de la feuille de calcul active dans une boîte de dialogue. ActiveDialog – renvoie la boîte de dialogue active. Graphique actif – renvoie le graphique actif.

Feuilles – Renvoie la famille de toutes les feuilles du classeur.

Feuilles de calcul – Renvoie une famille de toutes les feuilles de calcul du classeur.

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

Pour chaque s dans ActiveWorkbook.Sheets MsgBox (s.Name)

Graphiques - Renvoie une famille de tous les graphiques du classeur qui ne sont pas intégrés dans les feuilles de calcul.

Nombre : renvoie le nombre d'objets de la famille Workbooks (nombre ouvert par l'application livres).

FullName – Renvoie le nom complet du classeur.

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

MsgBox (ActiveWorkbook.FullName)

Nom – Renvoie le nom du classeur actif. 245

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

MsgBox (ActiveWorkbook.Nom)

Chemin – renvoie le chemin d’accès au fichier du classeur.

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

MsgBox (ActiveWorkbook.Path)

5.4.4.1.2. Méthodes

La méthode Activate active un classeur afin que sa première feuille de calcul devienne la feuille de calcul actuelle (disponible pour le travail).

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

Classeurs (« Livre1 »).Activer

Classeur.Activer

La méthode Close ferme le classeur. Close SaveChanges FileName – ferme le classeur. Le paramètre SaveChanges vous permet de contrôler si les modifications sont enregistrées dans le classeur. Si sa valeur est True , alors les modifications sont enregistrées, si – False , alors elles ne sont pas enregistrées. Le paramètre FileName est une chaîne contenant le nom du fichier du classeur.

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

WorkBooks("Book1").Fermer WorkBooks("Book1").Fermer SaveChanges:=True Filename:="Book2"

Nouvelle fenêtre est destiné à ouvrir le livre spécifié dans une nouvelle fenêtre.

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

WorkBooks (« Livre1 »).NewWindow

Enregistrer est utilisé pour enregistrer les modifications apportées au classeur.

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

Classeurs (« Book1 »).Enregistrer

SaveAs Filename – utilisé pour enregistrer un livre sous un nom différent (dans un fichier différent).

SaveAsCopy – conçu pour enregistrer un classeur dans un autre fichier, en le laissant ouvert avec le même nom.

Exemples :

Classeurs (« Livre1 »).SaveAs FileName:=« kdjf.xls »

ActiveBook.SaveAsCopy FileName:=”Mon livre”

Ouvrir le nom de fichier – vous permet d'ouvrir un classeur avec le nom spécifié dans le paramètre FileName.

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

Classeurs.Ouvrir FileName :="Book1.xls"

5.4.4.1.3. Événements

Les principaux événements de l'objet Workbook sont présentés dans le tableau. 5.13.

Tableau 5.13

Lorsqu'un événement survient

Lors de la fermeture d'un classeur

Avant d'imprimer un classeur

Avant d'enregistrer un classeur

Lors de l'ajout d'une nouvelle feuille

Lors de l'ouverture d'un classeur

Lorsque vous activez une feuille de calcul

5.4.4.2. Objet Feuille de calcul et famille WorkSheets

DANS Objet de hiérarchie MS Excel La feuille de travail vient immédiatement après

Un objet Workbook représente une feuille de calcul dans un classeur et fait partie de la famille (ensemble) Worksheets.

Exemples :

Feuilles de calcul («Feuil1»).Activer les feuilles de calcul(1).Activer

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

Feuille active.Range (« a1 »)=1

5.4.4.2.1. Propriétés

La propriété Name vous permet de travailler avec le nom de la feuille de calcul.

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

Feuilles de travail (1).Name = "Résultats"

ActiveCell – Renvoie la cellule active de la feuille de calcul active.

cellule avec les coordonnées spécifiées.

Colonnes(<столбец>) – renvoie une référence à la colonne. Le paramètre peut être un nom ou un numéro de colonne.

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

Feuilles de calcul(1).Colonnes(« a »)=1

Feuilles de calcul (1). Colonnes (1) = 1

Lignes (<строка>) -in renvoie une référence à une chaîne. Le numéro de ligne peut être utilisé comme paramètre.

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

Feuilles de calcul (1). Lignes (1) = 1

Gamme(<Диапазон ячеек>) – renvoie une référence à la plage de cellules spécifiée.

Après l'objet, généralement par un point ". ", indique une propriété ou une méthode. Parfois, pour accéder à un certain objet, vous devez passer par une hiérarchie d'objets de niveau supérieur.

Feuilles de calcul (« Sheet1 »).UsedRange.Value=1 Nombre – renvoie le nombre de feuilles dans le classeur.

Visible – détermine si la feuille de calcul est affichée dans le classeur. Ses valeurs valides sont : True – la feuille de calcul est affichée à l'écran ; False – la feuille de calcul est invisible (cachée), mais elle peut être affichée à l'écran à l'aide de la séquence de commandes Format, Feuille,

Afficher(Format, Feuille, Afficher) ; xlTrèsCaché – la feuille de calcul est masquée et ne peut être affichée à l’écran que par programmation.

Exemples :

Feuilles de calcul Sub Empty() (« Sheet3 »).Visible=False

Sous-ouvert()

Feuilles de calcul (« Feuille3 »).Visible=True

Feuilles de calcul Sub Empty1() (« Sheet4 »).Visible=xlVeryHidden

© 2024 ermake.ru -- À propos de la réparation de PC - Portail d'information