[ノンプロ研]初心者講座VBAコース第4回・オブジェクト、コレクション

『コミュニティ「ノンプログラマーのためのスキルアップ研究会」初心者講座VBAコース第4回のツイートまとめです。コンテンツは「オブジェクト、コレクション」です。 https://tonari-it.com/community-nonpro-semi/
2
alice @alice37308108

「シート名」と「オブジェクト名」は別モノ Excelのシート名って気軽に変えられる オブジェクト名はVBEを開かないと変更できない →VBEをやっている人でないと変更できない #ノンプロ研 #VBA講座

2021-06-23 20:59:20
alice @alice37308108

オブジェクトには階層構造があります! #ノンプロ研 #VBA講座

2021-06-23 21:04:48
根岸 @2a9SouLnhptnIqG

オブジェクトは階層構造になっている。 Application ↓ Workbook ↓ Worksheet ↓ Range と親子関係になっている #ノンプロ研

2021-06-23 21:06:44
根岸 @2a9SouLnhptnIqG

コレクションからオブジェクトを指定する方法 ①コレクション(インデックス) ②コレクション(名前) #ノンプロ研 #VBA

2021-06-23 21:09:12
alice @alice37308108

コレクションからオブジェクトを指定する方法 💡コレクション(インデックス) →Worksheets(1) →左から1番2番 💡コレクション(名前) →Worksheets("test") #ノンプロ研 #VBA講座

2021-06-23 21:09:58
かにみそ.gs @kanimiso_gs

インデックスと聞いてふと思ったのですが、講座で配列やってないよね?やらないのかな・・・? #ノンプロ研 #VBA講座

2021-06-23 21:10:10
alice @alice37308108

グローバルで使えるプロパティ 上位オブジェクトの指定を省略していきなり書くことができる ActiveWorkbook →アクティブなWorkbookオブジェクト #ノンプロ研 #VBA講座

2021-06-23 21:20:09
根岸 @2a9SouLnhptnIqG

上位オブジェクトの指定を省略できる Application.ActiveWorkbook.ActiveSheet.Range("A1") ↓ Range("A1") #ノンプロ研

2021-06-23 21:22:13
たろ @100Taro

オブジェクト名設定しないと、ユーザーに変えられるようね😅今まで作ってきたやつ、修正しないと。。 #ノンプロ研 #VBA講座

2021-06-23 21:29:51
alice @alice37308108

アクティブな…(ActiveSheet)はユーザーの干渉を受けるので極力使わない →使っている状況によってどれがアクティブか変わってくる #ノンプロ研 #VBA講座

2021-06-23 21:30:28
alice @alice37308108

オブジェクトの指定 ・コレクション(インデックス) ・コレクション(名前) で指定するとき →ブック名・シート名・インデックスはユーザー操作の干渉受けるので注意が必要! 左から〇番目とかシート名は使っている人に変えられる可能性がある #ノンプロ研 #VBA講座

2021-06-23 21:30:28
alice @alice37308108

オブジェクト名で指定するとユーザーの干渉を受けないのでオブジェクト名を指定しよう! 書きやすいうえにシンプルでユーザーの干渉もほぼ受けない! #ノンプロ研 #VBA講座

2021-06-23 21:30:29
根岸 @2a9SouLnhptnIqG

ActiveCell ActiveSheet ActiveWorkbook など、アクティブな、はユーザー操作の干渉受けるのでなるべく使わないように。 (使うときはオブジェクト変数に入れればOK) #ノンプロ研 #VBA

2021-06-23 21:30:54
根岸 @2a9SouLnhptnIqG

オブジェクトを変数にセットするには「Set」を付ける Set 変数名 = オブジェクト 「Set」は忘れがち。いまだに時々忘れる。 #ノンプロ研

2021-06-23 21:32:04
alice @alice37308108

オブジェクトを変数にセットするときは「Set」を付けましょう! Set 変数名 = オブジェクト ※付けないと実行時エラーになります🥲 #ノンプロ研 #VBA講座

2021-06-23 21:32:52
alice @alice37308108

変数名 ワークブック:wb ワークシート:ws がスタンダード #ノンプロ研 #VBA講座

2021-06-23 21:35:05
alice @alice37308108

Withステートメント →オブジェクトを省略できるブロックを作るステートメント With Sheet1  .メンバー ←Sheet1を省略して書くことができる End With 💡Withステートメントの中もインデントをしましょう! #ノンプロ研 #VBA講座

2021-06-23 21:38:39
根岸 @2a9SouLnhptnIqG

オブジェクトを省略できるWithステートメント With オブジェクト  .メンバー End With .(ドット)を付けてオブジェクトを省略します。 Withの中はインデントを忘れずに! #ノンプロ研

2021-06-23 21:38:56
alice @alice37308108

Withステートメントはすっきりして便利だけど、一画面収まらないと何を省略しているかわからなくなることもあるので、使いながら調整していきましょう #ノンプロ研 #VBA講座

2021-06-23 21:42:27
alice @alice37308108

For Each~Next文 コレクションに対して1つ1つ要素を取り出してループしていく For Each 変数 In コレクション  処理 Next 変数 #ノンプロ研 #VBA講座

2021-06-23 21:43:45
根岸 @2a9SouLnhptnIqG

オブジェクトをループするには For Each 変数 In コレクション '処理 Next 変数 変数はコレクションのメンバーのオブジェクト型にします。 コレクションからメンバーのオブジェクトを1つづつ取り出してループします。 #ノンプロ研 #VBA

2021-06-23 21:43:53
alice @alice37308108

For Each~Next文には「Set」は不要です #ノンプロ研 #VBA講座

2021-06-23 21:47:17
alice @alice37308108

私もよく「Set」を書き忘れます💦 エラーが出て、あーまた書くの忘れたーという感じです🥲 #ノンプロ研 #VBA講座

2021-06-23 21:49:37
alice @alice37308108

WorksheetsなのかWorksheetなのかどっちなんだ!はわかります。 Worksheetsはコレクション。 ここらへんは訓練が必要かもです。 #ノンプロ研 #VBA講座

2021-06-23 21:51:16
根岸 @2a9SouLnhptnIqG

For Eachループは処理する順番に決まりがないので順番にこだわる場合はFor Nextループを使います。 #ノンプロ研 #VBA

2021-06-23 21:53:28