Excelを勉強しましょう EnjoyExcel

アイコンの機能や関数の説明、VBA初心者向けの勉強方法について情報掲載しています。関数、VBAともに理解が進むように出来るだけ事例を交えて説明しています。

自分の仕事をVBAでサッと処理したいのですが・・・どうやってますか?

f:id:EnjoyExcel:20211022152306p:plain

使い道といってもキャッチ画像には主語がないので何のことか分かりにくいと思います。ごめんなさい。

 

数日前に会社でVBAの勉強会を実施した際 雑談の中で「VBA自体は分かってきたのですが自分の仕事の中で使う事が出来ません」、「具体的にどうやって使ってますか?」という質問をいただいたことがありました。

 

これは勉強会が終わってからも定期的にいただく質問でした。皆さん悩んでいる様です。回答するという意味も込めて記事にしてみようと思います。

 

案件としてはVBA関連ですが関数を使う時、すべて手作業での仕事でも対策は同じです。

 

Excelで作業するうえではすべてに共通する対策となりますのでVBA分からない人も読んでみてください。

 

方法としては作業を書き出し線で繋いだものを作ってからコードに置き換えるという事をやって実際の仕事とコードを繋いでいます。前回の記事の最後の辺りに少し書いてます。

enjoyexcel.hatenablog.com

 

これってみんな毎日頭の中でやってる事なんですよ。

「〇〇という結論に向けてどうやってデータ整理しようか?」って考えて色々作業しますよね。考えた手順を順番に書き出してあとは線で繋ぐだけです。

 

一般的には「フローチャート」って呼ばれるものになります。

 

以下の様に図形と線から構成されています。図形の中や外に文字が居てそれぞれの工程を説明します。

f:id:EnjoyExcel:20211025103527p:plain

・図形ごとに処理を分ける。

・上下方向は上から下に進む。例外は矢印で示す。

・左右方向は左から右に進む。複雑になってくると右側に処理が膨らむ事になる。

 

・・・等々ある程度の決まりはありますがあまり気にしなくても大丈夫です。図形の形も出来るだけ決めてほしいですが最初はなんでも良いです。

 

2021/10/25(月) 追記

上のフローチャートと同じ動きをするコードを書いてみました。やってることは単純で1列目で最終行を確認。2行目から最終行までをループして2列目の値の有無によって隣のセル(3列目のセル)に文字を表示させるというものです。

f:id:EnjoyExcel:20211025100023p:plain

話をフローチャートに戻します。まずはやってみる事が大事ですので手書きで十分です。目的を達成する為に必要な事を書き出してみましょう。

 

やってみると分かるのですがこんな事も考えられます。勉強当時私は以下の様な事を感じました。

 

「コード分からないのにフロー書いても出来るか分からんでしょ?」

 

・・・確かにそうです。でもこの作業をする事で何が分かってて何が分からないのかが分かります。先ずはコードの事は後回しにして手作業でどうやってやるのかを考えフローチャートを作ってみましょう。

 

コードが分からなくてもフローチャートを作った方が良い理由は後で説明します。

 

これでひとまず道筋が出来るので頭の中が少しクリアになり気持ちも楽になります。

 

余談ですが出張が上手な方はホテルに付いたらまず服を全部クローゼットにかけるそうです。持ち物も全部出して整頓するとの事。翌日使うかどうかは関係なくです。

 

そうやって持ち物を見える様にする事で数日間の生活の見通しを立てやすくしているとの事でした。

 

少し例えがこじつけですが芯は似ていると思ってます。コードの話も出張の話も「見える化」することで効率よく立ち回り先のことまで考える事が出来るという事ですね。

 

もう少し書きますと私の実感では「見える化」は精神面で効果大だと思っています。「〇〇は明日で良い」とか「実は〇〇はやらなくても良いな」という発見があります。

 

もちろんやらなければならない事を発見してしまうのでデメリットにも感じますが後で分かって落ち込むよりは先に見えた方がトータルで考えると楽なんですよ。

 

そんなわけでフローチャートは書くのは面倒ですがいろんな面でお勧めです。

 

コードの話に戻ります。

 

フローチャートが書けたら「このブロックの処理に対応するコードは〇〇で・・・」という様に作業をコードに置き換えていくだけです。ある程度は出来ると思いますがコードが思い浮かばなくても手作業でやるにはどうしたら良いか考えてフローチャートを作ってるので何点か不明点が残っていると思います。

 

ここで先程コードが分からなくてもフローチャートを書いてくださいとお伝えした事に対する回答です。

 

理由は「エクセルの手入力やアイコンで出来る作業はほぼVBAで再現出来る」からです。不明点は必ずコードに置き換える道筋があるはずというのが回答です。

 

反復作業はFor~Next、条件分岐はIF文等々書き出して整理したらほとんどの事は整理出来ます。あとはコードの書き方をネットや本、動画を検索して調べるだけです。

 

どうしても分からない時にはフローチャートを書き換えてほかの作業にするのもOKです。分かる人に聞いてもOK。自分で考えたフローチャートを再現させることの積み重ねでスキルアップに繋がります。

 

「結局最終的な結論は反復作業かよ。」って言わないでくださいね。やみくもに反復作業するよりストーリーの見通しがあって今どこに居るのか分かっている中の反復作業は同じ作業でも意味が全く違います。

 

というわけで自分の仕事にVBAを活かすのはフローチャートを使うと分かりやすくなります。最初はフローチャートを書く事自体が負荷になってしまい時間も工数もかかるかもしれません。

 

でも続けていく「フローチャート書いた方が速いな」と思える時が来ます。継続してみてください。