発展1講座第4章 - For Each構文 カンニングペーパー

この講座は有料講座です。
講座の購入後ご覧になれます。

ログインアカウントの新規作成

解説

For Each構文は、抽象的でとっつきにくく、オブジェクトの型によって書き方が変わるなど、覚えにくいです。そこで、実務で活用できるように、カンニングペーパーを用意しています。(マインドマップ P12)実務で使用するときは、カンニングペーパーを見ながら真似してください。

この教材についての過去の質問・感想

10459 : 受講生さんのコメント (2018-08-20 07:47:18)

小川先生
ありがとうございます。
縮小コピーで手帳に挟みますね♪


> 受講生 さん:
>
> 抽象度が高まるので、慣れるまでこういうツールがあると良いですね。
> 通勤時間のちょっとした合間や、会社での休憩時間にも、ちらちら見られると良いかと思います。
>
> > カンニングペーパーをしっかり手元に置いて、実際の作業に役立てて行こうと思います。
> > ありがとうございます。


10441 : 小川慶一の回答 (2018-08-17 11:18:04)

受講生 さん:

抽象度が高まるので、慣れるまでこういうツールがあると良いですね。
通勤時間のちょっとした合間や、会社での休憩時間にも、ちらちら見られると良いかと思います。

> カンニングペーパーをしっかり手元に置いて、実際の作業に役立てて行こうと思います。
> ありがとうございます。


10434 : 受講生さんのコメント (2018-08-17 06:58:25)

カンニングペーパーをしっかり手元に置いて、実際の作業に役立てて行こうと思います。
ありがとうございます。


8595 : 小川慶一の回答 (2017-07-31 05:06:32)

受講生 さん:

よいかと思います!


8591 : 受講生さんのコメント (2017-07-29 20:51:02)

2つのファイルをエクセルマクロで開いて、「同一シート名」の「特定のセル値」をコピーするマクロを for Each構文で処理できるか試してみました。
書き方で悩んでいましたが本動画を見て解決しました。

カンニングペーパーの
・ワークシート(特定のファイル内のすべてのワークシート)
で書いてみて、うまくいきました。

Dim ws As Worksheet
For Each ws In Workbooks("1つ目のファイル.xls").Worksheets
	For Each ws In Workbooks("2つ目のファイル.xls").Worksheets
           ・・・・・処理するプログラム・・・・・
	Next
Next


上記の通り、For EachをFor Eachで挟んだ書き方で処理しました。

仕事でも使えそうです。ありがとうございました。


2515 : 小川慶一の回答 (2014-09-21 23:11:03)

明石 照伸 さん:

>>「汎用性、移植性」について考えるのは、彼らをマネージする人が入れかわったらどうなるか?ということを考えるのに似ていますね。
>なるほど。。。よくわかります。(さすがですね。)

こういうことばかり考えているので (^^;

いつも興味深いコメントありがとうございます。
こちらこそ、引き続きよろしくお願いいたします。(^^




>小川慶一 さん:
>
>コメントありがとうございました。
>>
>>何のどんな処理に対して抽象度の高い表現で処理を完結できるようにできるかは、プログラミング言語ごとに異なります。
>>
>>エクセルVBAでは、複数のセルで構成された範囲を Range("D3:F8") とか Range("B3, F5, G4") といった表現で簡単に取得できます。
>>でも、たとえばCSVファイルの中身を解析して同じことをする処理を他言語で書こうと思ったらとても大変です。
>>
>>あと、発展編2に進むと引数つきサブプロシージャ、 Function プロシージャについて学びます。
>>そういう道具も自在に作れるようになると、内部処理としては複雑なはずのことでも、呼び出し元では抽象度の高い簡潔な表現だけで命令できるようになります。
>>
>おかげさまで手軽さだけではないExcel VBAの奥深さ・素晴らしさが少しみえてきたように思います。
>(発展編2も早く始めたくなってきました。(^^; )
>
>>
>>リアルの例で言い直すと、こんな感じ↓です。
>>
>>その道のベテランにお願いするときは抽象度の高い簡潔な表現だけで済みます。
>>新人にお願いするとなると、微に入り細を穿ち処理のロジックに介入しないと仕事が進みません。
>>
>>「汎用性、移植性」について考えるのは、彼らをマネージする人が入れかわったらどうなるか?ということを考えるのに似ていますね。
>>
>
>なるほど。。。よくわかります。(さすがですね。)
>
>ますます面白くなってきました。引き続きよろしくお願いいたします。(^^
>


2509 : 明石 照伸さんのコメント (2014-09-20 23:26:31)

小川慶一 さん:

コメントありがとうございました。
>
>何のどんな処理に対して抽象度の高い表現で処理を完結できるようにできるかは、プログラミング言語ごとに異なります。
>
>エクセルVBAでは、複数のセルで構成された範囲を Range("D3:F8") とか Range("B3, F5, G4") といった表現で簡単に取得できます。
>でも、たとえばCSVファイルの中身を解析して同じことをする処理を他言語で書こうと思ったらとても大変です。
>
>あと、発展編2に進むと引数つきサブプロシージャ、 Function プロシージャについて学びます。
>そういう道具も自在に作れるようになると、内部処理としては複雑なはずのことでも、呼び出し元では抽象度の高い簡潔な表現だけで命令できるようになります。
>
おかげさまで手軽さだけではないExcel VBAの奥深さ・素晴らしさが少しみえてきたように思います。
(発展編2も早く始めたくなってきました。(^^; )

>
>リアルの例で言い直すと、こんな感じ↓です。
>
>その道のベテランにお願いするときは抽象度の高い簡潔な表現だけで済みます。
>新人にお願いするとなると、微に入り細を穿ち処理のロジックに介入しないと仕事が進みません。
>
>「汎用性、移植性」について考えるのは、彼らをマネージする人が入れかわったらどうなるか?ということを考えるのに似ていますね。
>

なるほど。。。よくわかります。(さすがですね。)

ますます面白くなってきました。引き続きよろしくお願いいたします。(^^


2507 : 小川慶一の回答 (2014-09-20 18:53:08)

明石 照伸 さん:

>オブジェクトおよびコレクションに
>ついて理解が深まれば、非常に
>効果的に使えるのではないかと
>思いました。

まさに。 For Each 構文は、表現の抽象度が高いだけに、キマるとインパクトデカいですね (^^

>処理の複雑さをどこで吸収・実現
>(あるいは保証する?(^^; )と
>いうことなのでしょうが、

何のどんな処理に対して抽象度の高い表現で処理を完結できるようにできるかは、プログラミング言語ごとに異なります。

エクセルVBAでは、複数のセルで構成された範囲を Range("D3:F8") とか Range("B3, F5, G4") といった表現で簡単に取得できます。
でも、たとえばCSVファイルの中身を解析して同じことをする処理を他言語で書こうと思ったらとても大変です。

あと、発展編2に進むと引数つきサブプロシージャ、 Function プロシージャについて学びます。
そういう道具も自在に作れるようになると、内部処理としては複雑なはずのことでも、呼び出し元では抽象度の高い簡潔な表現だけで命令できるようになります。

要はご指摘のとおり、処理の複雑さをどこで吸収するか、ということです。

リアルの例で言い直すと、こんな感じ↓です。

その道のベテランにお願いするときは抽象度の高い簡潔な表現だけで済みます。
新人にお願いするとなると、微に入り細を穿ち処理のロジックに介入しないと仕事が進みません。

「汎用性、移植性」について考えるのは、彼らをマネージする人が入れかわったらどうなるか?ということを考えるのに似ていますね。


2506 : 明石 照伸さんのコメント (2014-09-20 15:53:02)

お世話になります。

講座:発展編1の中で特に、
このFor each構文のシリーズは
興味深く拝見いたしました。

オブジェクトおよびコレクションに
ついて理解が深まれば、非常に
効果的に使えるのではないかと
思いました。

イメージだけで具体的な例が
思いつかないのですが、特に
コレクションの指定で複雑な
ことができると、For each構文
自体は(入力値に対して、
場合分けする処理等が
不要になる、etc..)非常にすっきり
したロジックで書けるのではないかと
想像しました。

処理の複雑さをどこで吸収・実現
(あるいは保証する?(^^; )と
いうことなのでしょうが、上記の
ようなことが可能であれば
ロジック自体が理解しやすく、
プログラムの汎用性・移植性が
高まるのではと想像します。
(間違っていたらごめんなさい。)


3日がかりのその仕事、3分で終わらせる方法教えます。ガラパゴスタディーオンライン講座 ユーザー登録

本講座の動画一覧

  1. 【動画1】 発展1講座イントロダクション - 使用するファイル、PDFの確認
    【動画1】 発展1講座イントロダクション - 使用するファイル、PDFの確認 未習得
  2. 【動画2】 発展1講座イントロダクション - デバッグ イミディエイトウィンド
    【動画2】 発展1講座イントロダクション - デバッグ イミディエイトウィンド 未習得
  3. 【動画3】 発展1講座第1章 - オープニング 第1章1
    【動画3】 発展1講座第1章 - オープニング 第1章1 未習得
  4. 【動画4】 発展1講座第1章 - オープニング 第1章2
    【動画4】 発展1講座第1章 - オープニング 第1章2 未習得
  5. 【動画5】 発展1講座第1章 - データの「型」1
    【動画5】 発展1講座第1章 - データの「型」1 未習得
  6. 【動画6】 発展1講座第1章 - データの「型」2
    【動画6】 発展1講座第1章 - データの「型」2 未習得
  7. 【動画7】 発展1講座第1章 - 変数の初期値
    【動画7】 発展1講座第1章 - 変数の初期値 未習得
  8. 【動画8】 発展1講座第1章 - ハンガリアン記法
    【動画8】 発展1講座第1章 - ハンガリアン記法 未習得
  9. 【動画9】 発展1講座第1章 - 変数宣言の強制1
    【動画9】 発展1講座第1章 - 変数宣言の強制1 未習得
  10. 【動画10】 発展1講座第1章 - 変数宣言の強制2
    【動画10】 発展1講座第1章 - 変数宣言の強制2 未習得
  11. 【動画11】 発展1講座第1章 - 総称オブジェクト型
    【動画11】 発展1講座第1章 - 総称オブジェクト型 未習得
  12. 【動画12】 発展1講座第1章 - 固有オブジェクト型
    【動画12】 発展1講座第1章 - 固有オブジェクト型 未習得
  13. 【動画13】 発展1講座第1章 - バリアント型
    【動画13】 発展1講座第1章 - バリアント型 未習得
  14. 【動画14】 発展1講座第2章 - オープニング 第2章
    【動画14】 発展1講座第2章 - オープニング 第2章 未習得
  15. 【動画15】 発展1講座第2章 - コレクション
    【動画15】 発展1講座第2章 - コレクション 未習得
  16. 【動画16】 発展1講座第2章 - コレクション(インデックス)
    【動画16】 発展1講座第2章 - コレクション(インデックス) 未習得
  17. 【動画17】 発展1講座第2章 - コレクション(インデックス)の具体例
    【動画17】 発展1講座第2章 - コレクション(インデックス)の具体例 未習得
  18. 【動画18】 発展1講座第2章 - プロパティ 従属要素のオブジェクト
    【動画18】 発展1講座第2章 - プロパティ 従属要素のオブジェクト 未習得
  19. 【動画19】 発展1講座第2章 - プロパティ 上位のオブジェクト
    【動画19】 発展1講座第2章 - プロパティ 上位のオブジェクト 未習得
  20. 【動画20】 発展1講座第2章 - プロパティ 同レベルのオブジェクト
    【動画20】 発展1講座第2章 - プロパティ 同レベルのオブジェクト 未習得
  21. 【動画21】 発展1講座第2章 - プロパティ 値として表現できるデータ
    【動画21】 発展1講座第2章 - プロパティ 値として表現できるデータ 未習得
  22. 【動画22】 発展1講座第2章 - プロパティ Offset
    【動画22】 発展1講座第2章 - プロパティ Offset 未習得
  23. 【動画23】 発展1講座第2章 - プロパティ Offsetの使い方
    【動画23】 発展1講座第2章 - プロパティ Offsetの使い方 未習得
  24. 【動画24】 発展1講座第2章 - End プロパティの使い方
    【動画24】 発展1講座第2章 - End プロパティの使い方 未習得
  25. 【動画25】 発展1講座第2章 - メソッド1
    【動画25】 発展1講座第2章 - メソッド1 未習得
  26. 【動画26】 発展1講座第2章 - メソッド2
    【動画26】 発展1講座第2章 - メソッド2 未習得
  27. 【動画27】 発展1講座第3章 - マクロの自動記録 イントロダクション
    【動画27】 発展1講座第3章 - マクロの自動記録 イントロダクション 未習得
  28. 【動画28】 発展1講座第3章 - マクロの自動記録 オートフィルタ1
    【動画28】 発展1講座第3章 - マクロの自動記録 オートフィルタ1 未習得
  29. 【動画29】 発展1講座第3章 - マクロの自動記録 オートフィルタ2
    【動画29】 発展1講座第3章 - マクロの自動記録 オートフィルタ2 未習得
  30. 【動画30】 発展1講座第3章 - マクロの自動記録 フォントの設定
    【動画30】 発展1講座第3章 - マクロの自動記録 フォントの設定 未習得
  31. 【動画31】 発展1講座第3章 - マクロの自動記録 カラーインデックス
    【動画31】 発展1講座第3章 - マクロの自動記録 カラーインデックス 未習得
  32. 【動画32】 発展1講座第3章 - マクロの自動記録 アンダースコア
    【動画32】 発展1講座第3章 - マクロの自動記録 アンダースコア 未習得
  33. 【動画33】 発展1講座第3章 - マクロの自動記録 途中改行1 入力支援機能
    【動画33】 発展1講座第3章 - マクロの自動記録 途中改行1 入力支援機能 未習得
  34. 【動画34】 発展1講座第3章 - マクロの自動記録 途中改行2
    【動画34】 発展1講座第3章 - マクロの自動記録 途中改行2 未習得
  35. 【動画35】 発展1講座第3章 - マクロの自動記録 並べ替え
    【動画35】 発展1講座第3章 - マクロの自動記録 並べ替え 未習得
  36. 【動画36】 発展1講座第3章 - マクロの自動記録 個人用マクロブック
    【動画36】 発展1講座第3章 - マクロの自動記録 個人用マクロブック 未習得
  37. 【動画37】 発展1講座第4章 - 論理演算子 イントロダクション
    【動画37】 発展1講座第4章 - 論理演算子 イントロダクション 未習得
  38. 【動画38】 発展1講座第4章 - 論理演算子 解説
    【動画38】 発展1講座第4章 - 論理演算子 解説 未習得
  39. 【動画39】 発展1講座第4章 - 構造文 イントロダクション
    【動画39】 発展1講座第4章 - 構造文 イントロダクション 未習得
  40. 【動画40】 発展1講座第4章 - For Each構文 イントロダクション1
    【動画40】 発展1講座第4章 - For Each構文 イントロダクション1 未習得
  41. 【動画41】 発展1講座第4章 - For Each構文 イントロダクション2
    【動画41】 発展1講座第4章 - For Each構文 イントロダクション2 未習得
  42. 【動画42】 発展1講座第4章 - For Each構文 イントロダクション3
    【動画42】 発展1講座第4章 - For Each構文 イントロダクション3 未習得
  43. 【動画43】 発展1講座第4章 - For Each構文 演習
    【動画43】 発展1講座第4章 - For Each構文 演習 未習得
  44. 【動画44】 発展1講座第4章 - For Each構文 伝票作成マクロ解説
    【動画44】 発展1講座第4章 - For Each構文 伝票作成マクロ解説 未習得
  45. 【動画45】 発展1講座第4章 - For Each構文 セルのコレクション
    【動画45】 発展1講座第4章 - For Each構文 セルのコレクション 未習得
  46. 【動画46】 発展1講座第4章 - For Each構文 カンニングペーパー
    【動画46】 発展1講座第4章 - For Each構文 カンニングペーパー 未習得
  47. 【動画47】 発展1講座第4章 - Do Loop構文 概要
    【動画47】 発展1講座第4章 - Do Loop構文 概要 未習得
  48. 【動画48】 発展1講座第4章 - Do Loop構文 マクロの流れ
    【動画48】 発展1講座第4章 - Do Loop構文 マクロの流れ 未習得
  49. 【動画49】 発展1講座第4章 - Do Loop構文 4つのパターン
    【動画49】 発展1講座第4章 - Do Loop構文 4つのパターン 未習得
  50. 【動画50】 発展1講座第4章 - Do Loop構文 マクロの強制終了
    【動画50】 発展1講座第4章 - Do Loop構文 マクロの強制終了 未習得
  51. 【動画51】 発展1講座第4章 - Exit For、Exit Do、Exit Sub
    【動画51】 発展1講座第4章 - Exit For、Exit Do、Exit Sub 未習得
  52. 【動画52】 発展1講座第4章 - Select Case 概要
    【動画52】 発展1講座第4章 - Select Case 概要 未習得
  53. 【動画53】 発展1講座第4章 - Select Case If文との比較
    【動画53】 発展1講座第4章 - Select Case If文との比較 未習得
  54. 【動画54】 発展1講座第4章 - Select Case 比較する条件の順番
    【動画54】 発展1講座第4章 - Select Case 比較する条件の順番 未習得
  55. 【動画55】 発展1講座第4章 - Select Case 複数条件の並べ方
    【動画55】 発展1講座第4章 - Select Case 複数条件の並べ方 未習得
  56. 【動画56】 発展1講座第4章 - Select Case 条件の範囲選択
    【動画56】 発展1講座第4章 - Select Case 条件の範囲選択 未習得
  57. 【動画57】 発展1講座第5章 - Sub プロシージャの分割と呼び出し
    【動画57】 発展1講座第5章 - Sub プロシージャの分割と呼び出し 未習得
  58. 【動画58】 発展1講座第5章 - Sub プロシージャを分割するメリット
    【動画58】 発展1講座第5章 - Sub プロシージャを分割するメリット 未習得
  59. 【動画59】 発展1講座第5章 - ステップアウト、ステップオーバー
    【動画59】 発展1講座第5章 - ステップアウト、ステップオーバー 未習得
  60. 【動画60】 発展1講座第5章 - モジュールレベル変数
    【動画60】 発展1講座第5章 - モジュールレベル変数 未習得
  61. 【動画61】 発展1講座第5章 - モジュールレベル変数の操作
    【動画61】 発展1講座第5章 - モジュールレベル変数の操作 未習得
  62. 【動画62】 発展1講座第5章 - モジュールレベル変数 変数の重複
    【動画62】 発展1講座第5章 - モジュールレベル変数 変数の重複 未習得
  63. 【動画63】 発展1講座第5章 - モジュールレベル変数 まとめ
    【動画63】 発展1講座第5章 - モジュールレベル変数 まとめ 未習得
  64. 【動画64】 発展1講座第5章 - モジュールレベル変数 アクセシビリティ設定
    【動画64】 発展1講座第5章 - モジュールレベル変数 アクセシビリティ設定 未習得

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ