【Excel VBA】エクセル関数で限界を感じたあなたへ。テキストに頼らなくても扱えるようになるVBA勉強方法!

- Excel
あまざけ
あまざけと申します!
ブログ「としけば!」にようこそ!

今回使うのは、「Visual Basic for Applications」というMicrosoft社が提供しているプログラミング言語。

以下、「VBA」と略して記載します。

この記事の見どころ

僕あまざけが言いたいことは以下のふたつ。

①時間のかかるテキスト通りの勉強ではなく、成果を出しながら勉強する方法。
②テキスト内容を習得しても実務で使えるかどうかは別なので、実務に的確に活かせるスキルを得る方法。
あまざけ
この2点について解説していきます!

僕あまざけは、仕事で自社業務で使うシステムの運営管理やIT化、ひいてはDX化を進める部署に在籍しています。

こんな部署に所属している僕ですが、実はIT系の専門学校を出ていませんし前職は商社で営業事務職でした。

だからこそスキル習得のための勉強が必要なのですが、その勉強に何ヶ月もかかってしまっては”遅い”ですよね。

私たち社会人は、勉強だけに時間を使うわけにはいきません。

『勉強しながら成果も出していく』ということが求められています。

VBAなどの自動化システムを使おうと考えているあなたは僕と同じく、「今すぐにでも業務を効率化したい」という喫緊の課題を抱えているはずですので、この記事を参考にしていただければと思います。

①時間のかかるテキスト通りの勉強ではなく、成果を出しながら勉強する方法。

まずはテキストを買って基礎から勉強を・・・などといった方法は厳禁です!

これでは時間がかかり過ぎます。

なぜかというと、

・知っていればベターだが、知らなくても問題がない情報が多い。
・テキスト通りに学習を進めても習得しにくい。

例えば、僕あまざけが読んだ本には『VBAで表を複製して手間を省こう」という例題がありました↓

※あまざけが適当に作った表です。

テキストでは「表をコピーし、支店名を書き換える」というマクロが解説されていました。

正直な感想は「コピペで済むやん・・・」でした。

この例だと、時間がかかるのは『マクロを記述する>コピペ』です。

(複製したい表が1,000個ある、とかなら話は別ですが。)

しかも例題では支店名を書き換える際に、『 Range(“F1”).Value = “東京支店” 』と支店名を直接指定していました。これだと別の支店の表を作成する際はその支店名を直接指定している別のマクロを作成しなければなりません。

支店名をマスターなどから引用してきて入力するといったマクロなら効率的ではありますが、このままだとVBAで行う意味がありません。

マクロで短縮できる時間よりマクロを作成する時間の方が大きいのは本末転倒です。

テキストはVBAを理解するために簡単な例題を使って解説してくれているのですが、それならあなたの実務に沿った内容で試した方がよっぽど効果的です。

「テキスト通りに学習を進めても習得しにくい。」というのはこういった理由からです。

知識だけあってもそれを応用できないのであれば意味がありません。

応用するには結局自分でコードの記述内容などを調べなければならず、それならば最初から自分の業務に合った内容で学習を進めれば良いのです。

あまざけが実際にやったこと。

僕あまざけの場合ですと、以下のことをVBAで試しました。

「Excelで発注書を作成し、それをPDFで保存し、Outlookで発注先へのメールを作成する。」という作業。

今まではこれを手作業で毎日していたので、どうにかして自動化できないかと感じたのがきっかけです。

まずはじめに、作業の手順を書き出します。

①基幹システムから注文データを抽出し、Excelで取り込む。
②ワークシート関数で発注書は自動的に作成される。
③ExcelをPDF形式で名前を付けて保存する。
④Outlookを起動する。
⑤新規メール作成画面で、差出人、宛名、件名、本文を入力する。
⑥PDFを添付する。

このように作業をひとつずつ分けることで、VBAでマクロを作成する内容が可視化されます。

マクロで自動化できるのは③~⑥。その方法をひとつずつ調べながら実践していきます。

可視化するとコードを調べるにしても簡単です。

例えば、「③ExcelをPDF形式で名前を付けて保存する。」ですと、そのまま検索すればいいだけです。

ググるなら「VBA エクセル PDF 保存」。chatGPTなら「VBAにて、エクセルをPDFで保存する方法」といったところでしょうか。

検索結果をそのままコピペしても動かないと思うので、適宜修正は必要です。

その際、分からないコードがたくさんだと思います。それをまた調べるのです。

調べて、「あぁ、こういう感じで処理されているんだなぁ」と雰囲気が掴めれば十分です。

コードを覚える必要はない

単語やコードなんて覚える必要はありません。

そんなものは手元にある本やネットでその都度調べればいいのですから。

目的は「業務を効率化させること」であって、「VBAのスキルを高める」ことではありません。

なので、「VBAで出来ること」だけ覚えておけば良いと考えています。

②実務に的確に活かせるスキルを得る方法。

『まずはやってみる。』これに尽きます。

テキストは「ヒントをくれるもの」です。それをどう活かすかは自分で考えなければなりません。

テキストを熟読し端から端まで内容を取り入れたとしても、その後の実務に活かせるかはまた別です。

あまざけ
テキストをロールプレイングゲームの登場人物に例えると「村人などのNPC」ですね。

なので、テキストでの勉強はそこそこにしておき、どんどん実践していく方が習得が早いし実用的な知識が身に尽付きます。

「基本が出来ていないと応用もできないのでは?」と感じられたかもしれません。

しかし、基本というものは今の自分に必要な知識だけを入れていけばやっているうちに自然に身に付きます。

「基本」なのですから避けては通れません。必ず向こうから飛び込んできます。

例えば、野球を始めるときに「バットとボールについて」の詳しい説明なんて受けませんよね。

「まずは振ってみる、投げてみる」ということが大切です。

社会人にはイチからすべてを教えてくれるコーチはいません。自分で試行錯誤していくしかないのです。

いきなり重要度の高い業務に取り掛からない

まずは身近な業務の効率化から進めるべきです。

なぜなら、自分の力量を遥かに超えた案件にいきなり取り掛かってしまうと余計に時間がかかってしまいますし、完成したものも中途半端な出来上がりになりかねないからです。

とはいえ、見返りの大きな重要案件に取り掛かるのですから時間も当然かかります。

しかし、社会人はひとつの仕事だけをしていてもダメですので、大きな案件を進めつつも、要所要所で「別の成果」を上げなければなりません。

「身近な業務の効率化から進める」というのは、「小刻みに成果を上げつつ自分のスキルを高め、結果、それが大目標への近道となる」ということです。

「身近な業務」というのは、本当に単純なことで良いんです。

「この作業のクリックを1回でも減らそう」とか、「複数人に送るメールの宛先を自動で設定させよう」とかそんなレベルから始めましょう。

実際、このレベルの単純作業ってけっこう鬱陶しかったりしますしね。

①自分の身の回りの簡単なことを効率化。

②同僚や上司のちょっとした困りごとをVBAで効率化。

③それが積み重なってスキルとなる。

④目的の業務の効率化が可能となる。

・自分の仕事が楽になる。
・周りの人間へのアピールが出来る。
・スキルアップの勉強になる。
◎目的の業務効率化へも確実に歩を進めていける。

ひとつ注意なのが、スケジュール管理は徹底的に行いましょう。

あれやこれやと細かいことを頼まれやすくなりますので、この流れに入るととっても忙しくなります。

目的の業務効率化が遅れてしまっては意味がこれもまた本末転倒です。

先人の知恵を「徹底的にパクる」。

あなたの勤め先にVBAを使いこなしている人はいるでしょうか?

もしいるのであれば、その人が作ったマクロを見せてもらいましょう。

実務で使われているマクロを参考にすることはとても効率の良い勉強方法です。

テキストに書かれているのは「ヒント」ですが、実務で使われているマクロには「答え」がある可能性もあります。

なんだったらその人に色々と教えてもらいましょう笑

あまざけ
テキストの例題が模造刀だとすると、実務で使われているマクロは真剣です。切れ味が違います。

まとめ

仕事というのは「スピード重視で完成度70%を目指す」とよく言われます。

完璧を目指すと時間もかかりますし、自分が完璧だと思ったものを上司に報告をした際に訂正を依頼されて差し戻されるかもしれません。

そういう意味でも、テキストやスクールでガッツリ勉強するのではなく、成果を上げるために一歩でも前に進んだ方が良いと考えています。

重要なのは「とにかく実践してみること」です。

「こうかは ばつぐんだ!」だけを選択できるようになる

「VBAで出来ることを覚える」というのはある程度具体的である方が望ましいです。

なぜなら「この作業を効率化させるにはVBAのあの方法を使おう。」とスムーズに進めることができるからです。

もしくは、

・VBAじゃなくてもワークシート関数で作った方が早く完成してメンテナンスが容易。
・運用方法を見直すだけで変えることができそう。
・そもそもこの作業は必要なのか、という取捨選択。

など、状況や内容に応じて柔軟に対応できます。

もちろんExcelにこだわる必要もなく、RPAを使ったり作業規模によっては専門のシステムを導入するといった選択肢もあります。

このように、実際の業務効率化の際は『何を選択するか』が重要で、DX担当者にはこの『選択肢の多さ』が求められます。

VBAはその『選択肢』のひとつとなります。

テキストは不要?いいえ、絶対に必要です。

テキストでの勉強は勧めない!とこれまでに述べてきましたが、「世の中にごまんと出版されているテキストは全て不要なのか?」というと決してそうではありません。

むしろテキストは有益な情報源ですし、絶対に必要です。

有料情報なのですから、ネットで情報を拾うより何倍も有用です。

テキストは「分からないことが出てきた時だけ」使いましょう。

ですが、テキストの第一章によく書かれている「スタートラインに立つまでの基礎情報」は読んでも良いと思います。

「実践するにあたって、そもそも何をググったら良いのか分からない」という方はテキストを一通り読んでみるのも良いかもしれません。

あまざけが読んだテキストの紹介

右も左も分からない状態でいきなり実践するのは無謀なので、そういう時にテキストはやはり有用!

無料のネット情報は手軽ですが、有料のテキストは情報がまとめられていて読みやすいです。

ここでは、僕が参考にしたテキストを3冊紹介します!


マンガで学ぶエクセル VBA・マクロ [ きたみあきこ(著者・監修) ]


マンガで学ぶエクセル VBA・マクロ実用編 [ きたみあきこ ]

あまざけ
『マンガで学ぶエクセル VBA・マクロ』の二冊はVBAの入り口とするにはもってこいの良著です。


今すぐ使えるかんたんEx Excelマクロ&VBA プロ技BESTセレクション[2019/2016/2013/365対応版] [ 土屋和人 ]

あまざけ
この本は「辞典」のような使い方ができるので、手元に置いておきたい一冊です!

Sponsered Link