LoginSignup
1
1

More than 1 year has passed since last update.

アラフィフの素人VBAリーマンが、次に取り組むものは

Last updated at Posted at 2020-03-20

EXCEL-VBAに飽き足らない

会社でもEXCELを使った仕事は今更ながら多すぎる

そこでVBAを覚えて、いろいろプログラミングの模索をしているのであるが・・・

実際のところ、そろそろ限界である。

最近はUIPATHなどの、RPAツールがVBAの次に使われるものと
言われているが・・・

Win32Api

さてVBAを拡張しようと思ったら、まっさきに取り組むのはDLL開発である。

DLLというのは、コンパイル済みのEXEファイルで、
そこに関数などを書いておけば、これをVBAから使うことができる。

さて仕事で、使うとなったら、どんな時が考えられるだろう?

・画像処理
・AI処理
・RPA処理(いわゆるEXCELアプリケーションの外側の開発)

勉強法

そんなわけで、いきなりプログラム開発環境が必要になるのであるが、
なにせ最新のVISUAL STUDIO 2019をインストールしても、
そもそもVBA拡張を素人がやっている時代は、もう10年も前である。

ゆえに、最新のIDEを入れても、そもそもチンプンカンプンなのである。

それに、最近のトレンドは、WINDOWSよりも、WEBの方にシフトしているので、
そもそも時代錯誤もはなはだしいのである。

オープンソースの活用

画像処理系で言えば、OPENCVを使いこなすことが、一番良い。

しかしながら、OPENCVはc++、PYTHONを正式にカバーしているが、
そうなると、入りやすい順番で言えば、PYTHON一択になってしまう。

この時に困るのが、WINDOWSでPYTHONを動かす環境を
作る必要がある。

特に、仕事での使用だと、素人が作ったアプリをわざわざPYTHONを入れて
使ってもらうことは、ハードルが高すぎる。

その選択としては、WEBアプリにしてしまって、PYTHON処理を
隠蔽してしまうことが手っ取り早い。

なので、それが選択できるような状況であれば、そこそこPYTHONを使えばいいだろう。

WEBアプリ開発

さて、気軽にOPENCVや、AI開発と言ったことに取り組むのは楽だ。
しかしながら、いざアプリとしてサービス構築するとなると、
この先には、地獄の覚悟が必要である。

まずWEBを立ち上げるのに、PYTHYONでサーバーを書く必要がある。
そのためには、FLASKやDJANGOと言ったフレークワークの勉強が必要である。

その後に、クライアント側を構築するにあたっては、
HTML,CSS,JAVASCRIPT(Jクエリー)などと言う
いまどきの言語を総ざらいする必要がある。
(正直言って、VBAからスタートした素人では、少なくとも3か月はかかるだろう)

c++

そこで、いまさらながら舞い戻ってくるのであるが、
デスクトップアプリの方であるが、これがまたまた難解である。

何故かというと、VISUAL STUDIOというツールを完璧に使いこなす必要がある。

このソフトが一筋縄に行かないのは、マイクロソフトのWINDOWS技術を
完全に理解しないとならない。

それこそc++と言えば、WEB技術が一般になる前の言語なので、
いわゆるフレームワークが古い。

最近は、.NETというフレームワークが一般的であるが、
.NETはc#、VBしかサポートしていないからだ・・・

それにEXCELにはバージョンがあって、32bitと64bitで
せっかく作ったライブラリが動かなくなったりして、
いわゆる最新技術のフレームワークで、そもそもコンセプトの古い
EXCEL,VBAをマッチさせるのは、至難の業になってくる。

取り組むべきもの

さて、こういう風につらつら、書いてきたが、
VBAの次に取り組むものとしては、やはり現時点では、
OPENCVをc++で使いこなすのが、
最優先になってくる。

c#というもの

さて、c++の前に、C#は一体なんぞや?
という疑問が出てくる。

そもそも、VBAを知っている人間からすれば、実はC#ではなく
VBの方が、入りやすいのではないかと思ってしまう。

しかしながら、世の中の流れなのか、はっきり言って、VB.NETでの
入門は、すごく危険である。

とにかく実行速度が、遅くなるらしくて、.NETの技術を
使いこなすのであれば、その経過でVBを触るのもありである。

しかしながら、最終的にはC#を触ることが、一つの選択にはなってくる。

OPENCVSHARP

一応C++の関数を、C#でも使えるようにする、ライブラリが世の中には存在する。

しかしながら、そもそもc++でのコンパイラも使いこなせないものが
C#に飛びつくのは、かなり危険である。

C#というのは、そもそもJAVAとよく似た文法であって、
そこの世の中の流れを、マイクロソフトが対抗したものだ。

なので、C#が完全に使えるようになってくると、やっとエンジニアとしては
飯が食える状態になったと言えるのではないか。

(しかしながら、世の中と30年以上のギャップを埋めるには、
相当の代償を払わないと、いまの現役エンジニアにはかなわないだろう)

総まとめ

アラフィフのオッサンエンジニアが、いまから頑張ってできることは
この長い時代の技術の進化を、頑張れば数年でワープできることだ。

だから、昔の書物を入手して、最新の技術から俯瞰して、
その技術を学びなおすことが良いと思う。

これはスマホ一色の現代人が、そもそもスマホが出てくる前の
時代をタイムマシンに乗ってさかのぼっていくようなものだ。

先人の知恵を借りるという事

いつの時代にも、学ぶべきものはある。

先人の知恵と言うものは、つねに馬鹿にはならないし、
現代人だからと言って、先人が歩いた道を知らずに、
どうやって道を切り開いてきたかの、そのエッセンスを知らずには、
この先の道を進むことはできないである。

吉村昭の小説「漂流」

私の大好きな小説に、吉村昭の「漂流」と言うのがある。

この中で出てくる主人公は、江戸時代の船乗りで、
無人島に流れ着き、たった一人で、その困難を乗り越えて、
最終的には何十年もかけて、日本に帰ってくるという偉業を無しとげている。

もしも、仮に今の自分が、その難破船に乗った一員だったとして、
ケータイ電話も、食料も何にも持たずに乗船していたら、
いくら現代に生きて、いろんな知識を持っていたとして、
この状況で、生き抜く知恵を出すことはできない。

要するに現代人は、現代だから存在できるのであって、
江戸時代に行ってしまえば、おそらく当時の人よりは
劣っていて、時代の差と言うものは、何の優位性もないという事である。

昔の人の知恵を馬鹿にすることはできない。
つまり、今を学ぶということは、つまりそれは過去を知る。

そういうことである。

つづき

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1