7

今日、私は毎日役に立たない知識を得るために、ウィキペディアでオタク関連のランダムな記事をいくつかサーフィンしました。私は、独自のソースコードを印刷するプログラムである quines に出くわしました。これは私の脳を傷つける素晴らしい方法であることがわかったので、VBA でクワインの作業を始めました。私には2つの正当な理由がありました:

  1. VBA で書かれたクワインが見つかりませんでした
  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

私の課題: もっと短く (できればもっとぎこちなく) できますか?

4

3 に答える 3

7

どうですか

Sub q() '//in mdl1
Debug.Print Workbooks(1).VBProject.VBComponents(5).CodeModule.Lines(1, 3)
End Sub
于 2011-04-21T13:22:08.287 に答える
3

誰かがこのスレッドを別の方法で読んでいるかどうかはわかりませんが、das_weezul のクワインに基づいた、さらに短いスレッドがあります。これは "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))
于 2015-07-03T13:53:34.843 に答える