• ベストアンサー

MSFlexGridとDataGridの違いについて

VBの勉強をしております。 WindowsXP、VB6.0です。 標記の件について質問させてください。 MSFlexGridは、グリッドの結合や色を付けたりするのに適している。 DataGridはエクセルのように、直接グリッド内を編集できるが、結合は無理で、色付けの設定はグリッド単位では指定できない。 2つのグリッドのどちらを使えば良いのか分からず、自分で調べてみた所、以上のような違いがあるのでは、という所までは分かりました。 行いたい処理は、 ・ファイルからデータを取り出し、グリッドへ表示。データの追加、修正、削除を行い、ファイルへ保存する。 機能として、検索とソートを行える。 また、データをクリックした際に、セルではなく、行全体の色を変更し、「行が選択されている」という見た目にしたい。 以上のような考えがあるのですが、実装が簡単なのはどちらのグリッドなのでしょうか? また、他に上記のような処理が可能なコントロールがあれば教えていただけないでしょうか? 以上、初心者なもので、文章が理解しづらいかもしれないですが、よろしくお願いいたします。

  • ya-cha
  • お礼率68% (184/268)

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

こういうコントロールは (1)officeやVBなど言語に付属しているもの MSFlexGrid、DataGridなど (2)コントロールなど、開発者・プロ向けの部品を作っている専門業者が、市販しているもの 一例 http://www.componentsource.co.jp/features/spreadsheet/index.html http://www.xlsoft.com/jp/products/SSG/product.html とあります。一般には(2)はフリーは少なく、価格は高価と思います の2つのタイプが有ることを念頭にGoogleででも照会してみて、読んだらどうですか。 ーー また質問者の課題は、スプレッドシート型で有ると思います。 一例 「スプレッドシート コントロール」でGoogleで照会 ーー (1)はWEBページ用には http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_100.html の「ユーザーフォームにワークシートを表示させる」 などが有るようです。 エクセルを使うケースも有るのかもしれません。 ーー >VBの勉強をしております。 もし始めて間もないのなら、複雑な課題を早くから良くやりますね。

その他の回答 (1)

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.1

どちらを選択しても行いたい処理はできると思います。 結局、検索もソートも自分でプログラムを組んで行うわけですから。

ya-cha
質問者

お礼

ご回答ありがとうございます。 両方のメソッドやプロパティを見比べ、便利そうな方を使用したいと思います。

関連するQ&A

  • MSFlexGrid 行選択状態

    現在VBを勉強しております。(WindowsXP、VB6.0) http://oshiete1.goo.ne.jp/qa996239.html ↑の質問と同じ内容で悩んでいるんですが、回答を見ても理解出来ず、解決出来ていません(>_<) 1.処理起動時に、テキストファイルからデータを読み込み、グリッドへ表示した後。 2.ソートした後。 3.「検索」処理にてデータを絞り込んで表示した後。 以上3点の時に、行選択状態でなくなってしまうので、それを修正したいんですが、方法が分かりません(;_:) 現在は、グリッドのフォーカスイベントに MSFlexGrid1.SelectionMode = flexSelectionByRow を設定しているだけです。 以上、よろしくお願いいたしますm(__)m

  • MSFLEXGRIDについて

    MSFLEXGRIDを使ってデータベースの内容を表示させようと考えています。 使い方としてはデータベースからfilterをつかって対象を絞ったデータをMSFLEXGRIDで項目を並び替えて表示させようとしたときにうまくいきません。 sqlで項目を並び替えてdatagridを使うしかないのでしょうか? なぜMSFLEXGRIDにこだわるかというと表示させた結果に対し、特定の行をダブルクリックすると別のフォームに移動するといったプログラムを作ろうとしているため、この方法がいいのかなと考えているからです。 どうかご教授のほどよろしくお願いします。 サーバー 2000 SQLサーバ2003 開発クライアントPC W2K VB6

  • MSFlexGrid

    VB6SP6を用いています。MSFlexGridですが、固定行をラベルに用いています。このグリッドをクリックして処理を行っています。固定行では、クリックを無視してほしいのです。固定行をクリックしても、grid.Rowの値は0ではなく、押してもいない、1が返ってきます。本来はクリックしたくない場所ですが、処理を行う1行目をクリックしたことと同じになってしまいます。 ラベル部分をクリックしないようにと伝えていますが、やはり具合が悪いです。 良い、回避方法はないでしょうか。

  • MSFlexgrid

    はじめましてVB初心者です。 MSFlexgridでアクセスDBの内容を取り込んで 別のフォームのテキストに表示させたいのですが MSFlexgridの欲しい行をクリックしても表示はテーブルの 一番上のになってしまいます。 欲しい行は色が変わるので選択できていると思うのですが・・・ どなたか教えてください。 環境はwin2000,VB5(SP3),ACCESS97です。 宜しくお願いします

  • MSFlexGridで↑や↓押下時の処理

    現在VBの勉強をしております(WindowsXp、VB6.0) MSFlexGridの行を選択すると、行のデータをテキストボックスへ表示する、といった処理を実装したんですが、キーボードの「↑」や「↓」押下時に、選択行は変わるんですが、クリックイベントでもフォーカスイベントでも処理を拾えません・・・。 まだ試してはいないんですが、keyDownイベントで、「↑」「↓」を判断し、更にグリッドにフォーカスが存在する場合に、1行上(または下)のデータをテキストボックスに表示する。 という処理をしないと不可能でしょうか? どう考えても上記の方法はスマートでは無いなぁと思い、何か良い方法があれば教えていただきたく質問させていただきました。 よろしくお願いいたしますm(__)m

  • MSFlexGridのSortメソッドについて

    VBの勉強をしております。(WindowsXP、VB6.0) MSFlexGridのSortは、内部的にはどの種類のソートなのでしょうか? ご存知の方がおられたら教えていただけますでしょうか? 課題で、「実行速度の効率を重視する」という項目があるのですが、 自作でクイックソートした方が良いのかどうか悩んでいます。 サンプルデータを作成して計測すればどちらが早いか分かるかもしれないですが、ソートの種類だけでもご存知の方がおられたら教えていただきたく質問させていただきました。 以上、よろしくお願いいたします。

  • VB6のMsFlexGridコントロールについて

    取得したデータ数分の行にデータを表示して その後10カラム目のデータでソートしているのですが 行選択状態の表示が消えてしまいます。 MSFlexGrid1.Col = 10   MSFlexGrid1.Sort = flexSortGenericDescending '* 降順にソート MSFlexGrid1.Row = 1 どうやら、Col、Rowプロパティに値を設定した時点で消えているようです。 これらをやらないと1行目が選択状態と なっています。表示後カーソルでクリックすると 行選択状態になります。 表示時点で行選択状態にさせたいのですがなにか 手段があれば教えてください。 設定しているプロパティは下記の通りです。 HighLight=1:(選択を強調表示) SelectionMode=1:(行全体を選択) よろしくおねがいします。

  • DATAGRIDで行ごとに文字の色を指定したい

    お疲れ様です。 VB6.0 Windows2000 データベース;MSDE を使用しています。 DATAGRIDでデータベースの内容を表示させているのですが、行ごとに文字の色を変更する方法はありますか? データベースに色コードをもたせて、データが持ってる色コードによって文字の色を変更させたいのです。 たとえば datagrid.forecolor=RGB(255,0,0) とすると、DATAGRID内の全ての行の文字色が変わってしまいます。 DATAGRIDの何行目の文字色は何色というような指定はできないのしょうか? よろしくお願い致します。

  • MSHFlexGrid および MSFlexGrid に関して

    こんにちわ MSFlexGrid,HSHFlexGrid に関して下記の方法を調査中です。 ご存知の方いらっしゃいましたら、情報提供をよろしくお願い致します。 (1)固定行および固定列のグリッド線の色の設定。 (2)固定行でない行のスクロールの固定の方法。 ※エクセルのウィンドウの固定と同様の設定。 たびたび申し訳ありません。よろしくお願い致します。

  • DataGridのReadOnlyについて

    こんにちは いつもお世話になっております。 VB.NET(2003)で、DataGridにデータを表示して、編集-更新する処理を行っています。 表示ボタンを押したら表示され、更新ボタンで更新される動作です。 表示方法はDataGridTextBoxColumnのReadOnly=TrueにしたものをDataTableにADDし、 これをDataGrid.DataSourceにセットして表示させています。 そして、クリアボタン押したときに dtb = New DataTable 'グリッドに表示 DataGrid.DataSource = dtb というようにDataTableを初期化してクリアしているのですが このときDataGrid上のTextBoxにカーソルがあると そのTextがクリアされず表示されたままになってしまいます。 ReadOnlyですが、一応カーソルは当たるようにしたいのです。 表示されたままになっているのは、クリアの方法がまずいのでしょうか? すみませんが、どなたか教えていただけませんでしょうか?

専門家に質問してみよう