Type de données long VBA (variable Dim)

Type de variable longue

Le VBA Longue Le type de données est utilisé pour stocker des valeurs de données très longues (-2 147 483 648 à 2 147 483 648). Il ne peut stocker que des nombres entiers (sans décimales).

Pour déclarer une variable Long, vous utilisez l'instruction Dim (abréviation de Dimension) :

1 Dim lngA aussi long

Ensuite, pour attribuer une valeur à une variable, utilisez simplement le signe égal :

1 lngA = 30000

Mettre ceci dans une procédure ressemble à ceci :

12345678 Sub lngExample()'déclare la variable longueDim lngA aussi long'remplir la variable longuelngA = 30000'afficher la boîte de messageMsgBox lngAFin du sous-marin

Si vous exécutez le code ci-dessus, la boîte de message suivante s'affichera.

Type de données LongLong

Le type de données LongLong n'est disponible que dans la version 64 bits de Microsoft Office. Si vous exécutez une version 32 bits d'Office sur un ordinateur 64 bits, ce type de données ne sera pas disponible. Il prend en charge des nombres compris entre -9 223 372 036 854 775 808 et 9 223 372 036 854 775 807.

1 Dim lngA as LongLong

Type de données LongPtr

Le LongPtr a été introduit dans VBA afin de prendre en charge la version 64 bits de Microsoft Office. Sur un système 32 bits, il est traité comme un Long et sur des systèmes 64 bits, il est traité comme un LongLong.

1 Dim lngA comme LongPtr

Remarque : LongPtr n'est pas disponible dans Excel 2007 ou version antérieure.

Valeurs décimales et types de données longs

Les variables longues ne peuvent pas stocker de valeurs décimales. Si vous passez un nombre décimal long, le nombre décimal sera arrondi pour supprimer la décimale.

Par conséquent, si vous deviez exécuter la procédure ci-dessous :

12345678 Sous-LngExampleB()'déclare la variable longueDim lngA aussi long'remplir la variable longuelngA = 3524,12'afficher la boîte de messageMsgBox lngAFin du sous-marin

La valeur décimale serait arrondie vers le bas, renvoyant le message suivant :

Cependant, ce code ci-dessous:

12345678 Sous-LngExampleB()'déclare la variable longueDim lngA aussi long'remplir la variable longuelngA = 3524,12'afficher la boîte de messageMsgBox lngAFin du sous-marin

Renvoierait la boîte de message suivante (arrondi au supérieur) :

Type de données décimal/double

Si vous souhaitez stocker une décimale, vous devez déclarer une variable qui autorise les décimales. Vous pouvez utiliser 3 types de données : simple, double ou monétaire.

1 Dim sngPrice en tant que single
1 Dim dblPrice en tant que double
1 Dim curPrice comme devise

Le type de données Single arrondira le point décimal légèrement différemment du type de données double et de devise, il est donc préférable d'utiliser double à simple pour plus de précision. Un Double peut avoir jusqu'à 12 décimales tandis que Currency et Single peuvent avoir jusqu'à 4 décimales.

Déclarer une variable longue au niveau du module ou global

Dans les exemples précédents, nous avons déclaré la variable Long dans une procédure. Les variables déclarées avec une procédure ne peuvent être utilisées que dans cette procédure.

Au lieu de cela, vous pouvez déclarer des variables Long au niveau du module ou au niveau global.

Niveau du module

Niveau du module les variables sont déclarées en haut des modules de code avec le Faible déclaration.

Ces variables peuvent être utilisées avec n'importe quelle procédure dans ce module de code.

Niveau mondial

Niveau mondial les variables sont également déclarées en haut des modules de code. Cependant, au lieu d'utiliser le Faible déclaration, utilisez le Publique déclaration pour indiquer que la variable longue est disponible pour être utilisée tout au long de votre projet VBA.

1 LngA public aussi long

Si vous deviez déclarer la variable longue au niveau d'un module, puis essayer de l'utiliser dans un module différent, une erreur se produirait.

Cependant, si vous aviez utilisé le mot clé Public pour déclarer la variable longue, l'erreur ne se produirait pas et la procédure se déroulerait parfaitement.

Format long stocké sous forme de chaîne

Il peut arriver que vous souhaitiez formater un type de données long en une chaîne - par exemple une date ou que vous souhaitiez afficher un symbole monétaire.

Pour ce faire, vous utilisez la fonction Format.

La procédure suivante :

1234567891011 Sous-testLongToString()'déclare la variable chaîneDim strDate en tant que chaîne'déclarer le long et remplir la valeurDim lngDate aussi longDate lng = 44055'convertit le long en une chaîne formatée en datestrDate = Format(lngDate, "jj mmmm aaaa")'voir le résultatDebug.Print strDateFin du sous-marin

renvoie le résultat ci-dessous :

et la procédure suivante

1234567891011 Sous-testLongtoCurrencyString()'déclare la variable chaîneDim strMoney en tant que chaîne'déclarer le long et remplir la valeurDim lngValue aussi longtempsValeur lng = 44055'convertit le long en une chaîne avec un symbole monétairestrMoney = Format(lngValue, "$#,##0")'voir le résultatMsgBox strMoneyFin du sous-marin

renverrait ce résultat :

wave wave wave wave wave