top of page
Rechercher

[Animation Excel] Sapin de Noël

aperçu

Cette fois-ci, nous allons vous présenter une animation de Noël créée à l'aide d'Excel VBA.

 

La neige tombe sur la cellule, le dégradé de couleurs des lettres « Joyeux Noël » change lentement, et les lumières du sapin de Noël tournent et scintillent doucement : il en résulte une œuvre empreinte de mouvement.

Tout d'abord, veuillez regarder la vidéo 👇



RP

Cet article a été créé dans le cadre du calendrier de l'Avent 2025 de la communauté Discord « Excel-Fun.xls* ».

Calendrier de l'Avent Excel-Fun.xls* 2025
Excel-Fun.xls* 2025アドベントカレンダー

Il s'agit d'une communauté amusante et instructive pour les passionnés d'Excel et de VBA, alors rejoignez-nous !

↓"Lien de participation à Excel-Fun.xls*"

Excel-Fun.xls*Lien de participation
Excel-Fun.xls*参加リンク

Explication technique (sapin de Noël)


Ce blog portera sur les points techniques suivants :

  1. Principes de base de l'animation Excel

  2. Animation de changement de couleur d'un texte en dégradé (Joyeux Noël)

  3. Mécanisme d'effet de neige (utilisant le code existant)

  4. agencement d'illumination du sapin de Noël

  5. Exprimer le clignotement avec un effet de « flou » lumineux

Cet article résume des idées pour utiliser Excel comme un « canevas » pour créer des animations, plutôt que comme un « logiciel de tableur statique ».


1. Principes de base de l'animation Excel


Nous allons tout d'abord expliquer les bases de l'animation Excel en utilisant l'animation ci-dessous d'une forme circulaire en rotation et en déplacement.


La vidéo comporte un bouton de démarrage, un bouton « Lancer l'animation » et un bouton « Arrêter ». Lorsque vous appuyez sur le bouton « Lancer l'animation », la forme circulaire se met à tourner et lorsque vous appuyez sur le bouton « Arrêter », elle s'arrête.


Le code proprement dit est expliqué ci-dessous :

Code de base pour une animation Excel
Excelアニメーションの基礎コード

Comme le montre le schéma ci-dessus, le processus d'animation est divisé en trois étapes principales.


① Référence de forme et paramètres initiaux

Commencez par obtenir la forme circulaire que vous souhaitez déplacer (dans cet exemple, le nom est « Cercle »),

Définissez des paramètres tels que la position du centre de rotation, le rayon et la vitesse de rotation.


La valeur définie ici sera utilisée dans les calculs de coordonnées ultérieurs.

Cela détermine « quelle position sera le centre et de combien elle se déplacera ».


② Désactivez le déclencheur d'arrêt et lancez l'animation.

Pour contrôler l'animation,

Nous avons préparé un indicateur d'arrêt (booléen) appelé PriJudgeStop.

  • Début de l'animation : Faux

  • Si le bouton d'arrêt est enfoncé : Vrai


Voici comment activer et désactiver les animations.


En s'assurant que ce drapeau est faux au départ,

La boucle Do-Loop continuera de s'exécuter correctement.


③ Traitement d'animation à l'aide d'une boucle Do-Loop

Le processus principal consiste en une répétition de la boucle Do-Loop.

Chaque boucle correspond à une image.


Dans la boucle, les étapes suivantes sont exécutées dans l'ordre :



Ensuite, nous expliquerons en détail le processus d'animation à l'intérieur de la boucle Do.

Le contenu de la boucle Do-Loop dans le code de base pour l'animation Excel
Excelアニメーションの基礎コードのDo-Loopの中身

Le traitement encadré en rouge sur la figure est effectué dans une boucle Do ~

  1. formes en mouvement et en transformation

  2. Réflexion sur l'écran (DoEvents)

  3. Détermination du processus d'arrêt

Elle possède une structure simple qui se contente de répéter ces trois étapes encore et encore.


① Formes en mouvement et en transformation

Tout d'abord, au début de la boucle, nous modifions la position et la forme du cercle.

Ici, les valeurs de Gauche, Haut, etc. sont recalculées en fonction des résultats du calcul des coordonnées, et le « mouvement et la transformation pour l'image suivante » sont déterminés. (Nous n'entrerons pas dans le détail du calcul des coordonnées ici.)


② Réflexion sur l'écran (DoEvents)

Appelez ensuite la fonction DoEvents pour que les modifications soient visibles à l'écran.

L'animation n'est pas visible lorsqu'on se contente de modifier une valeur ; elle n'est perçue comme un « mouvement » que lorsque la valeur est modifiée, affichée à l'écran, modifiée à nouveau, et ainsi de suite, de manière répétée à grande vitesse.

Dans ce code, la fonction DoEvents est exécutée deux fois de suite afin d'améliorer la stabilité de l'affichage. Si le mouvement est saccadé, vous pouvez ajuster le timing d'affichage en augmentant ou en diminuant le nombre d'appels à DoEvents.


③ Déterminer s'il convient d'arrêter le processus

Enfin, nous vérifions si le bouton d'arrêt a été enfoncé.

Du côté du bouton d'arrêt, la valeur PriJudgeStop = True est définie lorsqu'on clique dessus.

Ce drapeau est vérifié à chaque itération de la boucle Do ~ Loop, et si PriJudgeStop = True, la boucle est quittée avec Exit Do et le processus d'animation est terminé.

Les trois étapes ci-dessus,

"Mouvement/Transformation → Reflet à l'écran → Arrêter le jugement"

En répétant ce qui précède dans une boucle Do, on obtient une animation continue sur la feuille Excel.

Dans ce travail, « Arbre de Noël », nous faisons simplement quelque chose de plus complexe avec « ① Déplacement et transformation de formes », mais la structure de l'animation Excel est la même que celle ci-dessus.



2. Changement de couleur du texte en dégradé

Le texte « Joyeux Noël » affiché en bas de l'écran est défini sur un dégradé (deux couleurs) à l'aide de la fonction « Remplissage de texte » d'Excel.


Tout d'abord, dans le volet de mise en forme à droite,

  • Type : Dégradé

  • Points de bifurcation : 2 (couleur de gauche, couleur de droite)


C'est identique à la mise en forme de formes normale, et aucun code VBA n'est utilisé.

Paramètres de couleur du texte Joyeux Noël
Merry Christmasの文字色の設定

2-1. Réécrire deux couleurs dégradées à partir de VBA

Durant l'animation, ces deux couleurs sont redéfinies à chaque image par VBA.

Dans le code, pour la forme du logo

TextFrame2 → TextRange → Font → Fill → GradientStops(1),(2).Color.RGB

Cela met directement à jour les valeurs RGB de la « couleur de gauche » et de la « couleur de droite » du dégradé en passant par une propriété légèrement plus approfondie.


  • GradientStops(1).Color.RGB ... Couleur de gauche

  • GradientStops(2).Color.RGB ... Couleur de droite


En substituant les couleurs calculées en fonction du numéro d'image actuel K à ces deux endroits, la couleur de l'ensemble du logo changera lentement.



2-2. Le calcul des couleurs est divisé en deux fonctions


Le calcul de couleur réel est

  • Cal_Logo Couleur 1

  • Cal_Logo Couleur 2

La structure interne des deux fonctions est quasiment identique.


  1. Déterminez les plages minimales et maximales pour chacun des paramètres R, G et B.

  2. Utilisez une fonction trigonométrique (Cos) pour parcourir l'intervalle

  3. Enfin, renvoyez le résultat sous forme d'une seule couleur au format RGB (R, G, B).


Voici le processus.


Calculateur de couleurs de logo
ロゴ色の計算

Étant donné que le nombre d'images pour un cycle (20 dans ce cas) est spécifié, la couleur reviendra à sa couleur d'origine toutes les 20 images, créant ainsi un changement de couleur en boucle.


2-3. Les deux cycles de couleurs sont décalés de 1/3.

La seule différence entre Cal_Logo Color 1 et Cal_Logo Color 2 est que le rythme du cycle (vague) est décalé de 1/3 .


  • Couleur de gauche : Le cycle commence à 0

  • Couleur de droite : décaler le début du cycle de 1/3


En gardant cette image à l'esprit, la « phase » de la fonction trigonométrique a été légèrement modifiée.

Cela signifie:


  • La couleur sur le côté gauche commence à changer,

  • Un peu plus tard, la couleur de droite apparaît.


Cela crée un changement de couleurs, produisant un effet plus progressif , plutôt que deux couleurs qui changent simultanément.


3. Animation de neige


La neige qui tombe sur l'écran est basée sur l'animation Excel « Chute de neige » que j'ai créée précédemment.

Pour plus de détails, veuillez consulter le lien ci-dessous.

Excelアニメーション「雪が降る」

4. Disposition des illuminations du sapin de Noël

Les guirlandes lumineuses sont composées de plusieurs petites formes circulaires.

L'idée est,

  1. Création d'un « cône » virtuel dans l'espace tridimensionnel

  2. Les lumières sont réparties uniformément sur la surface du cône.

  3. Projetez-le en coordonnées 2D sur une feuille Excel.

Voici les étapes.

Bien que le fichier Excel affiche une surface plane, les coordonnées 3D sont calculées et converties en « axe X (gauche et droite) » et « axe Y (hauteur) » pour créer un arbre illuminé en trois dimensions .


Ce calcul utilise des vecteurs tridimensionnels et des matrices de rotation, mais comme il serait trop long, j'omettrai les détails cette fois-ci.



5. Recréez le scintillement des lumières avec un effet de flou.

On peut obtenir un éclairage doux en utilisant l'effet Soft Edge, qui peut être appliqué aux formes.

Ceci se traduit par une modification progressive de la « taille du flou » au cours de l'animation.


Comment exprimer le scintillement des lumières
照明の瞬きの表現方法

Dans la mise en forme des formes d'Excel, chaque forme dispose d'une option appelée [Format de la forme → Flou → Taille] . Normalement, cette fonction ne définit qu'une valeur fixe, mais dans ce cas, la valeur de la taille du flou est modifiée dynamiquement par VBA .


En traitement d'animation, pour chaque image

  1. Calculer le « niveau de flou » en fonction du numéro d'image actuel

  2. Attribuez la valeur calculée à la propriété SoftEdge.Radius de la forme.


De cette manière, l'intensité du flou est ajustée progressivement.

La fonction utilisée est une fonction trigonométrique simple (fonction périodique), qui donne

  • Le moment où il paraît lumineux

  • Au moment où la lumière s'éteint doucement

  • Dès que la lumière revient


Cela crée un changement naturel et progressif de la lumière.

En animant directement le degré de flou, même une forme circulaire statique peut être amenée à ressembler à des LED clignotantes ou à des lumières scintillantes magiques .


résumé

Dans cette œuvre d'animation,

  • Expressions périodiques utilisant des fonctions trigonométriques

  • Changement de couleur du dégradé au fil du temps

  • Calcul de projection 3D vers 2D

  • Effets de flou de forme animés


Elle combine diverses expressions qui peuvent également être réalisées dans Excel , telles que :

Excel VBA peut être utilisé non seulement pour l'automatisation des processus métier, mais aussi pour la création d'œuvres et de performances interactives comme celle-ci.

Nous continuerons à vous présenter des créations amusantes utilisant VBA et des mécanismes techniques, alors restez à l'affût !

 
 
 

Commentaires

Noté 0 étoile sur 5.
Pas encore de note

Ajouter une note

Liste des étiquettes

配列処理(44)

階層化フォーム(33)

ファイル操作(23)

シート・セル操作(11)

コード自動生成(10)

ユーザーフォーム(8)

図形操作(7)

GAS(5)

アニメーション(5)

技術解説(4)

副業(4)

考え方(4)

条件付き書式(4)

イミディエイトウィンドウ(3)

Enum(3)

Googleスプレッドシート(3)

ココナラ(3)

クリップボード(3)

介護(3)

イベントプロシージャ(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Excel(2)

Excel小ネタ(2)

数学(2)

Outlook(2)

文字列操作(2)

小説(2)

HTML(2)

JavaScript(2)

日報(2)

カレンダー(2)

パズル(2)

ステータスバー(1)

開発効率化(1)

コード解析(1)

静的変数(1)

OneDrive(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

六角形(1)

Excel遊び(1)

ボウリング(1)

時計(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

イベント(1)

溶接ロボット(1)

VBA(1)

脱Excel(1)

Discord(1)

ECサイト(1)

CSV(1)

楽天(1)

保育士(1)

シフト表(1)

CDP(1)

楽天市場(1)

経理(1)

javascript(1)

医療(1)

文書作成(1)

LookerStudio(1)

シフト(1)

セキュリティ(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

罫線(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

開発事例(1)

Softex-Celware

Numéro d'enregistrement de la facture : T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware. Propulsé par Wix.com.

bottom of page