[ノンプロ研]VBA中級講座3期第5回・配列
動的配列の要素数を設定 ReDim [Preserve] 変数名([下限 To] 上限) ※Preserveを省略すると値がクリアされる 配列の要素に値が入っているときにPreserveを省略すると入っていた値がクリアされる #ノンプロ研 #VBA中級講座
2021-10-01 20:33:55たまに使うと忘れていてググってちーんとなります😢 #ノンプロ研 #VBA中級講座 twitter.com/2a9SouLnhptnIq…
2021-10-01 20:36:49動的配列のサイズ変更 ・事前にサイズがわかる →固定配列 ・事前にサイズがわからない →動的配列 #ノンプロ研 #VBA中級講座
2021-10-01 20:40:39出たVariant型・・・ 配列も扱えるけど、配列ではインデックス指定で初期化不可なの、本当に嫌 #ノンプロ研 #VBA中級講座
2021-10-01 20:41:17Variant型の変数 Dim 変数 As Variant →どんな値も格納できる万能の変数✨ ・動的配列 ・格納する値の型がバラバラでもOK(シートの値を配列に格納するなどいちいちデータ型を設定するとエラーになることがあるときに使える) ・インデックス指定で初期化できない #VBA中級講座
2021-10-01 20:44:21Array関数 →配列を生成する関数 Array(値1, 値2, ...) ※戻り値はVariant型 #ノンプロ研 #VBA中級講座
2021-10-01 20:47:13Dim values As Variant values(0) = "Hoge" ←エラーになる Variantにempty値が入っている 1回あなたは配列なんですよ!と配列に変身してあげないと配列に格納できない。 #ノンプロ研 #VBA中級講座
2021-10-01 20:50:21事前に配列のサイズがわからない ・型が揃っている →固有型の動的配列 ・型が揃ってない →Variant変数による配列 #ノンプロ研 #VBA中級講座
2021-10-01 20:51:18LBound関数・UBound関数 ・配列のインデックスの下限値・上限値を返す ・配列の操作をするときには必ず使うもの LBound関数(下限値 L→lower) UBound関数(上限値 U→upper) #ノンプロ研 #VBA中級講座
2021-10-01 20:54:52LBound(配列[, 次元]): 配列の[次元の]インデックスの下限値 UBound(配列[, 次元]): 配列の[次元の]インデックスの上限値 Dim 変数(2, 1 To 3) As Long の場合 LBound(変数) →0 UBound(変数) →2 LBound(変数, 2) →1 UBound(変数, 2) →3 #ノンプロ研 #VBA中級講座
2021-10-01 20:55:51LBound(配列[, 次元]) LBound(numbers) 1次元目の下限値 LBound(numbers, 2) 2次元目の下限値 #ノンプロ研 #VBA中級講座
2021-10-01 20:58:52For Each文による配列のループ For Each 変数 In 配列 処理 Next 変数 変数はVariant型またはObject型となるが通常はVariant型にする #ノンプロ研 #VBA中級講座
2021-10-01 21:01:41For文による配列のループ For 変数 = LBound(配列) To UBound(配列) 処理 Next 変数 For文をつかうとLBount・UBound関数が活躍する #ノンプロ研 #VBA中級講座
2021-10-01 21:02:47#ノンプロ研 の #VBA中級講座 なぅ 配列もFor Each使える これだ!!! これでいける!! 全部のインベーダ君クローンをFor Each文でMoveさればシンプルな構文で動かせるぞ!!
2021-10-01 21:05:00For Each文による配列のループ② 配列は0,1,2と順番に取り出される バラバラでばない #ノンプロ研 #VBA中級講座
2021-10-01 21:07:54Excelのシートから一気にどかん!と配列にいれられたらいいですよね? えっ!?できるんですか?? #ノンプロ研 #VBA中級講座
2021-10-01 21:09:42セル範囲の値を配列で取得・設定する Rangeオブジェクト.Value ・単体セルのとき→単体の値になる ・2個以上のセルのとき→2次元配列になる ・サイズの下限は常に1となる #ノンプロ研 #VBA中級講座
2021-10-01 21:12:05セル範囲を配列に読み込む Dim 変数 As Variant 変数 = Rangeオブジェクト.Value 2次元配列になる。 *読み込むのはセルの値なので数式が入っている場合は注意! #ノンプロ研 #VBA中級講座
2021-10-01 21:13:04