初心者のためのExcelマクロ超入門(絶対できるVBA開発)

マクロがまったくわからない人のためにエクセルマクロやVBAについてできるだけわかりやすく書いています。Twitter:@shuhhohhey

初心者のためのExcel エクセルマクロVBA入門-ユーザー定義型変数

ちょこっとでも更新しようかと・・・思います。。。汗

ユーザー定義型変数です。

( ゚д゚)モウヤメテ・・・


そうですね。やめておきます。というのも、おそらく初心者の方には必要のないものかもしれないからです。ですが、必ず必要になる時も来ると思いますので、こんなもんなのだなぁくらいに思ってみていただければよいと思います。

いくつかの変数をまとめたものがユーザー定義型


ユーザー定義型はいくつかの変数をまとめて扱うことができます。通常、1つの変数には1つのデータしか入れることができませんが、ユーザー定義型を使うといくつかのデータをまとめて扱うことができます。どういうことかというと・・・

Type Personal

    strName As String
    lngAge As Long
    strAddress As String
    blnSex As Boolean
    strPostNum As String

End Type

このようにTypeを使って、その後に自分が考えた変数の型の名前を書きます。ここではPersonalという新しい型を私が「作った」ということになります。扱いはStringとかLongとかと同じになるのです。ユーザーが自分で変数の型を作ることができる。これがユーザー定義型です。中には普通の変数の型が色々と並んでいますよね。これらを一度に扱えるのが今回新しく作ったPersonalという型になります。
当然、今は型を作っただけですので、このままでは使うことはできません。変数は必ず宣言するのでしたね。そして、使う時は変数の後に「.」を付けてその後に入れる変数を書きます。

Type Personal

    strName As String
    lngAge As Long
    strAddress As String
    blnSex As Boolean
    strPostNum As String

End Type

Public Sub Test()

    Dim pslInfo As Personal
    
    pslInfo.strName = ・・・・

End Sub

というように、Dimステートメントで新しい型Personalの変数を作ってあげます。後はその中にあるstrNameやlngAgeなんかに値を入れたりすることができるのです。

ユーザー定義型の配列もできる


当然ただの型ですので配列として作ることもできます。

Public Sub Test()

    Dim pslInfo(5) As Personal
    
    pslInfo(0).strName = ・・・・
    pslInfo(1).strName = ・・・・

End Sub

という感じですね。ちょっとわかってきたでしょうか?これは個人情報の配列になっています。1人1人の情報をこのようにまとめて管理した方が扱いやすいですよね。いちいち名前の配列、住所の配列。。。と別々に作るより非常に簡単です。ユーザー定義型こんな風に使います。

ユーザー定義型にユーザー定義型を入れる


ちょっと複雑ですが、こんなこともできます。前回の成績表マクロでもちょっとやったかな?

Type Score
    
    Kamoku As String
    Tensu As Long

End Type


Type Personal

    strName As String
    lngAge As Long
    strAddress As String
    blnSex As Boolean
    strPostNum As String
    scrPsnlScore(4) As Score

End Type

Public Sub Test()

    Dim pslInfo(5) As Personal
    
    pslInfo(0).strName = ・・・・
    pslInfo(1).strName = ・・・・
    
    pslInfo(0).scrPsnScore(0).Kamoku = "国語"
    pslInfo(0).scrPsnScore(0).Tensu = 98

End Sub


今やったことを全部盛り込むとこんな感じになります。少し複雑ですが、成績というユーザー定義がScoreでそのScore型の変数をPersonalが持っている。という形ですね。まぁこの辺は、分からなくても大丈夫です。ちょっと複雑ですし、そもそもにこのユーザー定義型を使わなくても、マクロは作れます。


なるほど、こんなのがあるのだなぁくらいで大丈夫です。変数のお話はこれで終わりです。
大体話をしましたが、大切なのは、

・変数というものについて
・配列について
・配列の配列と多次元配列について

この3つくらい押さえておけば完璧です!わからんところは聞いてくれ!

次回はいよいよ、関数について!エクセルの関数と何が違うの?いや一緒!?なんてことをちょっと根幹から話そうと思います。


今日はここまで!


かしこ