ExcelVBAの変数、データ型、および配列はプログラミングの基本的な概念ですが、これらは初心者にとっては抽象的であり、直感的に理解するのが難しく感じます。プログラミングの基本概念に慣れるまで時間がかかることがあります。
本記事では基本的な考えを紹介します。この記事で迷子になって挫折することはありません。
ExcelVBAで挫折しない!変数、データ型、および配列は何か
Excel VBAの変数、データ型、および配列は何か、それぞれ紹介します。
変数
変数は一時的に記憶する頭の中の領域と同じようなものと考えられます。コンピューターではメモリのこと。
例えば、テスト前に覚えた公式や計算結果を、メモする紙があるとします。これが変数のようなものです。
このメモを使って計算して最終的な結果を得られます。
データ型
データ型はメモに書かれた内容の種類を指します。
もしメモに数値や文字列が書かれている場合、それぞれが異なる種類のデータ型を表しています。
例えば、数値データ型は数式の結果を、文字列データ型は単語や文章を表します。
メモにどのように書いても、人は目で識別できますが、プログラムではこれを分ける必要があります。
ExcelVBAのデータ型、整数はInteger、小数を扱う数字はSingleやDouble、文字はStringなどルールが決まっています。
データ型を選ぶときの注意点は、どんなデータを扱うかです。
例えば、変数をおもちゃ箱をしたら、おもちゃ箱にはおもちゃは入れますが、バナナや肉などの食品は入れませんね。これと同じ考えで、整数が入る箱に文字を入れることはしません。
データ型は何を目的に使うのか、どのようなデータを扱うのかで決めていきます。これは実務で慣れれば、文字列にするのがいいか、整数のほうがいいかなどわかってきます。
販売システムで、取引先を識別するコードがありますが、これは会社によってコード体系が異なります。数字で決めている会社もあれば、アルファベットと数値を使って決めている会社もあります。この場合、前者の取引先コードのデータ型は整数、後者は文字列になります。
配列
変数やデータ型は理解できても、配列になると情報処理の経験者以外は、なかなかイメージしづらいですね。しかし、難しい内容ではありません。
配列は同じ形式のメモが複数並んでいる状態です。
例えば、テスト結果が生徒別にある場合、名前ごとに変数をつけて管理できます。ただ、100人生徒がいると、100の変数が必要になりますね。このようなケースのときに使えるのは配列です。
配列は、大きい箱の中に、同じ小さい箱が順番に並んでいるイメージです。
大きい箱が配列で、ここでは生徒のテスト結果という名前の配列です。小さい箱はメモが入るイメージで、生徒のテスト結果をメモします。
変数のデータ型を同じように、配列は同じ種類のデータが順番に格納されます。
1. データの集約
あるクラスの生徒がテストを受けた場合、各生徒の点数を一つずつ変数で管理するのではなく、生徒全員の点数を一度に格納できる配列を使用することで、データを簡潔に管理できます。
2. 効率的な処理
複数の商品の価格や在庫などを管理する場合、それぞれの商品に対して変数を用意するのではなく、配列を使って一括で処理することで、コードが簡潔になり、メンテナンスが容易になります。
3.ループ処理(一定の条件、繰り返す処理のこと)
複数のデータに同じ処理を繰り返す場合、例えば月ごとの売上データや曜日ごとの気温データなど、これらのデータを一つずつ処理するのではなく、配列を使って一括で処理することで、コードがスッキリとした構造になります。
ExcelVBAで挫折しない!変数とセルは何が違うのか
セルはRangeやCellsで操作しますが、これはExcelではオブジェクトであって変数ではありません。セルは固有の値を持ちますが、変数として使用できません。
変数はプログラム内で値を一時的に使うものです。セルから取得したり、セルに値を代入する際に中間的な処理で利用されます。
' セルへのアクセスと変数の利用例
Dim myVariable As Integer
myVariable = Range("A1").Value ' A1セルの値を変数に代入
' セルへの値の代入
Range("B1").Value = myVariable + 10
変数、データ型、配列の詳しい内容は下記をチェックしてください。
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。