見出し画像

【Day8】文系オタクのエンジニア道~配列について①~

こんにちは
安田です

なんとか1週間VBA学習が続いております
細かくやることで
飽きがこず、コツコツとやれる感じがします
飽き性の僕にはいい学習方法だと感じました笑

今回は変数型と配列について学習しました


変数:バリアント型

表示:Variant 読み:バリアント
宣言していない変数を使用したり、データ型を省略することが可能な変数型

Sub Vardata()
    Dim a 'データ型を省略
    
    a = 255
    b = "みかん"  '宣言をしていない変数
    
    MsgBox a
    MsgBox b
    
End Sub
宣言していない変数で数値、文字のメッセージボックスが表示されました

バリアント型は万能説・・・と思いきや
デメリットもありました

  • 変数の中身がわかりにくくなる

  • 宣言していない変数を間違えて使ってしまう

  • 他のデータ型よりもメモリを使うため、実行速度が遅くなる可能性も

なのでデータ型で宣言してから使うのがベターですね

変数の宣言を強制する方法

「Option Explicit」を先頭に記載することで
宣言していない変数を使えなくなります

Option Explicit
コンパイルエラーになりました

なのでしっかりと変数を宣言してあげると

Option Explicit
Sub Vardata()
    
    Dim a As Byte
    Dim b As String
    
    a = 255
    b = "みかん"
    
    MsgBox a
    MsgBox b
    
End Sub
ちゃんとメッセージボックスに表示されました

またVBEの「ツール」→「オプション」で「編集タブ」から
「変数の宣言を強制する」にチェックを入れると
モジュールの先頭に自動的に追加されます

配列とは異なる要素を同時に入れることができる

静的配列について

変数は一つのものしか入れれない箱

配列は異なる要素を同時に入れることができる
と認識しました

アパートに例えてみました
3人の方をまとめて引っ越しすることができます

コーポ大阪の0号室は安田さん
1号室は山田さん
2号室は吉田さん

部屋番号 = 配列 です
配列は「0」からスタートします

あらかじめ配列が分かっているものを静的配列と呼びます

コーポ大阪=変数名 部屋番号(号室)=配列

配列の宣言の仕方

実際にどういう風にコードを書くのか

まずは配列の宣言をします

コーポ大阪(0) = "安田"
コーポ大阪(1) = "山田"
コーポ大阪(2) = "吉田"

続いて変数を入れる場所を指定します

Range("A1") = コーポ大阪(0)
Range("A2") = コーポ大阪(1)
Range("A3") = コーポ大阪(2)

代入したい値などは右側(安田さん、山田さん、吉田さん)のところになります
Sub hairetu()
    Dim コーポ大阪(2)  '配列の宣言
    コーポ大阪(0) = "安田"
    コーポ大阪(1) = "山田"
    コーポ大阪(2) = "吉田"
    
    '代入する場所の宣言
    Range("A1") = コーポ大阪(0)
    Range("A2") = コーポ大阪(1)
    Range("A3") = コーポ大阪(2)
    
End Sub

参考動画

まとめ

今回は「配列」という新しいことをやっていきました
より実践的な内容は僕の頭が追いつかないので
まずはここまでにしておきます笑

参考書を見ていると、まだまだ配列の項目はありそうなので
いくつかに分けて学習してアウトプットをしていきます

VBAマスターに俺はなる

最後まで読んでいただき
ありがとうございます
安田

マガジンにまとめてありますので
よかったらそちらも御覧ください


この記事が気に入ったらサポートをしてみませんか?