単純なVBAのコードは書けるようになったが次なる課題は・・・

マクロやVBAに興味を持ち始めてからもう数ヶ月が経ちます。この数ヶ月間でVBA

に関する書籍を何冊か購入して読んでみました。また、とにかく見よう見まねで手

探りをしながら実際にVBAでコードを書いていって動かしたりしてみました。

この数ヶ月で以上のようなことをしてきて実感したのは、何事も「やってみるもん

だな」という感覚です。ここ最近のVBAに関する過去記事は以下のとおり

今までは自分にとってVBAというのは雲の上の存在で、そういったプログラミング

言語はシステムエンジニアやプログラマーなどの専門家が使えるもので自分のよう

な素人が触ってはいけないものだと思っていました。

というのも多くの人が経験があると思うのですが、プログラミング言語のコードっ

て初めて見る人にとっては本当にチンプンカンプンです。

自分も初めてプログラミング言語のコードを見たときは、「えっ、何これ・・・。」

という感覚でした。とにかく今まで自分が目にしてきたどの言語とも違うみたいな

例えるなら、蛇がのた打ち回ったようなアラビア文字を初めて見たときの感覚に近い

です。とにかく意味がわからなかったということです。

それが実際にマクロの効果を実感したことをきっかけにVBAに関する本を読んでみた

結果、今では説明があればなんとなくわかるようなレベルにはなってきました。

今回は、前回同様ここ数ヶ月でVBAに関して学んできたことややってみたことをちょ

っとばかり書いていってみます。

VBAのコードは階層構造と細かく指示するという意識で見ると伝わりやすいのかも

人間というものは新しい知識を得るとそれを使ってみたくなるものです。エクセルで

VBE(VBAのコードを入力する画面)を開き、本を読んでなんとなく覚えていた知識

を駆使して業務で改善できそうな部分のコードを入力したりしてみた時がありました。

前回紹介した『ストーリーで学ぶ Excel VBAと業務改善のポイントがわかる本 』には

「まず最初に、プログラムでやりたい処理を日本語で文章に書いてみる」と良いと書か

れていたので、とりあえず業務の改善したい部分の処理を日本語で文章にしてみます。

例えば「5行目に挿入」とか「P5セルに上からオートフィルをかける」とかなるべく

エクセルで使われる言葉で具体的に書くことを意識しました。

文章にしたものを元にコードを入力していったわけですが、もちろん最初から上手く

いくわけがありません。例えば以下のようなコードを入力したとします。

Worksheets(sheet1).Range(E1).Value = Interior.ColorIndex = 5

自分としてはシート名が「sheet1」のE1セルに色をつけたいという意図でコードを

を入れてみたのですが、エクセルは次のようなメッセージボックスを出してきます。

「コンパイルエラー:修正候補:式」

「・・・。」

メッセージボックスに書かれている意味はよくわかりませんが、とにかくコードが

間違っているということはわかりました。いろいろ試行錯誤したうえで次のように

書き直してみました。

Sub 処理1()

Worksheets(“sheet1”).Select
Range(“E1”).Select
Selection.Interior.ColorIndex = 5

End Sub

これでsheet1シートのE1セルが青色になりました。最初のコードから処理が反映され

たコードまでに変えた部分としては、「sheet1」とE1は文字列なので”(ダブルクォー

テーション)で囲む必要があったので、まずこの部分を修正しました。

また、コードの中に「Select」という文字がありますが 、オブジェクトを選択状態に

します。人間の感覚では「E1」と書けばそれは「選択されている」と思いがちですが

、エクセルにちゃんと理解してもらうためには「Select」まで入力しないと「選択し

ている」と認識してもらえないようです。

「Select」というコードからわかるように、エクセルはかなり細かく指示してあげな

いと上手く動いてくれないことがわかってきました。

指定のセルを選択するということ以外にも、VBAでコードを書く際にはエクセルの

「階層」を意識した方が良さそうです。

例えば指定のセルを黄色にしたいと思っても、エクセル側では、

どのブックの

どのワークシートの

どのセルか

まで伝えてあげないと処理を実行してくれません。

厳密にはそういったものを省略できるやり方もあるのですが、VBAでコードを書くと

きにはこういった視点を持たないとエクセルはなかなか処理を実行してくれないこと

がわかってきました。

次なる課題

上に書いたことは非常に単純なことですが、いろいろ試行錯誤を重ねることにより、

繰り返し処理とか分岐処理などのコードもインターネットで調べながらではあります

が、使えるようになってきました。

そんなこんなで自分なりにVBAで簡単なコードを書いて、ちょっとした業務の改善も

できるようになってきました。

次なる課題は現在のメインの業務の改善です。これは基本的に毎日の仕事でエクセル

上での処理も多いです。一見すると複雑そうなのですが、処理を細かく分けていくと

ひとつひとつはコードには書けそうです。

しかし、それらを組み合わせてひとつのまとまったプログラムにするにはもう少し時

間が必要です。逆にこれができてしまえば、エクセル上での処理はマクロのボタン一

つで済ませられて、後は目視で書類と照らし合わせるだけという感じになります。

今の会社に入って、仕事を覚えながら業務の改善に努めていたので、結構手持ち無沙

汰な状態です。そこからさらに大きく業務が改善できれば、自分が辞めた後も新しく

人を雇わずに今いる人たちだけでもまわせそうです。

自分にとっては次なる職場への大きなステップにできそうなので、現在のメインの業

務は今の職場においてVBAの卒業課題になるかもしれないです。

あわせて読みたい

スポンサーリンク

こんな記事も読まれています