none
ListObject、およびリストとは何か RRS feed

  • 質問

  • はじめまして。

    Office VBA Reference を拝見していてわからなかったのですが、「List Object」とは具体的に何なのでしょうか?

    MSDNのListObject オブジェクトのページには、

    > ListObject オブジェクトは ListObjects コレクションのメンバーです。 ListObjects コレクションには、ワークシート内のすべてのリスト オブジェクトが含まれます。

    と記載されているのですが、ここで示されている「リスト」が何のことなのかよくわかりませんでした。
    ドロップダウンリストのことなのでしょうか?いくつかのWebサイトでは、「テーブルまたはリスト」のように記載されていたので、テーブルを含むのだろうということだけはわかっております。

    「リスト」ならびに「ListObject」の実体について、お答えいただけますと幸いです。


    2018年1月5日 7:26

回答

  • 手元にあるExcel2013で説明すると。

    • ワークシート上の適当な範囲を選択して、「リボン->挿入->テーブル」を行うとテーブルができます。
      このテーブルは、その中の行を1つの集まりとして、行の一覧(リスト)となります。
    • 「リボン->データ->テキストファイル」でCSVファイルを選択し、データモデルでテーブルとして読み込みを行うと、CSVファイルからテーブルができます。
      このテーブルはCSVファイルをソースとしたテーブルとして、CSVファイルが書き換えられた場合に、EXCEL側のデータも更新されます。
    • そのほかにも外部のデータベース(AccessやSQL Server等)から取り込んでテーブルとすることもできます。

    このようにして作られたテーブルに対してListObjectが作られます。
    ただし、ListObjectはワークシートで見えている範囲では無く、テーブルに表示される元のデータを管理するオブジェクトです。
    ListObjectで並べ替えやフィルタされた結果がワークシート上のテーブルに表示されます。(フィルタしたとしても元のデータが消えてしまっているわけでは無く、ListObjectが管理している元のデータは存在しているという事です)

    行単位でアクセス可能な一覧(リスト)に対して、読み出しを行ってくれるものがListObjectと考えておけばよいのではないでしょうか。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク HikaruS 2018年1月15日 1:09
    • 回答としてマークされていない HikaruS 2018年1月15日 1:09
    • 回答としてマーク HikaruS 2018年1月15日 1:09
    2018年1月5日 14:18

すべての返信

  • フォーラムオペレーターの栗下 望です。
    HikaruS さん、こんにちは。

    本件については、ご投稿いただいていたフォーラムよりも、
    MSDN フォーラムの「Visual Basic for Application(VBA)」のほうがより情報が集まりやすそうでしたので、
    スレッドの移動をさせていただきました。

    MSDN フォーラム  > Visual Basic for Application(VBA) > Visual Basic for Application(VBA)

    ご自分のスレッドが何処に行ったかわからなくなった場合は、
    画面左上の「クイック アクセス」の「マイ スレッド」よりご確認いただけます。

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


    MSDN/TechNet Community Support 栗下 望


    2018年1月5日 7:53
    モデレータ
  • 手元にあるExcel2013で説明すると。

    • ワークシート上の適当な範囲を選択して、「リボン->挿入->テーブル」を行うとテーブルができます。
      このテーブルは、その中の行を1つの集まりとして、行の一覧(リスト)となります。
    • 「リボン->データ->テキストファイル」でCSVファイルを選択し、データモデルでテーブルとして読み込みを行うと、CSVファイルからテーブルができます。
      このテーブルはCSVファイルをソースとしたテーブルとして、CSVファイルが書き換えられた場合に、EXCEL側のデータも更新されます。
    • そのほかにも外部のデータベース(AccessやSQL Server等)から取り込んでテーブルとすることもできます。

    このようにして作られたテーブルに対してListObjectが作られます。
    ただし、ListObjectはワークシートで見えている範囲では無く、テーブルに表示される元のデータを管理するオブジェクトです。
    ListObjectで並べ替えやフィルタされた結果がワークシート上のテーブルに表示されます。(フィルタしたとしても元のデータが消えてしまっているわけでは無く、ListObjectが管理している元のデータは存在しているという事です)

    行単位でアクセス可能な一覧(リスト)に対して、読み出しを行ってくれるものがListObjectと考えておけばよいのではないでしょうか。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク HikaruS 2018年1月15日 1:09
    • 回答としてマークされていない HikaruS 2018年1月15日 1:09
    • 回答としてマーク HikaruS 2018年1月15日 1:09
    2018年1月5日 14:18
  • せっかく迅速にご教示いただいたところ確認が遅れまして申し訳ございません。
    ご記載いただいた内容につきまして、よく理解できました。
    テストエンジニア的な作業を行うにあたり各オブジェクトやそのメソッド、メンバについて理解する必要があったのです。
    ご教示いただき大変助かりました。

    当質問を解決済みとさせていただきます。

    2018年1月15日 1:15