ワクワクV037回目レンジの選択(2021-04-10)

ワクワクV
2
ほえほえ@スプシマン @hoehoe1234

(わかっていて)「素直に書く」のと、検索してそのままコピペして書くのではやはり相当の差があるように感じます。前者は応用および組み合わせができますが、後者は「そのままでの利用」しかできません。レンジの操作はわかってしまえば簡単なのでぜひ動作モデルから理解することをおすすめします。

2021-04-15 17:44:52
ほえほえ@スプシマン @hoehoe1234

当たり前といえば当たり前ですが、九九と同じで数式で表すとこのような関係が成り立っているということですね。i,jで指定する場合、剰余を利用して指定する場合。どちらもフルエントに使用できる必要性を感じます。 pic.twitter.com/wLMpqfDfIZ

2021-04-15 17:46:31
拡大
ほえほえ@スプシマン @hoehoe1234

演習問題を示していませんでした。お題はこのような表に置いて左上、左下、右上、右下を含む様々な範囲を「レンジのモデルを理解して選ぶ」です。左上と右上はデータ部の上になるようにあえて下に1行ずらしています。 pic.twitter.com/NMt4RfyUTH

2021-04-15 17:49:29
拡大
ほえほえ@スプシマン @hoehoe1234

素直に書くとこんな感じでしょうか。異論はあるとおもいますが。 pic.twitter.com/xGneVKMNPv

2021-04-15 17:55:59
拡大
ほえほえ@スプシマン @hoehoe1234

レンジの多くのメソッドは、レンジを返します。ですからこのように連鎖する記法が成り立ちます。このエクセル感覚はオブジェクトを使用するときに必要となりますので習得しましょう。(最終的には「参照の概念」を理解することを推奨しています) pic.twitter.com/rikHZHeCJW

2021-04-15 18:00:37
拡大
ほえほえ@スプシマン @hoehoe1234

演習問題のお題①~④はこれになります。④以外はよくあるケースだと思います。これまでと同じく表全体をCurrentRegionで取得し、それをcrと表すことにします。 pic.twitter.com/dcOQgKO7WG

2021-04-15 18:03:49
拡大
ほえほえ@スプシマン @hoehoe1234

①~④まで、どのような選択方法があるのかご自分で試してみると面白いとおもいます(crでなくて、selectionを対象とする関数で書くといろいろためせますね)。

2021-04-15 18:06:54
ほえほえ@スプシマン @hoehoe1234

cellでもっとも重要な概念は、 ①親と同じ範囲を返す ②ただし、切り方(スライス方法)は親がどんな切り方であったとしても「セル単位にスライス」したレンジを返す です。 cells(i,j)は単なる記法に過ぎず、これはcellsの概念を正しく表していません(※デフォルトプロパティの話しになります)。

2021-04-15 18:09:19
ほえほえ@スプシマン @hoehoe1234

rows、columnsも同じです。rows(i)、columns(i)と書けるのは「デフォルトプロパティ」の機能です。cellsの機能とデフォルトプロパティの機能の違いを理解することが自由なセル操作への第一歩だと思います。 pic.twitter.com/i6102jj7XN

2021-04-15 18:11:25
拡大
ほえほえ@スプシマン @hoehoe1234

Rangeとforeach、レンジからの値のとり方(スカラと配列)、可能であればAreasの話をしようとおもいましが時間が足らずに、次回以降に持ち越しとなりました。 pic.twitter.com/Qsf0MlBEUk

2021-04-15 18:13:09
拡大
ほえほえ@スプシマン @hoehoe1234

ほえDX塾で推奨しているのは、「どろくさいやり方」です。上記図にあるように、レンジを返すメソッドを全部ピックアップして、実際に書いて、それを「特性により」分類した結果が今回の講義の材料となっています。「まずあるものを具体的に数え上げる」というのは大切な技法の一つだと思います。

2021-04-15 18:14:37
ほえほえ@スプシマン @hoehoe1234

ここまでわかれば、この図の黄色マーカした2行がそれぞれ「どの範囲」を選択するかわかりますね。特に2つ目の選択範囲がすぐにわかればかなりレンジについて理解しているといえるのではないでしょうか? pic.twitter.com/Bu6JpLzfGJ

2021-04-15 18:17:06
拡大
ほえほえ@スプシマン @hoehoe1234

転記アプリを作る技術習得を目的に ①ワクワクVの前半を要素技術(今回であればレンジの操作) ②後半を実践演習によりプロウグラミング自体のスキル向上と応用 にわけて実施していますが、前半で終わってしまいました。次回はもう少しバランスよく進めたいです。

2021-04-15 18:19:10
ほえほえ@スプシマン @hoehoe1234

生徒さんにも「おもしろかった」と言っていただけてよかったです。次回はこの続きで「レンジから値を取得する方法」をやります。大きく分けて観点は ①cells(i,j), cells(i) ②for each ③値と配列文脈 追加で ④Areaの理解 となります。 おしまい。

2021-04-15 18:21:20
ほえほえ@スプシマン @hoehoe1234

補足 お題の①~④についていろいろな洗濯方法をしてみました。興味のある人は読み解いてみてください。 pic.twitter.com/cXATDn7GAL

2021-04-15 18:38:39
拡大