昨日発生していたサイトログインできない不具合は修正されております(詳細はこちら)

[ノンプロ研」VBA初級者講座第8期第4回 「オブジェクト・コレクション」

コミュニティ「ノンプログラマーのためのスキルアップ研究会」のVBA初心者講座 第1回のツイートまとめです。第4回のテーマは「オブジェクト・コレクション」です!
3
keitaro@イベント企画大好き!! DATA Saber/GCS認定コーチ @MaskDePQuery

コレクションとは同種のオブジェクトの集まり ちなみにコレクションもオブジェクトです!! #ノンプロ研 #VBA初心者講座

2023-02-10 20:32:00
な~🍀GAS @GasNao703

Workbooksコレクション Worksheets コレクション Rangeは複数セルを含む範囲(複数形にはならない) #ノンプロ研 #VBA初心者講座

2023-02-10 20:34:43
ひでまる @hidemaro_0220

#ノンプロ研 #VBA初心者講座 オブジェクトの集まりをコレクションと呼ぶ。 WorkbooksやWorkSheetsなどがコレクション。 複数形で表現と思いきや、Rangeは範囲を表すRangesとは言わないようだ。。。

2023-02-10 20:34:46
keitaro@イベント企画大好き!! DATA Saber/GCS認定コーチ @MaskDePQuery

実務では Dim wb As Workbook Set wb = Workbooks.Add 追加したワークブックをオブジェクト変数に格納する書き方をよく使用しています。これ便利だよ。 #ノンプロ研 #VBA初心者講座

2023-02-10 20:36:35
ひでまる @hidemaro_0220

#ノンプロ研 #VBA初心者講座 コレクションが分かりづらかったら、Countで数えられるものがコレクションと言っても良いのかもしれませんね。

2023-02-10 20:37:17
おーーた @chiharudou0731

Workbooks.Count 個人用マクロブックもカウントされる #ノンプロ研 #VBA初心者講座

2023-02-10 20:39:41
な~🍀GAS @GasNao703

オブジェクト式 #ノンプロ研 #VBA初心者講座 オブジェクトを生成したりあらわしたりする式

2023-02-10 20:40:44
keitaro@イベント企画大好き!! DATA Saber/GCS認定コーチ @MaskDePQuery

オブジェクト式とはオブジェクトを生成する式です。 そのままですけど、理解が難しいっすね。 #ノンプロ研 #VBA初心者講座

2023-02-10 20:41:08
ひでまる @hidemaro_0220

#ノンプロ研 #VBA初心者講座 オブジェクト名はVBEのプロジェクト画面のMicrosoft Excel Objectフォルダ内で確認できる。

2023-02-10 20:43:41
keitaro@イベント企画大好き!! DATA Saber/GCS認定コーチ @MaskDePQuery

Sheet1.Parent という書き方は実は最近知りました。 これでSheet1オブジェクトが入っているブックが取れるんですよね。 #ノンプロ研 #VBA初心者講座

2023-02-10 20:47:09
ひでまる @hidemaro_0220

#ノンプロ研 #VBA初心者講座 ThisWorkbookって変更できるんだと今更ながら知る。。。🤣

2023-02-10 20:48:45
な~🍀GAS @GasNao703

Workbooksのイメージが無い気がする #ノンプロ研 #VBA初心者講座 インデックス番号と名前で指定できるそう👀 Workbookは開いた順、 ワークシートは並び順

2023-02-10 21:00:03
keitaro@イベント企画大好き!! DATA Saber/GCS認定コーチ @MaskDePQuery

VBAのworkbooksコレクションのインデックスは1から始まります。PowerAutomateDesktopもそうだったよな #ノンプロ研 #VBA初心者講座

2023-02-10 21:00:29
ひでまる @hidemaro_0220

#ノンプロ研 #VBA初心者講座 上位のオブジェクトを書き忘れるとPCは理解できない。よく忘れてエラーや意図しないシートが書き換えられたりするよなぁ。 マクロ実行前に上書き保存大事!!

2023-02-10 21:03:32
ひでまる @hidemaro_0220

#ノンプロ研 #VBA初心者講座 ThisWorkbook.Sheet1.Nameという指定方法はエラーとなる。オブジェクトを二つ重ねることはできないのか。。。

2023-02-10 21:07:39
ひでまる @hidemaro_0220

#ノンプロ研 #VBA初心者講座 上位オブジェクトの省略する場合は、何が省略されているのかきちんと理解していないと、予期せぬ動作に陥る。 ActiveWorksheetなどはユーザーにより変更が可能なため、なるべく使わない方が良さそう。

2023-02-10 21:20:29
な~🍀GAS @GasNao703

コレクションからオブジェクトを指定するときは、 インデックスや、オブジェクト名が変更されてしまうことも考慮しなければならない #ノンプロ研 #VBA初心者講座

2023-02-10 21:22:15
ひでまる @hidemaro_0220

#ノンプロ研 #VBA初心者講座 名前やインデックス番号を使った指定は、使用者側の干渉を受けやすいので、オブジェクト名を使うのが良い。 ん?複数のワークブックが開かれている状態でSheet1というオブジェクト名で指定するとどうなるんだ???

2023-02-10 21:23:00
な~🍀GAS @GasNao703

オブジェクト名ならほぼユーザーが変更しないので安心。 #ノンプロ研 #VBA初心者講座

2023-02-10 21:24:19
おーーた @chiharudou0731

他のブックのシートをオブジェクト名で指定できない #ノンプロ研 #VBA初心者講座

2023-02-10 21:30:04
keitaro@イベント企画大好き!! DATA Saber/GCS認定コーチ @MaskDePQuery

オブジェクト変数を使用する場合はsetが必要ですよ!!これは慣れですね set wb = ThisWorkbook #ノンプロ研 #VBA初心者講座

2023-02-10 21:36:21
な~🍀GAS @GasNao703

with ステートメント 共通するオブジェクト式を省略して記述できるブロックをつくれる #ノンプロ研 #VBA初心者講座

2023-02-10 21:40:45
tsubaki_matsunaga @matsubaki

Sheet1はオブジェクトで指定、Sheets(1)は1枚目のシートと指定してるんですね~ #ノンプロ研 #VBA初心者講座

2023-02-10 21:43:46