Aujourd'hui, j'ai surfé quelques articles au hasard Geek-Stuff sur Wikipedia pour obtenir ma dose quotidienne de connaissances inutiles. J'ai trébuché Accross Quines, qui sont des programmes qui impriment leur propre code source. J'ai trouvé qu'un excellent moyen de faire mal au cerveau, alors j'ai commencé à travailler sur une quiné dans VBA. J'ai eu deux bonnes raisons:
Voici mon chef-d'œuvre: p> Mon défi: pouvez-vous la rendre encore plus courte (et de préférence plus gênante)? strong> p> p>
3 Réponses :
Que diriez-vous de
Sub q() '//in mdl1 Debug.Print Workbooks(1).VBProject.VBComponents(5).CodeModule.Lines(1, 3) End Sub
Je savais que quelqu'un viendrait avec ça;) +2 pour la longueur, -1 pour une bonne lisibilité;)
Je ne sais pas si quelqu'un lit cet anomore de fil mais voici un encore plus court, basé sur la quiné de Das_weezul. Il est indépendant de "Option explicite" (contrairement à Das_weezul's) et il est indépendant de l'application Office dans laquelle vous travaillez (c'est-à-dire Excel, accès, mot, etc.) - Contrairement à Alex K. Utilisez-le dans la fenêtre immédiate (CTRL + G):
c="c=#:?replace(c,chr(35),chr(34) &c &chr(34))":?replace(c,chr(35),chr(34) &c &chr(34))
Vous pouvez même faire que quatre caractères plus courts: c = "c = # #: A = CHR (34) :? Remplacer (C, CHR (35), A & C & A)": A = CHR (34): ? Remplacez (C, CHR (35), A & C & A) CODE>
Je lis toujours ça: D C'est génial de voir ce fil revenir à la vie. Cette solution a l'air vraiment slick!
Désolé @ALEX K, Dorian a saisi le trône: D
@Dorian j'ai ajouté quelques astuces à cette réponse et vous pouvez le voir ci-dessous - laissez-moi savoir si vous trouvez autre chose qui la rend plus courte
Quelques nouvelles modifications de @dorian I de la réponse's obtient le concount de la vba quique à descendre à 77 octets Les astuces de clé qui permettent de se produire sont l'utilisation du caractère 7, code>, sur le caractère 35, # code>, et utiliser une addition de chaîne plutôt que la concaténation à la chaîne. p> p>
Très bien. Je ne savais même pas qu'il est possible d'ajouter des chaînes dans VBA.