缺少的quines:Visual Basic(用于应用程序)

das*_*zul 7 vba quine

今天我在维基百科上浏览了一些随机的极客文章,以获取我日常无用的知识.我偶然发现了quines,这是打印自己的源代码的程序.我发现这是让我的大脑受伤的好方法,所以我开始在VBA中使用quine.我有两个很好的理由:

  1. 我找不到用VBA写的quine
  2. VBA鼓励你编写尴尬的代码,让你的大脑受到伤害

这是我的杰作:

Sub q()
c = "Sub q();c = #;Debug.Print Replace(Replace(c, Chr(59), vbNewLine), Chr(35), Chr(34) & c & Chr(34));End Sub"
Debug.Print Replace(Replace(c, Chr(59), vbNewLine), Chr(35), Chr(34) & c & Chr(34))
End Sub
Run Code Online (Sandbox Code Playgroud)

我的挑战:你能让它变得更短(最好是更尴尬)吗?

Ale*_* K. 7

怎么样

Sub q() '//in mdl1
Debug.Print Workbooks(1).VBProject.VBComponents(5).CodeModule.Lines(1, 3)
End Sub
Run Code Online (Sandbox Code Playgroud)


小智 3

我不知道是否有人再读这个帖子,但这里有一个更短的帖子,基于 das_weezul 的 quine。它独立于“Option Explicit”(与 das_weezul 不同),并且独立于您正在使用的 Office 应用程序(即 Excel、Access、Word 等)——与 Alex K 不同。在立即窗口中使用它(Ctrl+G):

c="c=#:?replace(c,chr(35),chr(34) &c &chr(34))":?replace(c,chr(35),chr(34) &c &chr(34))
Run Code Online (Sandbox Code Playgroud)