TOPページ


Excelの関数って作るものでしょ。その2
作る??・・と言っても・・どうやって??


どうも!
NaviatorEnterprise代表の☆です。
今回はExcelの関数って作るものでしょの続きを書いていきたいと思います。

今行ってる職場では、定期的に勉強会をやっています。
各個人がそれぞれ、得意分野や業務に関係するような事で何かテーマを決めて発表する。と言うものです。

自分はExcelのマクロやPHP、ちょっとだけC#なんかもやった事があるので、プログラムの事について採り上げたのですが、前回書いた通り、その時は聞くだけで、誰もマクロを覚えようとしない・・・。
(ちなみにURLの最後を見て貰えばわかると思いますが、このページもPHPを使っています。)
「難しそう」「面倒くさそう」という固定概念プラス、「必要性に迫られない」という事かと思います。
例えば、単純処理なのに大量に同じ作業が発生した。頼める人がいない。外注する予算がない。チマチマやってる時間もない。
という事が重なればどうでしょう?

ExcelVBAの書籍などちょっと大きい書店に行けば溢れていますし、ちょっとしたサンプルコードや解説はネットをちょっと徘徊すれば、親切な人たちがいくらでも書いています。
しかし、それでも、覚えた方が良いんじゃない?って人でさえ、「マクロ出来たら良いのはわかるけど・・・」という反応です。

結局、覚える人は覚えるし、やらない人はやらない。って事ですが、一人でもなにかのキッカケになって欲しいなと思い、こんな事を書いているわけです。

これは他の話しでも当てはまる事だと思うけど…
マクロ、と言うかプログラムを覚えようとして挫折する人って、初めにフォーカスするところが違うんじゃないかな?と。

つまり、何か処理させたい具体的な事があるわけではなく。漠然となんとなくプログラムを覚えたい。みたいな。
プログラムは手段であって目的ではありません。処理させたい事がないなら、覚えなくてよくね??って思います。
勿論、基本は大事ですが、そこにあまり固執するあまり挫折してしまっては本末転倒かと・・。

例えば、プログラムには変数というモノが出てくるけど、(と言うか変数の無いプログラムはプログラムぢゃなくて良くね?って感じだけど)この変数には”宣言”や”型”ってのがある。

ぶっちゃけ”覚えようとしなくてイイ”とすら思います。

型というものを全く知らなくても、そこそこ高度なコードを書くことは出来ます。PCが内部で勝手に適切と思われるもので扱ってくれます。
ただ全く知らないと勿論問題が発生するので、その時「型ってのが原因かも…」と思って調べても遅くはない。効率的ではないけど、そこに囚われ挫折するよりはよほどイイ。
複雑なものを書くときは宣言を省くと混乱の原因になったりもします。勿論、真っ先に覚えた方が良いですがあえて飛ばしましょう。

かく言う私も、厳密に全部知ってるわけではなく、よく使うものだけ知ってる程度で何か問題がある時だけ目的に応じて調べる。

つまり、手段の事で悩んでもしょうがない。まずはどんな形であれ、目的の動作をさせる事が一番大事。
目的に応じて、だど思う。そうする事で、「やった!」と言う実感、臨場感を得る事が出来ます。
実際のところ人間、臨場感を凌ぐパワーの根源なんて無いわけで…。
逆に臨場感のないものに人は何の反応も意欲もない。
日本の義務教育に英語がありながら、英語を話せる人の方が少ないのは臨場感がないからだと思います。
学校の成績の悪いある少女(勿論英語も全然ダメ)が、とあるアメリカ人と知り合い、一目惚れしたことから、僅かな期間で英語ペラペラになった。と言う話は良い例です。
彼女は、その彼とコミュニケーションをとるという確固とした”目的”があり、英語はその最適な”手段”だったのです。

話は逸れましたが、ネットでたまにサンプルコードとか見るけど、Excelのマクロのコードって、どこに書くの?という人の為に、極限に要点だけを下に示します。
勿論、色々あるんですが、そんな事はおいおい覚えれば良いわけです。隙間理論というやつで、その色々が気になりだすとキリがないので、実践→勉強の繰り返しです。



マクロを書くためのVBE画面を開く。どこだかよくわからなければ、Alt+F11で一発。


挿入タブから標準モジュールを選択


画面に表示された白く広い領域にプログラムを書く


作った実行型マクロの実行方法


作った関数の実行方法


作った実行型マクロのサンプル

Sub マクロのタイトル()

     MsgBox “こんにちは”

End Sub


作った関数のサンプル

Function 関数のタイトル(セット)

     関数のタイトル = セット + 1

End Function


画像ではコードや関数の引数が書いていないので、超簡単な例でそれぞれ一行のサンプルを書いています。
もうちょっと説明を書いた方が良い気もしますが、とにかくリアリティ(臨場感)を感じてもらう事が目的なので、今回はこれだけにしておきます。


Naviator 企画
INFO:NaviatorEnterprise.com