補講9-たった1行のコードでセルのデータを配列に投入する

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

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

解説

たった1行のコードでセルのデータを配列に投入する方法があります。
DPRに従った仕事をするとき、強力な支援になる機能です。

この動画では、実務での活用例、この方法を使う場合の注意点等、関連の主要な情報をお伝えします。


実務では、データベースからデータを取得して処理する、という一連の過程で、データベース用のファイルを長時間保持しなくて済むという利点があります。
また、都度都度元データのあるシートのセルを参照するより、高速で情報を処理できます。

具体的な注意点については、動画でご確認ください。

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

11660 : 小川慶一の回答 (2019-11-14 06:42:27)

受講生 さん:

「エクセルマクロ・VBA発展編2演習と回答」という講座があります。
https://online.pc5bai.com/package/index/85

先行して権限付与しました。
ご確認ください。

とりいそぎ。

小川


> お世話になっております。
> ガラパゴスタディー事務局の本間と申します。
>
> 先ほど、ご購入時の案内メールを再送しました。
>
> 件名は「【重要】[5bai]発展編2の追加教材を無料で取得する方法について」
> というものです。
>
> メール本文にて、アンケートページをご案内していますので、
> そちらにご回答いただき、『エクセルマクロ・発展編2演習と回答』をお受け取りください。
>
> どうぞ、よろしくお願いいたします。


11659 : ガラパゴスタディー本間の回答 (2019-11-13 09:50:30)

お世話になっております。
ガラパゴスタディー事務局の本間と申します。

先ほど、ご購入時の案内メールを再送しました。

件名は「【重要】[5bai]発展編2の追加教材を無料で取得する方法について」
というものです。

メール本文にて、アンケートページをご案内していますので、
そちらにご回答いただき、『エクセルマクロ・発展編2演習と回答』をお受け取りください。

どうぞ、よろしくお願いいたします。


11658 : 受講生さんのコメント (2019-11-13 04:41:46)

ご返信ありがとうございます。

購入時の案内メールを探してみたのですが、見つからなかったので、
お手数ですが再送していただけるとありがたいです。


11657 : 小川慶一の回答 (2019-11-12 12:09:37)

ゲストさん:

新講座『エクセルマクロ・発展編2演習と回答』プレゼント応募用アンケートについてはご存知でしょうか。

発展編2講座を受講のうえアンケートにお応えいただいた方向けに、動画21本、4時間15分相当の講座「エクセルマクロ・VBA発展編2演習と回答」を無料でさしあげております。

「Enshu」の解答は、「エクセルマクロ・VBA発展編2演習と回答」に含まれております。

上記について、講座購入時に案内メールが行っておりますでしょうか。
もし受け取れていないというようでしたら再送いたしますので、ご連絡をいただければと存じます。


> 「Enshu」の解答は、どこにありますか


11656 : ゲストさんのコメント (2019-11-12 06:06:51)

「Enshu」の解答は、どこにありますか


11412 : 小川慶一の回答 (2019-05-19 02:28:00)

田中 宏明さん:

> 実務で活用できそうな事例が思い当たりませんが、

だよな...と思いつつお返事を考えていたら、タイミングを逃してしまいました。

> 第一引数の行番号をRedim Preserveできない場合、縦横入替で 第二引数の行番号をRedim Preserveできることくらいでしょうか。

そういう形で困ったこと、ないですね。
もしも第一引数の要素数で困ることがあるなら、そもそも、元データの形とかに問題ありそうに思います。
DPRから見直したいですね。(Pが大変なら、たいてい、Dがおかしいか、Rで色気を出しすぎ)


> 配列を研究し、「二次元配列の縦横入替」を知りました。
> Excel自体のTranspose関数を呼び出すことで実現。Debug.Printで結果が同じになるので、うまくいっているようです。
>
> 実務で活用できそうな事例が思い当たりませんが、第一引数の行番号をRedim Preserveできない場合、縦横入替で 第二引数の行番号をRedim Preserveできることくらいでしょうか。

Sub Sample9_Transpose()
    Dim vList As Variant
    vList = Range("B4").CurrentRegion
    
    Dim c As Long
    'インデックスは1から!
    '第一引数が行番号!
    '表ではタイトルも含まれてしまうのでので注意!
    For c = LBound(vList, 1) To UBound(vList, 1)
        Debug.Print vList(c, 1), vList(c, 2), vList(c, 7)
    Next
    
    Debug.Print vbNewLine
    Dim v2List As Variant
    '二次元配列の縦横を入れ替え
    'インデックスは1から!
    '第一引数が行番号から列番号に変更される!
    v2List = Application.WorksheetFunction.Transpose(vList)
    For c = LBound(v2List, 2) To UBound(v2List, 2)
        Debug.Print v2List(1, c), v2List(2, c), v2List(7, c)
    Next
End Sub


11398 : 田中 宏明さんのコメント (2019-05-11 17:08:57)

配列を研究し、「二次元配列の縦横入替」を知りました。
Excel自体のTranspose関数を呼び出すことで実現。Debug.Printで結果が同じになるので、うまくいっているようです。

実務で活用できそうな事例が思い当たりませんが、第一引数の行番号をRedim Preserveできない場合、縦横入替で 第二引数の行番号をRedim Preserveできることくらいでしょうか。

Sub Sample9_Transpose()
    Dim vList As Variant
    vList = Range("B4").CurrentRegion
    
    Dim c As Long
    'インデックスは1から!
    '第一引数が行番号!
    '表ではタイトルも含まれてしまうのでので注意!
    For c = LBound(vList, 1) To UBound(vList, 1)
        Debug.Print vList(c, 1), vList(c, 2), vList(c, 7)
    Next
    
    Debug.Print vbNewLine
    Dim v2List As Variant
    '二次元配列の縦横を入れ替え
    'インデックスは1から!
    '第一引数が行番号から列番号に変更される!
    v2List = Application.WorksheetFunction.Transpose(vList)
    For c = LBound(v2List, 2) To UBound(v2List, 2)
        Debug.Print v2List(1, c), v2List(2, c), v2List(7, c)
    Next
End Sub


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

本講座の動画一覧

  1. 【動画1】 式と戻り値1-データ型のおさらい
    【動画1】 式と戻り値1-データ型のおさらい 未習得
  2. 【動画2】 式と戻り値2-「式」と「戻り値」
    【動画2】 式と戻り値2-「式」と「戻り値」 未習得
  3. 【動画3】 式と戻り値3-「式」と「戻り値のデータ型」
    【動画3】  式と戻り値3-「式」と「戻り値のデータ型」 未習得
  4. 【動画4】 式と戻り値4-「式」とは(その1)
    【動画4】 式と戻り値4-「式」とは(その1) 未習得
  5. 【動画5】 式と戻り値5-「式」とは(その2)
    【動画5】 式と戻り値5-「式」とは(その2) 未習得
  6. 【動画6】 式と戻り値6-戻り値を返す式、戻り値を返さない式
    【動画6】  式と戻り値6-戻り値を返す式、戻り値を返さない式 未習得
  7. 【動画7】 コレクションとインデックス
    【動画7】  コレクションとインデックス 未習得
  8. 【動画8】 配列
    【動画8】 配列 未習得
  9. 【動画9】 静的配列
    【動画9】 静的配列 未習得
  10. 【動画10】 動的配列1-動的配列の基本
    【動画10】 動的配列1-動的配列の基本 未習得
  11. 【動画11】 動的配列2-Preserveキーワード
    【動画11】 動的配列2-Preserveキーワード 未習得
  12. 【動画12】 動的配列3-演習
    【動画12】 動的配列3-演習 未習得
  13. 【動画13】 多次元配列の基本
    【動画13】 多次元配列の基本 未習得
  14. 【動画14】 多次元動的配列
    【動画14】 多次元動的配列 未習得
  15. 【動画15】 多次元配列のサイズを調べる
    【動画15】 多次元配列のサイズを調べる 未習得
  16. 【動画16】 配列操作の便利関数、オプション、その他
    【動画16】  配列操作の便利関数、オプション、その他 未習得
  17. 【動画17】 連想配列1-Dictionaryオブジェクトの仕様
    【動画17】 連想配列1-Dictionaryオブジェクトの仕様 未習得
  18. 【動画18】 連想配列2-Dictionaryオブジェクトの使用例
    【動画18】 連想配列2-Dictionaryオブジェクトの使用例 未習得
  19. 【動画19】 連想配列3-Microsoft Scripting Runtimeのへの参照設定
    【動画19】 連想配列3-Microsoft Scripting Runtimeのへの参照設定 未習得
  20. 【動画20】 「名前付き引数」と「名前なし引数」
    【動画20】 「名前付き引数」と「名前なし引数」 未習得
  21. 【動画21】 省略可能な引数とその初期値
    【動画21】 省略可能な引数とその初期値 未習得
  22. 【動画22】 引数のデータ型
    【動画22】 引数のデータ型 未習得
  23. 【動画23】 Functionプロシージャ
    【動画23】 Functionプロシージャ 未習得
  24. 【動画24】 引数がひとつまたは複数のFunctionプロシージャ
    【動画24】 引数がひとつまたは複数のFunctionプロシージャ 未習得
  25. 【動画25】 Functionプロシージャ演習中
    【動画25】 Functionプロシージャ演習中 未習得
  26. 【動画26】 引数として配列を受け取るFunctionプロシージャ
    【動画26】 引数として配列を受け取るFunctionプロシージャ 未習得
  27. 【動画27】 引数を受け取らないSubプロシージャと引数つきSubプロシージャ
    【動画27】 引数を受け取らないSubプロシージャと引数つきSubプロシージャ 未習得
  28. 【動画28】 Subプロシージャの基本構造
    【動画28】 Subプロシージャの基本構造 未習得
  29. 【動画29】 モジュールレベル変数との使い分け
    【動画29】 モジュールレベル変数との使い分け 未習得
  30. 【動画30】 補講1-ディクショナリーオブジェクトのさらなる活用
    【動画30】 補講1-ディクショナリーオブジェクトのさらなる活用 未習得
  31. 【動画31】 補講2-ディクショナリーオブジェクトの .Count プロパティ
    【動画31】 補講2-ディクショナリーオブジェクトの .Count プロパティ 未習得
  32. 【動画32】 補講3-連想配列によるオブジェクトへの参照設定 - 新しいキーに設定する場合
    【動画32】 補講3-連想配列によるオブジェクトへの参照設定 - 新しいキーに設定する場合 未習得
  33. 【動画33】 補講4-連想配列によるオブジェクトへの参照設定 - 既存の値を上書きする場合
    【動画33】 補講4-連想配列によるオブジェクトへの参照設定 - 既存の値を上書きする場合 未習得
  34. 【動画34】 補講5-複数セルの集合を作るための便利なメソッド2つ
    【動画34】 補講5-複数セルの集合を作るための便利なメソッド2つ 未習得
  35. 【動画35】 補講6-連想配列演習-取引先ごとに取引金額の合計を算出する
    【動画35】 補講6-連想配列演習-取引先ごとに取引金額の合計を算出する 未習得
  36. 【動画36】 補講7-ウォッチ式の活用
    【動画36】 補講7-ウォッチ式の活用 未習得
  37. 【動画37】 補講8-ウォッチ式で配列の状態を確認する
    【動画37】 補講8-ウォッチ式で配列の状態を確認する 未習得
  38. 【動画38】 補講9-たった1行のコードでセルのデータを配列に投入する
    【動画38】 補講9-たった1行のコードでセルのデータを配列に投入する 未習得

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ