[ノンプロ研]VBA中級講座3期第5回・配列

『コミュニティ「ノンプログラマーのためのスキルアップ研究会」VBA中級コース第3期第5回のツイートまとめです。コンテンツは「配列」です。 https://tonari-it.com/community-nonpro-semi/
3
alice @alice37308108

動的配列の要素数を設定 ReDim [Preserve] 変数名([下限 To] 上限) ※Preserveを省略すると値がクリアされる 配列の要素に値が入っているときにPreserveを省略すると入っていた値がクリアされる #ノンプロ研 #VBA中級講座

2021-10-01 20:33:55
alice @alice37308108

たまに使うと忘れていてググってちーんとなります😢 #ノンプロ研 #VBA中級講座 twitter.com/2a9SouLnhptnIq…

2021-10-01 20:36:49
根岸 @2a9SouLnhptnIqG

多次元配列でReDim Preserveは最終次元しか変更できないので注意! #ノンプロ研 #VBA中級講座

2021-10-01 20:33:49
alice @alice37308108

Redimを2回連続で書くことはほぼない #ノンプロ研 #VBA中級講座

2021-10-01 20:38:07
kudou @kudou32323

動的配列サイズ変更正直めんどいってスライドにも書いてたw #ノンプロ研 #VBA中級講座

2021-10-01 20:38:40
alice @alice37308108

配列・コレクション・辞書の使い分けができたらいいですね😀 #ノンプロ研 #VBA中級講座

2021-10-01 20:39:28
alice @alice37308108

動的配列のサイズ変更 ・事前にサイズがわかる →固定配列 ・事前にサイズがわからない →動的配列 #ノンプロ研  #VBA中級講座

2021-10-01 20:40:39
kudou @kudou32323

出たVariant型・・・ 配列も扱えるけど、配列ではインデックス指定で初期化不可なの、本当に嫌 #ノンプロ研 #VBA中級講座

2021-10-01 20:41:17
alice @alice37308108

Variant型の変数 Dim 変数 As Variant →どんな値も格納できる万能の変数✨ ・動的配列 ・格納する値の型がバラバラでもOK(シートの値を配列に格納するなどいちいちデータ型を設定するとエラーになることがあるときに使える) ・インデックス指定で初期化できない #VBA中級講座

2021-10-01 20:44:21
alice @alice37308108

Array関数 →配列を生成する関数 Array(値1, 値2, ...) ※戻り値はVariant型 #ノンプロ研 #VBA中級講座

2021-10-01 20:47:13
alice @alice37308108

Dim values As Variant values(0) = "Hoge"   ←エラーになる Variantにempty値が入っている 1回あなたは配列なんですよ!と配列に変身してあげないと配列に格納できない。 #ノンプロ研 #VBA中級講座

2021-10-01 20:50:21
alice @alice37308108

事前に配列のサイズがわからない ・型が揃っている →固有型の動的配列 ・型が揃ってない →Variant変数による配列 #ノンプロ研 #VBA中級講座

2021-10-01 20:51:18
alice @alice37308108

LBound関数・UBound関数 ・配列のインデックスの下限値・上限値を返す ・配列の操作をするときには必ず使うもの LBound関数(下限値 L→lower) UBound関数(上限値 U→upper) #ノンプロ研 #VBA中級講座

2021-10-01 20:54:52
根岸 @2a9SouLnhptnIqG

LBound(配列[, 次元]): 配列の[次元の]インデックスの下限値 UBound(配列[, 次元]): 配列の[次元の]インデックスの上限値 Dim 変数(2, 1 To 3) As Long の場合 LBound(変数) →0 UBound(変数) →2 LBound(変数, 2) →1 UBound(変数, 2) →3 #ノンプロ研 #VBA中級講座

2021-10-01 20:55:51
alice @alice37308108

LBound(配列[, 次元]) LBound(numbers)  1次元目の下限値 LBound(numbers, 2) 2次元目の下限値 #ノンプロ研 #VBA中級講座

2021-10-01 20:58:52
alice @alice37308108

Array関数によって生成された配列は0スタートになる #ノンプロ研 #VBA中級講座

2021-10-01 21:00:32
alice @alice37308108

For Each文による配列のループ For Each 変数 In 配列  処理 Next 変数 変数はVariant型またはObject型となるが通常はVariant型にする #ノンプロ研 #VBA中級講座

2021-10-01 21:01:41
alice @alice37308108

For文による配列のループ For 変数 = LBound(配列) To UBound(配列)  処理 Next 変数 For文をつかうとLBount・UBound関数が活躍する #ノンプロ研 #VBA中級講座

2021-10-01 21:02:47
くのへ@くのへ塾やってます @MasazaneKunohe

#ノンプロ研#VBA中級講座 なぅ 配列もFor Each使える これだ!!! これでいける!! 全部のインベーダ君クローンをFor Each文でMoveさればシンプルな構文で動かせるぞ!!

2021-10-01 21:05:00
alice @alice37308108

For Each文による配列のループ② 配列は0,1,2と順番に取り出される バラバラでばない #ノンプロ研 #VBA中級講座

2021-10-01 21:07:54
kudou @kudou32323

今回のRangeオブジェクトは前回と違ってやさしい #ノンプロ研 #VBA中級講座

2021-10-01 21:09:33
alice @alice37308108

Excelのシートから一気にどかん!と配列にいれられたらいいですよね? えっ!?できるんですか?? #ノンプロ研 #VBA中級講座

2021-10-01 21:09:42
alice @alice37308108

セル範囲の値を配列で取得・設定する Rangeオブジェクト.Value ・単体セルのとき→単体の値になる ・2個以上のセルのとき→2次元配列になる ・サイズの下限は常に1となる #ノンプロ研 #VBA中級講座

2021-10-01 21:12:05
alice @alice37308108

Option Baseステートメントを使うのはあまりおすすめしません。 #ノンプロ研 #VBA中級講座

2021-10-01 21:12:55
根岸 @2a9SouLnhptnIqG

セル範囲を配列に読み込む Dim 変数 As Variant 変数 = Rangeオブジェクト.Value 2次元配列になる。 *読み込むのはセルの値なので数式が入っている場合は注意! #ノンプロ研 #VBA中級講座

2021-10-01 21:13:04
alice @alice37308108

GAS講座のツイートをみて配列の復習をしている写経タイム #ノンプロ研 #VBA中級講座

2021-10-01 21:17:05