パソコン仕事5倍塾
35,000人を指導した東大卒・元日本IBM社内講師が直伝
MENU
澤田 亨さんの投稿
(投稿ID: 3618)
小川慶一さんのコメント
(コメントID: 5120)
澤田 亨さんのコメント
(コメントID: 5121)
(コメントID: 5122)
'お題: '横に5マス、縦に6マスの方眼紙が3枚重なっている。 'そして縦のマスは増やせるが重なる枚数は増やせない。 'この考え方であっていますか? '以下の実験1-3について、上記の「考え方」に基づいた結果予想をしなさい。 'その後、実験をしなさい。 '実験後、前記予想との比較検証をしなさい。 Sub hoge() Dim tm() ReDim tm(5, 3, 6) ReDim tm(7, 3, 6) '実験1。澤田さん自身の結果予想は? ReDim tm(5, 7, 6) '実験2。澤田さん自身の結果予想は? ReDim tm(5, 3, 7) '実験3。澤田さん自身の結果予想は? End Sub
(コメントID: 5125)
Sub hoge() Dim tm() ReDim tm(5, 3, 6) ReDim tm(7, 3, 6) '実験1。澤田さん自身の結果予想は? NG! ReDim tm(5, 7, 6) '実験2。澤田さん自身の結果予想は? NG! ReDim tm(5, 3, 7) '実験3。澤田さん自身の結果予想は? OK! End Sub
'お題: > '横に5マス、縦に6マスの方眼紙が3枚重なっている。 > 'そして縦のマスは増やせるが重なる枚数は増やせない。 > 'この考え方であっていますか? > > '以下の実験1-3について、上記の「考え方」に基づいた結果予想をしなさい。 > 'その後、実験をしなさい。 > '実験後、前記予想との比較検証をしなさい。 > Sub hoge() > Dim tm() > ReDim tm(5, 3, 6) > > ReDim tm(7, 3, 6) '実験1。澤田さん自身の結果予想は? > ReDim tm(5, 7, 6) '実験2。澤田さん自身の結果予想は? > ReDim tm(5, 3, 7) '実験3。澤田さん自身の結果予想は? > > End Sub
(コメントID: 5127)
(コメントID: 5128)
(コメントID: 5129)
たった1ヶ月で人生が劇的に変わりました
佐藤信さん
役員クラスの方から高い評価を受けるようになりました。
佐賀県 - 岩本徹さん
今までまったく知らなかったショートカットキーを使いまくっています。
東京都 - 鷹觜慶さん
年齢60才間近、営業で外回りの時間が多い私でも退社時間が1-2時間程度早くなりました。
東京都 - 宗内隆明さん
受講前もすでにパソコン得意でしたが、そんな私でも受講して本当に良かったと思えた講座です。
東京都 - 佐伯とも子さん
ここまで包括的に仕事に役立つ深い学びを受けれた講座は初めてでした
東京都 - 飯田倫子さん
2024年05月05日 07:10
2024年05月01日 14:04
2024年04月30日 17:13
2024年04月27日 15:36
2024年04月25日 07:00
2024年05月05日 09:45
2024年05月01日 18:39
2024年05月01日 18:17
2024年05月01日 17:47
2024年05月01日 15:18
2022年02月24日 10:59
2019年12月23日 05:57
2019年09月20日 12:29
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
2022年02月02日 00:00
2022年02月02日 03:00
2022年02月02日 06:00
2022年02月02日 09:00
2022年02月02日 12:00
2024年02月15日 18:30
2024年02月09日 17:05
2024年01月19日 13:00
2023年12月31日 17:00
2023年12月21日 14:00
2024年05月05日 09:40
2024年05月03日 11:20
2024年05月02日 10:38
2024年05月02日 05:00
2024年05月01日 18:30
澤田 亨さんの投稿
(投稿ID: 3618)
3次元配列について確認したいことがあります。
redim tm(5,3,6)だとします。
私は横に5マス、縦に3マスの方眼紙みたいなものが6枚重なっているような形をイメージしました。
しかし間違っているようで、横に5マス、縦に6マスの方眼紙が3枚重なっている。そして縦のマスは増やせるが重なる枚数は増やせない。
この考え方であっていますか?先生の言う通り今後あまり使う機会はなさそうなのですが宜しくお願いします。
小川慶一さんのコメント
(コメントID: 5120)
> しかし間違っているようで、横に5マス、縦に6マスの方眼紙が3枚重なっている。そして縦のマスは増やせるが重なる枚数は増やせない。
例え話が適切なものか?はこれを読んだだけでは分かりませんでした。
しかし、僕ならそういう例え方はしませんね。そう僕が感じる明確な理由はありますが、多次元配列自体に対する理解がまだ浅いようなので、今はそれについてはお伝えするつもりはありません。
三次元配列は三次元配列として理解するのがいちばん簡単です。
「重なった方眼紙」とみなさないと理解できないでいるということは、ご自身が手を動かして検証なり演習なり実務活用なりをした経験が足りないということです。
ですので、澤田さんがおっしゃりたいことをテストできるコードを自作してください。
コードを自作したら、それを実行し、その結果を報告ください。
そして、その結果を元にして理解を進めてください。
理解が進むなり決定的に行き詰まるなりしたら、あらためて、報告なりその上での質問なりしてください。
それがいちばん理解の助けになります。
先に二次元配列から復習したほうがいいでしょう。
さらに言うと、テキストに載っている演習問題もしっかりやってからのほうが良いかと思います。
澤田 亨さんのコメント
(コメントID: 5121)
ありがとうございます。
小川慶一さん:
> 澤田 亨さん:
>
> > しかし間違っているようで、横に5マス、縦に6マスの方眼紙が3枚重なっている。そして縦のマスは増やせるが重なる枚数は増やせない。
>
> 例え話が適切なものか?はこれを読んだだけでは分かりませんでした。
> しかし、僕ならそういう例え方はしませんね。そう僕が感じる明確な理由はありますが、多次元配列自体に対する理解がまだ浅いようなので、今はそれについてはお伝えするつもりはありません。
>
> 三次元配列は三次元配列として理解するのがいちばん簡単です。
> 「重なった方眼紙」とみなさないと理解できないでいるということは、ご自身が手を動かして検証なり演習なり実務活用なりをした経験が足りないということです。
>
> ですので、澤田さんがおっしゃりたいことをテストできるコードを自作してください。
> コードを自作したら、それを実行し、その結果を報告ください。
> そして、その結果を元にして理解を進めてください。
> 理解が進むなり決定的に行き詰まるなりしたら、あらためて、報告なりその上での質問なりしてください。
> それがいちばん理解の助けになります。
>
> 先に二次元配列から復習したほうがいいでしょう。
> さらに言うと、テキストに載っている演習問題もしっかりやってからのほうが良いかと思います。
>
小川慶一さんのコメント
(コメントID: 5122)
二次元配列についての復習はいかがですか。
> ですので、澤田さんがおっしゃりたいことをテストできるコードを自作してください。
> コードを自作したら、それを実行し、その結果を報告ください。
> そして、その結果を元にして理解を進めてください。
> 理解が進むなり決定的に行き詰まるなりしたら、あらためて、報告なりその上での質問なりしてください。
> それがいちばん理解の助けになります。
> それがいちばん理解の助けになります。
上記について。
僕なら、以下のコードで検証しますね。
自分で手を動かさないと、絶対に上達しません。
澤田 亨さんのコメント
(コメントID: 5125)
サンプルコードありがとうございます。
仕事から帰宅してこのようなメールを目にすると大変うれしいです。
早速検証してみます。
の結果になると思いましたが「あれ?」実行時エラーが全く出ません(汗)
preserve だとエラーになりますね。preserveしているか否かで最後のインデックスでなくても変更可能ですね。もう少しいじってみて理解を深めたいと
思います。ありがとうございます。
> 澤田 亨さん:
>
> 二次元配列についての復習はいかがですか。
>
> > ですので、澤田さんがおっしゃりたいことをテストできるコードを自作してください。
> > コードを自作したら、それを実行し、その結果を報告ください。
> > そして、その結果を元にして理解を進めてください。
> > 理解が進むなり決定的に行き詰まるなりしたら、あらためて、報告なりその上での質問なりしてください。
> > それがいちばん理解の助けになります。
> > それがいちばん理解の助けになります。
>
> 上記について。
> 僕なら、以下のコードで検証しますね。
>
>
>
> 自分で手を動かさないと、絶対に上達しません。
>
小川慶一さんのコメント
(コメントID: 5127)
> preserve だとエラーになりますね。preserveしているか否かで最後のインデックスでなくても変更可能ですね。もう少しいじってみて理解を深めたいと思います。ありがとうございます。
むしろ、僕のほうがこれにびっくりしました。
ReDim だけだと、好きにインデックス変更できるんですね。
(試したら、いったん三次元配列として ReDim した配列を 二次元配列として ReDim することも可能でした...)
実務でほぼ絶対にやらないようなことなので、僕も澤田さんにサンプルお渡しする前のテストがいい加減でした。
申し訳ありません。
それから、当初のご質問に対して:
>>redim tm(5,3,6)だとします。
>>私は横に5マス、縦に3マスの方眼紙みたいなものが6枚重なっているような形をイメージしました。
>>しかし間違っているようで、横に5マス、縦に6マスの方眼紙が3枚重なっている。そして縦のマスは増やせるが重なる枚数は増やせない。
>例え話が適切なものか?はこれを読んだだけでは分かりませんでした。
>しかし、僕ならそういう例え方はしませんね。そう僕が感じる明確な理由はありますが、多次元配列自体に対する理解がまだ浅いようなので、今はそれについてはお伝えするつもりはありません。
以下、preserveで再定義するという前提で話します。
配列でインデックスの値を変更できるのは、最後の引数だけです。
以下で、変数で示した値のみです。
ReDim tm(5, 3, c)
これは、澤田さんの例えに当てはめると、以下のとおりになります。
「横に5マス、縦にCマスの方眼紙が3枚重なっている。そして縦のマスは増やせるが重なる枚数は増やせない」
間違いではないですが、どうせ例えるなら以下ですかね。
「横に5マス、縦に3マスの方眼紙がC枚重なっている。そして、縦横のマスの大きさは変更できないが、枚数は増やせる」
澤田さんの例えは、たとえば100枚の原稿用紙があったとして、そのすべてについて、縦のマス数を変更するわけです。いびつですね。
僕の例えは、原稿用紙の枚数を増やすようなイメージですね。
手作業で一枚一枚の原稿用紙の縦サイズを変更するシーンを想像してみてください。
次に、手作業で原稿用紙を一枚一枚追加するシーンを想像してみてください。
どちらのほうが、現実感を持ってイメージができるでしょう。
>例え話が適切なものか?はこれを読んだだけでは分かりませんでした。
>しかし、僕ならそういう例え方はしませんね。
と書いたのは、そういう意味です。
例えとしてででてきた話が非現実的で、例えとして不適切です。
あと、それ以前に、配列の宣言は 5, 3, c、例え話ででてくる値の順番は 5, c, 3。
この順序の変更も不要な混乱を生じさせます。
形が韻を踏むように書いたほうが、マクロのコードも読みやすいですよね。
マクロを学ぶ過程から、そういうところも学んでもらたいです。
そういうところも意識しつつマクロをガンガン書けば、今後、こういうところも改善されていくものと思います。
ひきつづき、がんばってください。
澤田 亨さんのコメント
(コメントID: 5128)
ありがとうございます。
このような細かいアドバイスをいただけるところがガラパゴスタディーの魅力と感じております。考え方もとても参考になります。鍛錬します。
> 澤田 亨さん:
>
> > preserve だとエラーになりますね。preserveしているか否かで最後のインデックスでなくても変更可能ですね。もう少しいじってみて理解を深めたいと思います。ありがとうございます。
>
> むしろ、僕のほうがこれにびっくりしました。
> ReDim だけだと、好きにインデックス変更できるんですね。
> (試したら、いったん三次元配列として ReDim した配列を 二次元配列として ReDim することも可能でした...)
>
> 実務でほぼ絶対にやらないようなことなので、僕も澤田さんにサンプルお渡しする前のテストがいい加減でした。
> 申し訳ありません。
>
>
> それから、当初のご質問に対して:
>
> >>redim tm(5,3,6)だとします。
> >>私は横に5マス、縦に3マスの方眼紙みたいなものが6枚重なっているような形をイメージしました。
> >>しかし間違っているようで、横に5マス、縦に6マスの方眼紙が3枚重なっている。そして縦のマスは増やせるが重なる枚数は増やせない。
> >例え話が適切なものか?はこれを読んだだけでは分かりませんでした。
> >しかし、僕ならそういう例え方はしませんね。そう僕が感じる明確な理由はありますが、多次元配列自体に対する理解がまだ浅いようなので、今はそれについてはお伝えするつもりはありません。
>
> 以下、preserveで再定義するという前提で話します。
>
> 配列でインデックスの値を変更できるのは、最後の引数だけです。
> 以下で、変数で示した値のみです。
>
> ReDim tm(5, 3, c)
>
> これは、澤田さんの例えに当てはめると、以下のとおりになります。
> 「横に5マス、縦にCマスの方眼紙が3枚重なっている。そして縦のマスは増やせるが重なる枚数は増やせない」
>
> 間違いではないですが、どうせ例えるなら以下ですかね。
>
> 「横に5マス、縦に3マスの方眼紙がC枚重なっている。そして、縦横のマスの大きさは変更できないが、枚数は増やせる」
>
> 澤田さんの例えは、たとえば100枚の原稿用紙があったとして、そのすべてについて、縦のマス数を変更するわけです。いびつですね。
> 僕の例えは、原稿用紙の枚数を増やすようなイメージですね。
>
> 手作業で一枚一枚の原稿用紙の縦サイズを変更するシーンを想像してみてください。
> 次に、手作業で原稿用紙を一枚一枚追加するシーンを想像してみてください。
> どちらのほうが、現実感を持ってイメージができるでしょう。
>
> >例え話が適切なものか?はこれを読んだだけでは分かりませんでした。
> >しかし、僕ならそういう例え方はしませんね。
>
> と書いたのは、そういう意味です。
> 例えとしてででてきた話が非現実的で、例えとして不適切です。
>
> あと、それ以前に、配列の宣言は 5, 3, c、例え話ででてくる値の順番は 5, c, 3。
> この順序の変更も不要な混乱を生じさせます。
>
> 形が韻を踏むように書いたほうが、マクロのコードも読みやすいですよね。
> マクロを学ぶ過程から、そういうところも学んでもらたいです。
> そういうところも意識しつつマクロをガンガン書けば、今後、こういうところも改善されていくものと思います。
>
> ひきつづき、がんばってください。
>
小川慶一さんのコメント
(コメントID: 5129)
ひきつづき、よろしくお願いいたします。