GoGoマクロのブログ

初心者向けマクロ講座「Go!Go!マクロ」の筆者三太郎の公式ブログです。

VBAマクロは、「ローコード」で始めよう!!

2022-02-02 10:55:55 | マクロ作成のコツ

最後を飾るラストのテーマは、

「マクロは、”ローコード”で作りましょう!」

というお話しです。

おいおい、最後だと言うのに急に難しそーな話に
なってんじゃないのかよ?(笑)

他のVBA講座をまねて(!?)、それではもっと沢山
のカタカナ言葉を並べて説明してみますけれど、

「ノーコード/ローコード/プロコード」

この話です。

つまり、日本語に言い換えるならば、

「コード不要/低コード/高度なコード」

で、

これは、根本的なプログラミングのやり方を
大きく3つに分類した場合の言い方になりますが、

さらにこれ言い替えるならば、

コード(の難易度)が「無い/低い/高い」

となりますから、至って単純な分類ですけど、

VBAの世間では、この分類自体わかってる人が
殆どいないと思う話になりますから、

最後の最後に、どうしてもこれだけは皆さんに
お伝えしておきたいので、これから書きます。

ちなみに、

「コード」とはプログラムで書いた文書の事で、

 コード≒プログラム

だと思ってくれたらよいです。


で私は長年、富士通などでプログラマー相手の
講師業をやってきましたし、

マクロ言語だけでもVBA以外に10個近くの言語で
開発を経験してきました人間ですから、

「ノーコード(コード不要)」
「ローコード(低度なコード)」
「プロコード(高度なコード)」

17年前からExcelのVBAを教えるにあたりましても、
この3つの区別だけは強く意識してここで教えて
きたわけです。

簡単に解説しますと、

「ノーコード」とは・・・

自分ではコードを書かないプログラミングの事ですが、

これは、一昨年から小学校でも義務化をされました
プログラミングの授業で教えている形態のそれが
この代表例です。(大人の場合だと、RPAってのが
その分類に属する言っていいかと思われます。)

小学校の授業でよく使われる「Scratch(スクラッチ)」
という学習用のソフトがありまして、

(小学5,6年生のお子さんをお持ちの方なら
 耳にしたことはあるかと思います。)

「スクラッチ」は、コードを1行も(1文字も)
書くこと無しにプログラムが組める(ユーザー
インタフェースのみで)という子供向けの
ソフトになっています。


「プロコード」とは・・・

私のような職業でやっているプログラマーが主に
用いるプログラミングの事ですが、

COBOLやC言語やJavaや、最近で言うとPythonやら、

(誰でも名前ぐらいはどれか耳にしたことは
 あるかと思います。)

で書く、非プログラマーには少々難しい、至って
プロ向きのプログラミングのやり方になります。


で、今回のテーマである上記2つの中間点(!?)

「ローコード」とは・・・

極力少ないコードしか書かないでプログラムを組む
手法です。

これは、小学生向きの「ノーコード」とは違って、
まったくコードを書かない、というものではない
ですし、

プロ向きの難しい「プロコード」とも明確に違う
方法であるわけです。

なるべく、自分ではコードを書かずに済ませる為の
プログラミングの手法(方法論)です。

小学生向けではないですので、必要な部分のコードは
自分で書く(追加したり、書き直したりする)必要は
あります。

端的に、皆さんにわかりやすく言ってしまうと、

これは、ExcelのVBAの場合の「マクロの記録」を
使ったプログラミングだと言うことになります。

つまり、

「マクロの記録」を使ったVBAのプログラミングが
「ローコード」で、

「マクロの記録」を使わずに書いたVBAのコードが
「プロコード」に分類される、

と言っていいかと思います。

(プロから言わせると、VBAはプロコードじゃない?!
 確かに!それはお愛嬌です。笑)


この、どちらの方法を選ぶかは、それこそ個人の
自由であるわけなんですが、

少なくとも、前々から申し上げているように、
マクロの(ユーザーが特定のアプリケーション
の操作を自動化する為の)プログラミングに
おきましては、

歴史的にも、本来的にも、「ローコード」を
用いるべきは明らかです。

アプリケーションの一般ユーザーというのは、
決してプログラミングのプロではないからです。

(なお、ここで学んでいるExcelマクロの場合、
 アプリケーションとはExcelの意味です。)

マクロの歴史というのは、いかにプログラミング
の経験と知識のない一般ユーザーでもそれなりに、

いつも使うアプリの操作が自分で自動化できるよう
するための進化を続けてきた、と言うものです。

だから、

VBA界隈ではよく見かける
「マクロの記録」は使うな!ってのは、
そもそもがマクロではない・・・。わけです。


で先日のこと、

昨年お亡くなりになりました作曲家の筒美京平さん
を偲ぶ記事を読んでいて思ったですが、

(筒美京平さんは、誰もが知る昭和歌謡の偉大な
 作曲家です。)

今からもし自分が猛勉強を始めて、作曲家を目指そう
思ったとしても、それはとても無理だな~、と。。
(まぁ、当たり前な話ですけど・・・。笑)

音楽って、たったの3分で作り手の想いが伝わったり、
時には、聞いた人の多くをたったの3分で泣かせる事
だってできてしまう、、

音楽って偉大だなー、って。

私なんかは、どんなに長く、たとえ何万字の文章を
こうして一所懸命に書いたところで、

それ読んで泣いてくれる人なんか、ただの一人も
居ませんわけですから、、
(まぁ、当たり前ですけど・・・。×2回目笑)

そんなことが可能なものは世の中広しと言えども唯一、
音楽だけだろう思いますから、
「曲が作れるって、ほんと凄いなぁ~」そう思った
次第です。


で、これまでの長い人生の中で作曲なんてものには
まるっきり縁遠かった私と同様に、

これまでの人生で、プログラミングなんてものには
まるっきり縁の無かった人が、

にもかかわらず、、いきなり

プロと同じ「プロコード」を勉強して書こうとする、
(初心者にプロコードを強要する人が居る、)とは
思いますけど、そこに無理が生じているわけです。

だから、SNSなどへの最近の投稿を見ましても、

・マクロわからんすぎてー とか、
・勉強中だけど、マジで意味不明 とか、
・色々本読んでみたけどちんぷんかんぷんで諦めた
とか、

そう言ってる人が後を絶たない訳です。
それこそが要するに、「プロコード」です。

私のような本職のプログラマーいいます者は、
朝から晩まで、年がら年中、プログラムを考え、
プログラミングをやっています。

この職種は一般的に残業も多いですから、1日が
10時間労働と仮定して250日出勤したとすると、
年間の労働時間は2500時間の計算になりますが、

プロの職業プログラマーは、その大半の時間、
プログラムを書いています。

それが、「プロコード」です。

だから、本職でもない自分の仕事で日々忙しく、
これまでの人生でプログラミングなんてものには
縁遠かった人が、

いきなり、

そんなプロコードをマスターしよう、だなんて、
そんな無茶をやったらいけません!

無謀です!!

(まぁ、冷静に考えたら、しごく当たり前の話
 だと思いますけど・・・。)

それ故の、

「ローコード」です。ローですよ、ロー。(笑)

一般のExcelユーザーは、可能な限りローコード
でのマクロ作りをやりましょう。

そもそもが、「マクロ」のコードとは、

そうしたプログラムには縁遠かった一般ユーザーが、
「ローコード」でプログラムを書く為に開発された
もの、

それが、本来の(本質の)意味になります。

マクロの言語をVBAしか知らない人に、
その辺を理解もせず、勘違いをしてプロコードを
教えちゃっている人が、非常に多いのです。


あと、世間でよく聞く、

引継ぎできなくて作った人が退職したら困るから、
「Excelでマクロ組むのは、禁止だ!」
って言ってる会社が結構あるかと思いますけど、

けどそれで、全部を禁止にしてマクロがもたらす
多大な利便性と、社員の真のIT力の向上とを
享受できなくなってしまういうのは、

実にもったいない話です。

たから、「マクロを禁止!」するのではなくて、
「VBAをプロコードで書くのは禁止!」
とすればいいだけ思います。

「ローコード」で書けば、皆で共有ができます。

職場の一人や二人しか理解することのできない
難しいプロ向きのコードでVBAを書くことを、
禁止してください。

業務を成功に導くのは、

「1人の天才」ではなく「10人の協力者」である
~~~~~~~~~~~~~~~~~~~~~~

それに間違いはない思いますから、結論的には、
職場の皆でVBAの「ローコード」勉強しましょう!

つまり、

それは、ここで長年私が教えてきた
「『マクロの記録』の賢い応用の仕方」
を学ぶ、

それです。

例えは非常に悪いのですが、

今の新型コロナの場合でも、母数を増やせば
(感染者数が増えれば増えるほど)、
それに比例して重症者の数も遅れてどんどん
増えていくわけですし、

今度のまたステルス?オミクロン株みたいな
新種の亜種や新たな変異株が出現するリスクも、
必然的に増していくわけなので、

とにかく、

「分母」を増やせば「分子」も増える。
「分母」が、まずは重要です。

すなわち、

マクロの入り口にたたずむ、未だ中に入ろうと
しない人に、一歩でも、半歩でもいいですから、

「ローコード」でそのハードルを下げて、
少しでもマクロに踏み込んでもらえたならば、

その中から、ある程度の割合でマクロは面白い!
ってなって、勉強始める人が出てくるものです。

100人が100人とも面白い!とは言いませんが、
私の試算ではその「分母」と「分子」の割合は
概ね、

「プロコード」← Excel職場の30人に1~2人
「ローコード」← Excel職場の30人に10~20人

です。よって、

「ローコード」が、グーンと成功者を増やす!

プロコードで書かれた本などで勉強する場合の、
少なくとも10倍以上その可能性高める思います。


では最後に、

この両者(プロとロー)の見分け方なんですが、
VBAの場合のこの見分け方は、非常に簡単です。

「オブジェクト」というワードが目次に書いて
あったら、そこに書いてあるのは「プロコード」
です。

(それは、プロ向きのオブジェクト指向型言語
 と呼ぶコードの書き方の意味になります。)

そこには、「メソッド」というワードも
必ず書いてある思いますから、まさしく
それがプロ向きの「プロコード」です。

オブジェクト指向は、非プログラマーや初心者
には、非常に理解し難い概念です。


あともう一つ、最初の初期設定の説明の中で、

「変数の宣言を強制する。」

これにチェックをしろと言っているのも、
それは「プロコード」です。

これは、その筆者がこれからあなたに
「プロコードを教え込みますよ!」と、
そう宣言されたものと思って、間違いないです。

買った本の最初にする設定が書いてあるページ
を見て、上記の記載があった場合には、
その本でVBAの勉強はしない方が得策だと、

私は強くアドバイスしたい!です。


案の定、またしても最後の文章も長くなって
しまってきましたので、今日はこの辺で。。。


と言うことで、皆さん
マクロは、「ローコード」で始めましょう!!


コメント    この記事についてブログを書く
« マクロは「活字」で学ぶのが... | トップ | マクロに"オブジェクト指向"... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

マクロ作成のコツ」カテゴリの最新記事