プログラミングだけではないですが、初めてのことってなんだか難しく感じませんか?
- 何をしているのかわからない
- 何を言っているのかわからない
- 何がわからないのかがわからない
- やりたい事はあるけれど、どうやれば良いのかわからない
など、わたしの場合は基本的に根っこに「わからない」があり、「わからない」ことが難しく感じる原因になっていました。
プログラミング言語には、日常ではほぼ使うことのない、独特の用語があります。
プログラミング言語で一般的に使われているものも多くありますが、中にはVBA独自の意味で使われているものもあります。
いくつか紹介していきますね。
まずはどんな言葉が使われているのか見てみましょう。
覚えられなくても大丈夫。必要になった時に戻ってきましょう。
マクロ
マクロはエクセルの操作を記録したものになります。
必要な時に呼び出すことで、記録した操作を自動で行ってくれます。
Excelでマクロを作成する方法には、「マクロの記録」で自動記録する方法や、VBE(Visual Basic Editor)を使用し、VBAで記述する方法があります。
VBA
VBAは Visual Basic for Applications の略で、Microsoft社が開発したプログラミング言語の1つです。
エクセルに「マクロ機能」という、エクセルの操作を記録して必要な時に呼び出せる、自動化の機能があり、記録しているプログラミング言語がVBAです。
VBAで処理を記述していくことで、エクセルの操作の大半は自動化をすることができます。
VBE
VBEは、Visual Basic Editorの略で、VBA開発のための編集エディターです。
ソースコードを記述するテキストエディターはもちろん、コンパイラやデバッガなど、総合的な開発環境が整っています。
エディター
Editが「編集する」という意味なので、直訳で編集者のことになります。
コンピューター上だと、編集する「人」というより、編集するためのソフトウェアやアプリケーションをエディターと呼んでいます。
書籍や新聞、映像など、編集する対象によって〇〇エディターと呼ぶことが多いです。
ビデオエディターなら、ビデオ編集ソフトですね。
ただ、コンピューター上でエディターというと、一般的にテキストエディターを指す場合が多いです。
身近なテキストエディターだと、メモ帳でしょうか。
ソースコード
プログラムを記述する際に、処理の内容を書いたテキストファイルのことをソースコードのことで、「ソース」や「コード」と略して言ったりもします。
プログラミングと聞くと、いろんな色で英語の文字や記号がバーッと打ち込まれている画面を思い浮かべる方も多いと思います。
それがソースコードです。
コンパイラ
コンピューターは0と1でできている、という話を聞いたことはありますか?
コンピューターの処理はすべて0と1だけで行われているのですが、人が処理内容を0と1だけで記述するのはちょっと現実的じゃないですよね。
わたしには無理です。
そこで、人間にもわかりやすいプログラミング言語で処理内容を記述し、プログラミング言語で記載された内容をコンピューターが理解できるように変換する、という方法でコンピューターに指示を出しています。
人間が記述した内容を、コンピューターが理解できるように変換しているのがコンパイラです。
デバッガ
プログラムは人の手で作成するので、記述ミスなどでエラーを起こしたり、意図していない動きをしてしまう事があります。
そういったエラーや不具合を起こしている原因を発見・修正するためのソフトウェアのことです。
プロジェクト
プログラムの構成単位の1つです。
VBAのプロジェクト構成は上から
プロジェクト → モジュール → プロシージャ → ステートメント → 式
の順になっています。
4種類のモジュール(Excelオブジェクト・ユーザーフォーム・標準モジュール・クラスモジュール)を1つにまとめたものです。
1つのExcelブックに対して、1つのプロジェクトを持つことができます。
モジュール
プログラムの構成単位の1つで、プロジェクトの1つ下の階層になります。
モジュールには主に
・Excelオブジェクト
・ユーザーフォーム
・標準モジュール
・クラスモジュール
の4種類があり、それぞれ使い方が異なります。
プロシージャ
プログラムの構成単位の1つで、モジュールの1つ下の階層になり、VBAにおけるプログラムのことです。
プログラムはモジュールの中に記述していきます。
プロシージャには主に
Subプロシージャ
戻り値がないプロシージャ
Functionプロシージャ
戻り値があるプロシージャ
Propertyプロシージャ
プロパティの値を管理するプロシージャ
の3種類があり、1つのモジュール内に複数のプロシージャを記述することができます。
ステートメント
プログラムの構成単位の1つで、プロシージャの1つ下の階層になり、プロシージャに記述する構文のことを指します。
変数の宣言や、処理、命令などを行うための構文で、Sub・Dim・For~Next・IFなど、複数の種類があります。
式
プログラムの構成単位の1つで、最も小さなものになります。
式というと数式を思い浮かべる方もいるかもしれませんが、プログラムが扱う式には数式も含め種類があります。
演算子、変数、定数、関数、リテラルなどを組み合わせたものを式と呼び、数値式やブール式、日付式、文字列式、オブジェクト式など種類があります。
オブジェクト
最初はブックやワークシート、セル、グラフなど形を持った物、操作対象と認識して良いと思います。
プロパティ
和訳すると「財産」や「所有物」「特性」「属性」になりますが、VBAにおけるプロパティの意味は特性や属性だと思ってください。
パソコンを使用していて見かけるプロパティは「ファイルのプロパティ」かと思います。
プロパティを見よう!となる時はたいてい、ファイルの種類やサイズ、作成や更新の日時等、そのファイルの属性を知りたい時だと思います。
対象の属性や特性を表す情報がプロパティです。
VBAではファイル名やフォント、大きさ、色などの情報がプロパティに記述されています。
メソッド
プロパティがオブジェクトの情報であるのに対し、メソッドはオブジェクトを操作する為の命令になります。
例えば、ExcelのA1セルというオブジェクトに、「〇〇を入力する」「削除する」「コピーをする」といった命令文を記述するとします。
この入力・削除・コピーといった操作命令がメソッドです。
コレクション
コレクションは、複数のオブジェクトを集めたものです。
コレクションは名前の後に複数形を表す「s」がついて、ワークブックのコレクション名は「Workbook”s”」、ワークシートのコレクション名は「WorkSheet”s”」となります。
例外として、Rangeオブジェクトは複数セルを集めてもRangesにはなりません。
関数
決められたデータ処理を実行し、その結果を返す命令のことです。
Excelを使い慣れた方だと、SumやVlookupなどを思い浮かべる方も多いかと思います。
関数には主に3種類あり、
VBA関数
VBAに搭載されている関数です。
指定したパターンに一致するファイルやフォルダを返すもの、日付入力、数字の切り捨て
など、いろいろな種類があります。
ワークシート関数
Excelのシートに入力をして使用していた関数のことです。
SumやVlookup、Count、Ifなどが思い浮かぶのではないでしょうか。
VBAでもコード内でワークシート関数を呼び出したり、セルにワークシート関数を入力する
ことで使うことができます。
ユーザー定義関数
Functionプロシージャを使って、自分で関数を作ることもできます。
Functionプロシージャの使い方については、別の記事で詳しく解説します。
演算子
演算子は演算内容を表す記号です。
VBAでは主に4種類あり、それぞれに使用する記号や用語があります。
算術演算子
+ - * / Mod ^
比較演算子
= > < >= <= <> Is Like
連結演算子
& +
論理演算子
And Or Not Xor Eqv Imp
識別子
変数名、定数名、引数名、プロシージャ名の総称です。
変数
変数とは、値やデータを一時的に入れておく、入れ物や箱で例えられる事が多いです。
計算途中のデータを保存したり、数値や文字列を変数に入れておく事で、後からコードの修正をするときに手間を省くことができます。
同じ変数には何度も新しいデータを入れる事ができますが、保存されるのは一番最後に入れたデータのみになります。
定数
使い方は変数と似ていますが、変数と違って中身の入れ替えをプログラム実行中ではできません。
ファイルのパスや、ファイル名など、基本的には変わることの無いものを入れておくのに使用します。
配列
配列は、複数ある変数をまとめて格納できるプログラムのことです。
変数を1つの箱に例えるなら、配列は中が区切られいて、複数部屋がある大きな箱でしょうか。
引数
引数は、プログラムや関数に渡すための情報です。
値や文字列はもちろん、配列やオブジェクト、論理値などを入れることができます。
戻り値
プログラムや関数から戻ってくる値です。
プログラムで「1+1」を計算した結果「2」が返ってきたとします。この2が戻り値です。
聞きなれない言葉がたくさん・・・
よく意味がわからない用語もあるなぁ
そんな名前の用語があるんだな、くらいの認識で大丈夫!
実際にプログラムを書くようになると、行き詰まることが度々起こるから、まずは細部にこだわらずできる事からやっていこうね!
コメント