十年一日のパソコン系メルマガ
エクセルバカを相手にした業者の子供だましのエクセルマクロの代表例である。世間に出回っているエクセルのマクロのほとんど全部は「マクロの自動記録」に毛の生えたようなものにすぎない。
エクセルのマクロ
エクセルで実行する手順を記録したもの。これをプログラミングだと思い込んでいる者が多い。
このメルマガ業者は実はもう10年ぐらい前から同じネタを使いまわしているのである。パソコン系インチキメルマガを参照。エクセル自体が進歩のない骨董ソフトだからこういうことが起こっても不思議なことはない。
この作成者がいうところの「自動集計」というものに出てくる例である。
資料
Sub Macro1()
Range("B1").Select
For i = 1 To 10
a = ActiveCell.Value
ActiveCell.FormulaR1C1 = a * -1
ActiveCell.Offset(1, 0).Activate
Next i
Range("B2").Select
End Sub
「自動集計」とは「繰り返し行う操作のマクロ化」のことを指すようである。こう言うと「何か高度なこと」をしているような響きかあって、いかにもエクセルバカが喜びそうなネーミングである。
内容的にはマクロの自動記録に出てくるようなレベルのものである。昔の中学1年生ぐらいの者がBASIC入門の第1時間目に作っていた程度の「繰り返し」ものである。こんな程度のものを少しずつ変えて日数を稼いでいくのがこういう業者の普通のパターンである。
そして、こういう程度のものが数回続いた後ではこんなものになる。
資料
Sub Macro1()
n = Cells(Rows.Count, "B").End(xlUp).Row
Range("B1").Select
s = 0
For i = 1 To n
a = ActiveCell.Value
s = s + a
ActiveCell.Offset(1, 0).Activate
Next i
ActiveCell.FormulaR1C1 = s
Range("B2").Select
End Sub
「For ~ Next」ネタだけで数ヶ月は「引っ張る」。その営業戦略はまさにペテン師にも匹敵する。
こういう業者連中のふれ込みは「エクセルマクロが使えるようにする」だが、実際は「エクセルマクロが使える」ようになっては困るのである。そんなことになったら自分の「商売が上がったり」になるからである。もっとも、こんな程度のメルマガなど100年見たところで自分で使えるようにはならないだろうが(笑)。
それで、いかにバカでも「使えるようになる」という幻想を与え続けていくか、そのことだけに腐心することになる。その結果、こんな低レベルな子供だましのようなことを「もったい」をつけてウダウダと長々と引き延ばして「ご教授」することになるのである。
ところで、上で使われているFormulaR1C1のFormulaは「公式」「式」という意味である。本来はここで数式を設定するのが普通であろう。
「マクロの自動記録」では、「A3」に「111」を入力した場合に次のように記録されるからそうしているようである。
資料
Range("A3").Select
ActiveCell.FormulaR1C1 = "111"
FormulaR1C1とValue
「ActiveCell.FormulaR1C1」と「ActiveCell.Value」の実際上の差はほとんどない。
- 2014/06/15 -
タコの殿堂
エクセル屋の世界はバカがバカを相手に商売できる気楽な世界なのよね。