「日経パソコン」2013年1月14日号のニュース&トレンドに「数独のExcelマクロを有効にするとウイルス感染」という記事を見つけたので、Excel VBA 創世記の頃のことが話題になった。
昔、VBAソフトを作ったときには、他人に渡ってマクロが自分の仕事に使い易いように「書きかえられて」利用されて、不具合が生じたとき、責任を押し付けられて大変不愉快なおもいをしたことがある。それを避けるためマクロを使った、防御策を仕掛けておくことがあった。
例えば、何回か使うとマクロが無効になるとかいった風な仕掛けをして置いたりしたな。悪気はないのだが、急に画面に警告が出るとか、メニュー・バーなんかが全部なくなってしまったり、画面がブラックアウトしたりね。ちょっと過激になると、ウイルスと呼ばれても仕方ないよな。
まあ、Excel VBA のマクロ機能を使ったちょっとした「いたずら」が流行ったものだが、いまでは初期設定の段階でマクロが無効になっているから、フリーソフトでも悪意がない限り大丈夫さ。
英国ソフォスは12月19日、数独と呼ばれるパズルの問題を生成する特定のExcel ファイルに、「マクロウイルス」が仕込まれていると注意を呼び掛けている。と書いてあるが、英国では、数独作問ソフトが出回っているようだね。お前も数年前、作問ソフトを作ったそうだが・・・
ええ、one click で100問できます。各問毎に、レベルやパターンも選択できるものです。簡単なものなら、今ある問題のランダムな数字変換だけで新しい問題集が作れますよ。1~9までのランダムな数字を発生させるマクロを下に書いておきます。
ところで、ソフトを公開しない理由は何故でしょう?
Sub input_random_number()
ReDim ax(9)
For i = 1 To 9
cont:
Randomize
aaa = Int(9 * Rnd + 1)
For j = 1 To i
If ax(j) = aaa Then
GoTo cont
End If
Next j
ax(i) = aaa
Next i
'
For i = 1 To 9
Sheets("Sheet1").Cells(2, 3 + i).Value = ax(i)
Next i
End Sub
0 件のコメント:
コメントを投稿