エクセルバカの開き直り

知人のところにきたあるエクセル関係のメルマガを見せてもらったが、そこには面白いことが出ていた。それは「<ループは、なぜ i で回すのか?> (中上級者向き)」という内容の話である。

このどこが「中上級者向き」「上級者向き」「専門的」「専門的で難しい(中上級者向けの話)」なのか。まずそれが笑えた。この配信者がそう考えているというだけのことである。この異常な精神構造、これは世間にウヨウヨいるエクセルバカに共通しているが、その方にまずあきれてしまうのである。
参考
エクセルのマクロ作りに用いるVBAというプログラミング言語ですが、これも文字通り、そのルーツはこのVBAの3文字の中心のB、すなわち、ベーシック(BASIC)言語です。
ベーシック言語とは、私の年代以上(50代以上)の人であれば、ほんと誰でも記憶にあるというほどポピュラーな言語だった・・・というもので、誰でも習得しやすいように教育用のプログラミング言語として開発されたというものです。
ちなみに、この「ベーシック」という単語を辞書で調べてみると、「基本的なこと」「初歩的なこと」と説明されていますが、用途の例でも「ーな知識」「ーな着こなし」などとなっています。
その名の通り、昔は皆が手軽に組んでいたベーシック言語というものは本当、誰でも組める親しみやすい大衆的な言語でありました。
- エクセルバカ相手に配信している某メルマガ(2016/10/30配信) -
BASICは確かに入門者用の言語であるが、これはBeginner's All-purpose Symbolic Instruction Codeの各語の頭文字をつないだ簡略語であって、「辞書」に「「基本的なこと」「初歩的なこと」と説明されて」いる「「ベーシック」という単語」とは何の関係もない。

参考
最初に出てきた cnt というのは、この「C言語」の流派(?!)に属します。C言語では伝統的にこの変数名を使う人が多いです。
- エクセルバカ相手に配信している某メルマガ(2016/10/30配信) -
根拠のない独断であり、このオトコの勝手な思い込みにすぎない。ループなどの時に使う変数名(いわゆるカウンター)には「cnt」でも「baka」でも「aho」でも使えるが、「C言語では伝統的にこの変数名を使う人が多い」などということは聞いたことがない。大半は「i」とか「n」などを使っているだろう。

この点について、この世界の「ご本家」「宗家」のカーニハン・リッチー「プログラミング言語C 第2版」(bk3_0056)でカウンターにどんな変数が使われているか見てみよう。全部見るのは疲れるので、この本の第1章(6~42p)に使われていたものをあげると次のようになる。nやiで始まる語が多いが、それはnにはnumber、iにはintなどの意味を含めているからである。

参考 「1.5.2 文字のカウント」という部分では次のようになっている(22p)。 long nc; ++nc: 「1.5.3 行数のカウント」という部分では次のようになっている(24p)。下記の「l」はアルファベット小文字の「エル」。 int nl; ++nl: 「1.5.4 単語のカウント」という部分では次のようになっている(25p)。 int nl, nw, nc; ++nc; ++nl; ++nw; 「1.6 配列」という部分では次のようになっている(27p)。 int i, nwhite, nother; ++i; ++nwhite; ++nother; 「1.8 引数-値による呼び出し (call by value)」という部分では次のようになっている(34p)。 int n; --n; 「1.9 文字配列」という部分では次のようになっている(36p)。 int i; ++i; 「1.10 外部変数と適用範囲」という部分では次のようになっている(40p)。 int i; ++i;

少なくともこの範囲では「ご本家」でも「cnt」などという変数名は出てこない。おそらくこの本のどこにも出てこないだろう(近々確認しておこう)。逆に、こんな変数名は自由に何でもわかりやすいものを使っていることがわかる。なお、下記の追加事項も参照。

参考
「マクロの記録」に毛の生えた程度の修正でさらっと作れる・・・というほうが、ベーシック流派の世界では「断然カッコよい人」に映るはずです。
- エクセルバカ相手に配信している某メルマガ(2016/10/30配信) -
このオトコが書いているメルマガは「「マクロの記録」に毛の生えた程度」のものばかりである。そのことへの自画自賛である。単にエクセルバカオヤジの開き直りにすぎない。エクセルバカのアタマがバカなままで進歩しないわけもよくわかるようである。要するに、誰にでもできる簡単なことを、それが「カッコ」いいとおだてて商売しているだけである。さすが商売人、見上げたもんだよ(笑)。

世間に出回っているエクセルのマクロのほとんど全部は「マクロの自動記録」に毛の生えたようなものにすぎない。単にエクセルで実行する手順を記録したものでしかない。エクセルバカは、これをプログラミングだと思い込んでいる者が多い。それでこういうバカな商売人でも生き延びる余地があるわけである。

エクセル業者がこの程度である。そしてこれがほとんど全部の「エクセルお稽古事」業界のレベルでもある。だから、能のないエクセルバカが大好きな「文字コードごっこ」「バイナリごっこ」「UTF-8ごっこ」「改行ごっこ」「エンディアンごっこ」「16進数ごっこ」「CSVごっこ」「暗号化ごっこ」などは守備範囲外になる。これらは「マクロの記録」程度ではできないからである。

ところで、以下の部分で「VBAで(ベーシック系言語で)下記のように使ういうのは(気持ちは分かるんですが)ちょっとダサイ」としているが、このオトコの書いている赤下線部の意味が不明である。
参考
++++++++++─
cnt = 0
For i 1 to 101)
 cnt = cnt + 1
  ・
  ・
Next i
++++++++++─
(これは、C言語ではこの場合
cnt = cnt + 1 → cnt++; と書きますから、
C言語系の言語では cnt を用いる i++; など1文字変数ではちょっと見ずらい・・というわけです。)
- エクセルバカ相手に配信している某メルマガ(2016/10/30配信) -
NOTES
1) これは原文のまま。BASICでは「For i=1 to 10」となる。

とにかく、何が言いたいのかわからないが、「cnt というのは、この「C言語」の流派」で使う変数名だからBASICで使うのはけしからん、だからダサイということのようである。枝葉末節にこだわった笑える発想である。

参考
手軽に誰にでも組める目的で開発されたはずのベーシック系の言語(VBAも含めて)で、いちいちわざわざ、全部の変数を定義して無意味な Dim Dim Dim Dim 書いてやってるプログラムを目にすると、実に「邪道」ですね。「みっともない、かっこ悪い、歴史知らない、通じゃない。」
- エクセルバカ相手に配信している某メルマガ(2016/10/30配信) -
古代ベーシック(または原始ベーシック)言語への憧憬、変数が無宣言で使えた昔のBASIC小僧の郷愁である。このオトコが昔そんなことをしていた(そして今もそれを引きずっている)というだけのことである。笑えるのは、昔の古いこと(「歴史」)を踏襲するのが「」だという。進歩のないオトコのたわごとである。

多くの(大半の)プログラミング言語は変数を宣言して使うのが普通である。幼稚なBASICの無宣言変数の悪い習慣がついてしまうと他の言語を使う場合に困る。また、原始BASICには言語的な欠陥が多数あって、プログラミング面では害悪が多い。それで多くのBASIC小僧はそこを卒業してしまったはずである。今残っているのはこんな「生きた化石」ばかりである。それらがバカを相手に商売をして謬見(間違ったこと)を広めている元凶になっているのである。

BASICというのはプログラミングのスキルアップには何の役にも立たないが、バカでも簡単に扱えるようになっている点が唯一の取り柄である。ただ、それだけである。

このオトコの滑稽さは、C言語のプログラムで次のように書く事が「正道である、みっともいい、カッコいい、歴史知ってる、通である」と絶賛しているのと同じである。世間では笑いものにしかならない。つくづく、このメルマガの相手が能のないエクセルバカで本当によかったねぇ、オジサン(笑)。

参考 main(argc,argv) int argc; char *argv[]; { /* C言語も昔はこんなことをしていた */ /* 今こんなものをどこに出しても嘲笑の的にしかならない */ }

しかし、これで世間にウヨウヨとはびこっているエクセルバカがなぜバカなのか、その理由の一端がわかったような気がする。「上級」や「中級」などとランク付けができるほどの「おエライ」つもりでいるエクセルの商売人がこの程度なのである。いわんや普通のエクセルバカにおいてをや。推(お)して知るべしである。箸にも棒にもかからないバカなのも当然である。

いずれにしても、エクセルバカが未来永劫にわたってバカなほうがこういう商売人にはたいへん都合がいいということがよくわかる(笑)。バカを「生かさず殺さず」適当におだてて利用していく、その悪知恵だけは抜群に発達しているのである。

- 2016/11/02 -



ちなみに、昔のMicrosoftの公定の「サポート技術情報(JPKB.CHM)」の「Excel」の「[XL97] Dir 関数でフォルダ (ディレクトリ) 名のみを取得する方法」には次のような例が出ている。VB/VBAでカウンターに「CNT」が使われている。このオトコの書いていることが何の根拠もない妄言であることがよくわかるはずである。ウソ、インチキを書いてもエクセルバカのような桁外れのバカにはそれはわからない。バカ相手の商売はラクである。



タコの殿堂
バカがバカを相手に商売できるのがエクセルだから、こんなことは普通のことね。