Excel VBAコース(1):Excel VBAの概要

以前のExcel VBA講座予告の本編初の記事だ。

Excel VBAコースを開始します。 (講座予告、feat.Excel VBAを推奨する理由)


1. Excel VBAの概要

VBに似たVBA言語で書かれた機能をMacroと呼びます。

VBA Logo
VBA Logo

1.1。 VBA、マクロの概念

VBA(Visual Basic for Application)は、MS Office製品(Excel、PowerPoint、Word、Access、Visioなど)に組み込まれています 開発言語(および開発環境)を意味します。

Macroは次の意味です。

  1. 繰り返し操作を自動化した 機能
  2. VBA(開発言語)で書かれたProcedure(処理手順、機能)

厳密に言えば、VBA言語で書かれた機能がMacroなので、他の意味や、VBAとMacroは同じ意味で見ても構わない。 VBAは、Excelの活用を最大化するための最高のツールであり、生産性(投資時間に対する出力の量と品質)の向上に大きな助けを与えるのに最適なツールです。

VBAはCompile言語ではなくInterpret言語であり、別途開発ツール(Visual Studio、Eclipse、Delphiなど)をインストールする必要はありません。 (MS Office製品にすでに含まれています)開発と展開が簡単な利点があります。

VBとVBAは言語的な違いはほとんどありませんが、VBAはマルチスレッドをサポートせずに独立した実行ファイル(.exe、.dllなど)を生成できないという制約があります。

1.2. Excel VBAにアクセスするために必要な経験、知識、心

Excelを使用する人は多いが、Excel VBAを使用する人は多くない。エクセルVBAの存在すら知らない人も多く、業務に役立つことを知りながらも触れない人も多い。

Excel VBAを起動するときは、次のことを心に留めておいてください。

  • Excel VBAをうまく使用するには、基本的にExcelをうまく使用する必要があります。
  • Application(C/S、Web、Shell scriptなど)開発経験があれば、言語はすぐに身につけることができる。
  • Visual Basic言語文法の理解があれば最善です。
  • Excel Object Modelの理解が必要です。
  • 想像力(こういうことができるのか?こうすれば業務に役立たないのか?など)が必要だ。
  • 検索力(Googleをうまく活用)が必要だ。
  • 組み立て(複数のコンポーネント、サービスのマッシュアップなど)をするという気持ちで接近すればいい。
  • 何より重要なのは、自分で解決しようとする心と意志である。

1.3。 Excel VBAで何ができますか?

エクセルができるすべての機能、各機能が組み合わされた新機能、外部参照オブジェクトを活用した拡張機能など、ほぼ無限の拡張が可能だ。

엑셀 VBA로 할 수 있는 것들
Excel VBAでできること
  • Excelの繰り返し操作の自動化
  • 基本的に提供される関数に加えて、カスタム関数を作成して使用する
  • 多くのExcelファイルの作成、マージ、分割処理
  • 頻繁に繰り返し使用する複数のステップのタスクを記録して1つの機能にし、ショートカットを割り当てて簡単に使用
  • Excel Add-Inを作成してExcel自体の機能を拡張
  • Databaseと連携してCRUD処理(Excel資料のUpload&Download、現状レポート/チャート作成など)
  • Web連携(ネイバー辞書検索、メタ標準用語一括登録申請など)
  • 他のアプリケーションと連動して一括処理、レポート/成果物を自動生成
  • UNiXシェル、SQL、PL/SQLなどのスクリプトファイルを生成するジョブ処理の自動化
  • その他想像、検索、したい意志だけあればS/W側面のほぼ全てが可能

1.4。 Excel VBA学習の段階的なアプローチ

基本基を習う段階と活用する段階に分けて学習する必要がある。

엑셀 VBA 학습 단계
Excel VBA学習ステップ

基本ステップは、ステップ1)Object Modelを習得する、ステップ2)VB Syntaxを習得する、ステップ3)VBでObject Modelを扱う順序で学習することをお勧めします。概念を習うのに早ければ一日、遅くても3日程度で十分で、ある程度使用するには1〜2週間以上必要だ。

活用フェーズは、ステップ4)外部参照オブジェクトを扱う、ステップ5)Module / UserFormを扱う、ステップ6)クラスを扱う順序で学習することをお勧めします。外部参照オブジェクト(例:DB連携のためのADO、Web連携のためのHttpRequestなど)は種類別に学習しなければならない。この活用段階では、個人別に学習と活用に必要な時間が千差万別に異なる場合がある。

以下は、時間の流れに応じてExcel VBA各段階別学習難易度/生産性を図式化した図である。

엑셀 VBA 학습/활용 곡선
Excel VBA学習/活用曲線

少なくとも3段階までは、仕事に役に立つことができ、役に立つことができる。ステップ1)Object Modelの習得またはステップ2)VB Syntaxの習得を少ししてあきらめることが多い。あきらめずに3段階)VBでObject Modelを扱うまでぜひやってみよう。

ここで誤解してはいけないのは、すべてのObject Model、すべてのVB Syntaxをすべて学習しなければ、VBでObject Modelを扱えるわけではない。むしろそう学習すればすぐに飽きて面白さもなくて簡単に諦めるようになる。知らないことができればその時その時グーグルに検索していきながら少しずつゆっくり進んでいけばよい。

*参照: Getting started with VBA in Office (Microsoft Learn)

1.5。 Excel VBAを困難にする要因と解決方法

  • VB文法が見慣れず、よく分からないし、とにかく難しい。

VB文法はC、C++またはJavaに比べると簡単すぎて1時間であれば基本はすべてわかる。
VBでOOPが可能ではあるが、C++、Javaなどに比べると制約が多く、それだけ単純だ。

  • Excel Object Modelをよく知らない。

Excelの基本的なObject Modelは5分で分かる。
よくわからない場合はマクロライターを利用する方法もあり、Googleで検索してみれば良い。

  • 必要な機能はどのように実装するのかよくわかりません。

Googleで検索すると、ほとんど(90%以上)はすでに実装されているコードを見つけることができます。

  • これはなぜ私が必ずしなければならないのか分からない。

直接してみると個人業務生産性が向上することが分かる。
VBAを使用できる人が増えると、プロジェクト/チームの生産性が向上します。

1.6。 Excel VBAを使用するときと使用しないでください。

それぞれの状況や状況によって異なりますが、一般的には以下の基準に従います。

1.6.1。 Excel VBAを使用する場合

  • 手作業にかかる時間よりVBAコードの作成に時間が著しく少なくなると予想されるとき
  • ワンタイム作業ですが、VBAコード作成時に効果があると判断されたとき
  • ジョブが2回以上繰り返されることが確実なとき

1.6.1。 Excel VBAを使用しないでください。

  • VBAコードを作成してもスケジュールに従わない場合(船よりも腹が大きい場合)
  • ワンタイム作業で、手作業が速いとき

ここまでエクセルVBAの概要を見てみた。次に、Excel VBAの基礎を見てみましょう。気になる点はコメントで残してほしい。


<<関連記事一覧>>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ja日本語