トピックス プログラム、シミュレーション

箱の絵がわかりやすい

投稿日:

本日説明するVBAの内容は、マクロを勉強する際に避けてきたところですが、今回しっかり理解しておこうと思っています。今回参考にしている「Excel VBAの絵本」(著者:(株)アンク・新井くみ子、高橋 誠 発行所:翔泳社)に理解を助ける図が載っています。では説明します。

資料はこちら → VBA2

p.1 VBAを書き始める際に、変数を定義する必要があります。「Dim a As Integer」は、整数( Integer)の値が入る変数a準備するという意味です。a=5と書くと、VBAに限らずプログラミング言語では「aに5を代入する」という意味になります。簡単なVBAを示します。a=2→b=3→a=bと進んでいき、aをメッセージボックスに表示するプログラムです。数学では、a=bは成り立たないですが、「」は代入の意味ですから、最終的にはa=3ですね。

p.2 「変数 As」の後ろにデータの型を付けます。表から選択してください。桁数が多くなるほど容量をたくさん使うことになります。この本では、データが入る箱で説明しています。変数bの箱を見ると、箱の横に「b」と「Integer」と書かれていて、箱の中に「200」というデータが入っています。つまり、この箱は変数b整数を入れることができます。「Dim b As Integer」で予め定義しています。整数しか入れることができません。

p.3 変数aの箱は「Boolean」と書かれているので、箱には「True」または「False」が入ります。変数fruitの箱は「String」と書かれているので、文字列が入ります。 円周率のような定数を定義するには、「Const  PI  As  Double=3.14」とします。「PI」という箱に「Double」というデータ型が定義され、3.14というデータが入っています。 pythonは定義しなくとも「pi」で使えます。

p.4 データの型を指定しないと、いろいろな数値や文字列を入れることができますが、デメリットがありますので、可能な限りデータの型を「As」の後ろにデータの型を定義しておく方がよさそうです。

p.5 VBAでは予め、データを格納する箱を準備しておく必要があります。インデックス(箱の番号)を範囲で指定する場合と最大値で指定する二通りがあります。最大値の場合、最初は0(ゼロ)から始まります。pythonでも0からですね。

p.6 二次元配列の場合も、範囲指定最大値指定があります。Excelの(行、列)で指定することになります。ExcelのA1:B3の範囲に配列aを代入して、セルB2の値をメッセージボックスに表示させるプログラムです。

p.7 配列が未定の場合変数の後に「()」としておきます。「ReDim」は配列の要素数を変更するコードです。先ず、「ReDim a(1)」として変数aの箱を2つ準備して、りんごとみかんの文字列を箱に代入します。「Preserve」で元のデータを保持したまま箱を一つ増やし、いちごの文字列を入れました。

p.8 関連データを1つにまとめて管理する配列のことを「コレクション」と呼びます。コレクションのインデックスは1から始まります。「.Add Item」を用いてデータを箱に入れていきます。3番目の箱に日本を入れ、箱に「Key:=“A”」という目印を付けます。インデックスの3は消えていません。しおりという文字列が入った目印Sの箱2番目と3番目の間に入れたい場合は、「Key:=“S” , before :=“A”」あるいは「Key:=“S” , after :=“2”」の何れでも挿入できます。

p.9 コレクション要素を取得するには、「mycol..Item(〇)」あるいは「mycol(〇)」とします。コレクション要素を削除するには「mycol.Remove(〇)」とします。コレクション要素数を求めるには「mycol.Count」を用います。

マクロをVBAで作成するためには、変数や配列について知っておく必要があります。上述で説明した箱の絵は分かり易いと私は思います。

-トピックス, プログラム、シミュレーション

Copyright© 進化するガラクタ , 2022 All Rights Reserved Powered by STINGER.