見出し画像

第21回 VBAの悩みはVBAerに聞け

開催日時:2021年8月26日 20時~
登壇者 :Takushi@VBAとGAS勉強中 @Taxi3134
テーマ :Rangeの深層

画像1

今回はノンプロ研所属 VBA講座講師のTakushiさんの登壇です。
Takushiさんnotion( ..)φメモ

今夜のテーマは、Range Range Range

画像2


これはオレンジレンジ・・・どうすんだよ、この流れ。
気を取り直して、Range!
Excel VBAerで使ったことない人はいないであろうオブジェクト

そう、それがRange

Rangeと一言でいってもいろんな意味や使い方がある。
Takushiさんの解説が楽しみだぜぇ。

自己紹介

画像3

治験委員会(?初めて聞いた)と病院の仲介役ですって。

画像4

職場にはプログラミングできる人がいない。
Twitter見てると、100本ノックやって井の中の蛙と知る。
勉強して徐々に自身がついて本日の登壇に!

画像5

Rangeの話

画像6

Application.Cells・・・うむうむ基本だね。

画像7

グローバルに配下にあるものはApplication.を省略できる。

画像8

Cells、Rows、Columnsだけ使ったら全部同じ範囲
何故か行数で表示されるのは謎。
XFDまででも同じ。なんか不思議

画像10

特定範囲であれば、Cells、Rows、Colomnsで違いがです。
省略したらCellsの意。

画像9

RangeオブジェクトのCells

画像11

元のRangeをはみ出しても問題なし。

画像12

Cells(1,1).でインテリセンスでない問題

画像13

Rangeは引数と戻り値が規定されている

画像14

Cellsは引数が規定されていない。

画像15

Cellsの引数の正体は、_Default

画像16

非表示のメンバー。_Default=規定のプロパティ

画像17

Valueプロパティを省略しない男・・それがTakushi

画像18

Areasプロパティ Areasコレクションを返す

画像19

画像21

画像21

画像22

Areas(1)で左上範囲が、Areas(2)で右下範囲が選択される。

Unionメソッド

画像23

ちゅんさん、微熱で壊れてるな・・・

画像24

引数はArgは30個まで。
Unionに所属させられるRangeの個数は・・

画像30

画像43

画像25

画像26

UnionメソッドはRangeオブジェクトを返すのでそのAddressを表示してみる。

画像27

右下セルの取得

画像28

Findメソッドを使う

画像29

SearchOrderが大事

画像31

SearchDirectuon:=xlPreviousで後ろから検索

スピルがあるので、この表で検索
行方向、後ろから検索するとD11セルが最初の検索値結果になる。
同様に列方向で検索するとG5セルとなる。この二つを組み合わせるとG11

画像32

画像33

SpecialCells キタァァァァ

Ctrl+G ジャンプ機能の細かいやつ

画像34

SpecialCells(xlCellTypeFormulas)で取得するとこんな感じ

画像36

画像37

ループしながらUnionで範囲を拡張していく。

画像42

画像41

最後にひと工夫
これで最右下セルを選択できまっしゅ

画像42

何も記載ないシート、値だけのシート、計算式だけのシートにも対応

画像44

今後のスケジュール

参考:


団長、重役出勤

画像36

画像39

画像40

画像45

画像46

画像47

画像48

画像49

画像50


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