2018年11月17日スポンサーリンクBrownVBAを使うと、エクセルでの作業が驚くほど効率化できます。※この記事はExcelVBAの情報です。実際に、仕事でVBA開発を求められるシーンって増えてきていませんか?僕は仕事中、イカツイVBAツールを作っていかにサボれるかということばかりを考えていた時期がありました。中でも自分でも良くできたなーと思うツールは、30分以上かかる作業がボタン1つで1分以内に終わってしまうという内容のものでした。(それから正式にVBAの仕事をガンガン依頼されるようになりまして・・・)今回はそんな僕が最初にどうやってVBAを身につけていったのか、そしてVBAを始める前に最低限何を知っておくといいのかという内容をご紹介します。VBAのノウハウをまとめる内容は、既に他のブログやメディアサイトで出尽くしていると思います。このサイトでは既存のVBAノウハウを元に、様々なシーンでそのまま使えるアドインをご紹介していきます。Applications」の略です。簡単に言えばVBAはプログラミング言語のひとつです。Excelというソフトを使ってツールやアプリケーションの開発・実行ができます。参考:VBAとはマクロとはExcel上での手動操作を記録し、再現することです。Excel上での手動操作を記録する際、裏でVBAのソースコードが自動的に記録されています。それを実行することで、記録した手動操作を再現できるわけです。参考:エクセルマクロとは?VBAとマクロつまり次のような捉え方でOKです。マクロは手動操作をVBAソースコードとして記録し再現する手法。VBAはExcel上の操作を表現することができるプログラミング言語。細く自分の中で棲み分けても会話で伝わらないと意味がないので、一般的には、言葉としてはマクロもVBAも同じ意味で使われることが多いと捉えておきましょう。VBAで具体的に何ができるのか?Excel上の様々な手動操作を再現VBAソースコードを記述し実行することで、様々なExcel上での手動操作を再現することができます。任意のオートシェイプを挿入するなどなど。Excel以外の操作VBAはExcel以外のソフトウェア操作や、ファイルの操作も可能です。操作できるものは限られてきますが、それでも非常に多くのシーンで活用できます。フォルダの作成・移動・削除フォルダ内のファイル名一覧を取得するファイルの存在確認やプロパティ情報を取得テキストファイルを作成・中身の編集・削除InternetExplorerを自動制御InternetExplorerと連携しページのテキストやHTMLを取得など、自動化できると嬉しいWEBブラウザの制御もできてしまいます。ちなみにInternetExplorerとVBAを連携させてスクレイピングなんてこともできてしまいますね。高度な使い方もできますウィンドウズAPIという言葉をご存知でしょうか?Windows上での操作を司るAPIのことです。このAPIをVBAで呼び出して連携させれば、非常に高度なWindowsPC上の操作をVBAでプログラミングできます。画像ファイルの1pxごとのRGBカラー値を取得サーバーとのSSH接続・コマンド送信しかし使い方が非常に難しいので、上級者向けです。今回は、そういうこともできるんだ、と知っていただきたくWindowsAPIをご紹介しました。ちなみにWindowsAPIとVBAを連携させることを解説している本は種類が非常に少ないです。僕が参考にしている本はこちらの本です。2016-08-26Amazon楽天市場YahooショッピングもしVBA+WindowsAPIを極めていきたいという方がいらっしゃれば手に入れておくべき一冊です。ソフトウェアアプリケーションの開発と大差ないので、無限の可能性を感じています。VBA開発の様子を見てみよう百聞は一見に如かずということで、画像を多めに使ってVBA開発の様子をご紹介します。今回は、上記でも少し話を出した「スクレイピング」をやってみます。内容は「YouTubeチャンネルURLを入力しボタンを押すと、チャンネル名、チャンネル登録者数を取得し、Excelシート上に表示する」というマクロを作ってみます。VBEを開くことができます。VBEはVBAを開発する画面のことです。VBAと間違えやすいので注意しましょう。開けましたでしょうか。画面の見方を解説します。プロジェクトエクスプローラー、プロパティウィンドウ、ソースコード表示エリアが表示されているVBEです。VBEにはもっと多くの種類のウィンドウがありますが、初期状態は画像のように表示されます。モジュールとは?ソースコードを記述するテキストファイルのようなものです。モジュールを作成する早速新規モジュールを作成していきます。モジュール」を選択します。次の画像のように新規モジュールが追加されます。新規追加されたモジュールは名前が「Module1」となっているので、わかりやすいように名前を変更します。今回は「YouTubeTool」という名前にしておきました。プロシージャを作成するそれではこのYouTubeToolモジュールにソースコードを記述していきます。詳しい内容は今回は省略します。以下の画像のようにプロシージャを記述しました。プロシージャとは?実行する動作(処理)です。モジュールにはプロシージャを複数記述することができます。実行契機を作る(ボタンを配置する)開発タブ→挿入→ボタンを選択してボタンを設置します。このボタンが実行するプロシージャを選択してOKを押下します。これにて、設置したボタンを押下すれば今回作成したプロシージャが実行されるようになりました。実際に設置したボタンを押下して、実行してみます。情報取得が完了しました。「取得しました」というメッセージボックスも意図して出したものです。処理が終わるタイミングで、メッセージを出すようにプログラミングしています。具体的な開発のフローはイメージできましたでしょうか。今回のツールが欲しい方はお問い合わせいただくか、TwitterなどのSNSでBrownにご連絡いただければと思います。まとめ「VBAの始め方・始める前に最低限知っておきたいこと」というタイトルでまとめました。僕がVBAを全く知らない状態の時に、やっとVBAがなんとなくわかってきたなーと感じたところまでを書いています。自力で調べると結構労力を使うので「これから始めたいけど何も知らないからイメージできなくて障壁を感じている」という方へ、1記事でなんとなく分かったような気分になれる情報をご紹介させていただきました!今後はアドインをまとめていきます前述の繰り返しになりますが、VBAのノウハウをまとめる内容は、既に他のブログやメディアサイトで出尽くしていると思います。【YouTube版】WordPressとSparkPostで無料SMTP...サイト内を検索Brown利他主義をモットーにお役立ち情報をまとめています!ワードプレスやVBA、デザイン関連の情報が多めです。