- 締切済み
MSFlexGrid
エクセル上にMSFlexGridを表示させたいのですが、コントロールの一覧に表示されません。 エクセルに付属のVisualBasicEditor(VB6?)でDBからデータ取得し、MSFlexGridに表示させたいと思っています。 色々調べては見たのですが、MSFlexGridをエクセル上に配置するというものが検索できませんでした。 友人のエクセルにはエクセルのコントロールにMSFlexGridが表示されています。 おそらく何かのライブラリ?か何かが必要だと思うのですが知っている方いましたらご教授ください。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- pkh4989
- ベストアンサー率62% (162/260)
VB 6.0がインストールされていれば、以下のように設定してみてください。 ★VB6.0の MSFlexGrid のコンポーネント( MSFLXGRD.OCX ) EXCELのVisual Basic Editor 画面 (1)挿入→コンポーネント→コントロール(TAB)選択→「参照」→WINDOWS\system32\MSFLXGRD.OCX を選択して追加する (2)表示→「ツールボックス」を表示→マウス右クリックして「その他のコントロール」→ Microsoft FlexGrid Control,version 6.0 をチェックする 上記の操作で VB6.0の MSFlexGrid が使えるようになりますよ。 MSFlexGrid の使い方は VBと同様です。
- redfox63
- ベストアンサー率71% (1325/1856)
ListBoxにRowSourceが無いとなるとシート上にコントロールを貼り付けた場合だと思いますが … UserForm上で使う場合とシート上で使う場合で若干プロパティの扱いが変わるようです ListBoxに列見出しなどはつけられないのでLabelコントロールなどを別途貼り付けて使用といった方向になりそうです セルの枠線は無理なようです … 無理やりやるなら ListBox1.List( r,c ) = "aaa |"などといった方法でしょう
- redfox63
- ベストアンサー率71% (1325/1856)
VBランタイムをインストールしてもフォームやシート上でMSFlexGridを使った開発はできません 開発用のライセンスが必要になります コントロールの本体のOCXファイルをどこかからもらっても開発では使えないということです この使用可能と開発可能を混同しないようにしましょう UserFormでの使用を考えていらっしゃるのでしょうか? ListBoxの複数カラムではだめなのでしょうか どの道 MSFlexGridではセルの編集はできませんし …
- kaji_5592
- ベストアンサー率0% (0/0)
>MSFlexGridを利用しなくてもそのような機能を作れるということでしょうか? 発想次第だと思います。 私が以前作成したのは、まず取得テーブルのフィールド名を取得し表示 その下のセルに取得したデータ表示していくというものです。 >取得データが0~n件あり、10行以上ある場合はスクロールバーを表示するようにしたかったのですが。 Excelなので画面に表示できないほどのデータ(50行くらいでしょうか)をセットすれば自動的にスクロールバーは表示されるのでそれでOKかと思います。 >あと、行選択した場合にそのデータの詳細を表示したいとも思ってました。 Cellの行選択イベントを取得して、詳細表示する等・・・ >MSFlexGridだとその辺りは勝手にやってくれるようだったので入れたいと思っていたのですが、MSFlexGridを利用しなくても下記のようなことが出来るのでしょうか? かってにやってくれているわけではないと思いますよ。 各イベントを取得し、そのときに処理を組み込んでいるのだと思います。 ・MSFlexGridのようなレイアウト ExcelのCellってMSFlexGridみたいなレイアウトじゃないですか? ・スクロール 上記参照 ・行選択 Cellの行選択イベントを使用でなんとか・・・
お礼
>Excelなので画面に表示できないほどのデータ(50行くらいでしょうか)をセットすれば自動的にスクロールバーは表示されるのでそれでOKかと思います。 Gridを上から3つ並べるレイアウトにしようとしていました。 10行を3つ表示するイメージです。 行選択はできそうですが、レイアウトが難しそうです。
- kaji_5592
- ベストアンサー率0% (0/0)
MSFlexGridはそもそもVBAのライブラリにはありません。 もし使用したい場合は、VBのランタイムをインストールする必要があります。(VB ランタイム ダウンロード等で検索すれば引っかかります。) ただ、せっかくExcelを使用するのであれば、わざわざMSFlexGridを使わずともCellをうまく使えばコントロールもしやすいと思います。 それに、ランタイムがインストールされていないPCでMSFlexGridを組み込んだExcelを使用する場合、そのPCにRuntimeのインストールが必要になると思います。
補足
他のPCにもインストールしないといけないのは面倒ですね。 MSFlexGridを利用しなくてもそのような機能を作れるということでしょうか? 取得データが0~n件あり、10行以上ある場合はスクロールバーを表示するようにしたかったのですが。 あと、行選択した場合にそのデータの詳細を表示したいとも思ってました。 MSFlexGridだとその辺りは勝手にやってくれるようだったので入れたいと思っていたのですが、MSFlexGridを利用しなくても下記のようなことが出来るのでしょうか? ・MSFlexGridのようなレイアウト ・スクロール ・行選択
- redfox63
- ベストアンサー率71% (1325/1856)
MSFlexGridはExcelには付属しておりません VB5.0または6.0に開発用のライセンスと一緒に提供されています Visual Basic 5.0/6.0 いずれかの開発環境がインストールされた環境が必要ですよ
お礼
そうだったんですか。 勉強になりました。ありがとうございます。
補足
>UserFormでの使用を考えていらっしゃるのでしょうか? UserFormとコントロールは別物でしょうか? 一応コントロールボックスのGridを使用しようとしていました。 ListBoxの複数カラムを本日試してみました。 Gridのように縦横の線を入れたいのと、列見出しを作りたかったのですがうまくいきませんでした。 調べてみたのですが線を入れる方法は分からず。 (せめて横線は入れたい) 列見出しを入れたかったので、 ListBox1.RowSourceを使用しようとしたのですが 「オブジェクトはこのプロパティまたはメソッドをサポートしていません」とエラーが出てしまいました。 ListBoxでそのようなことは可能なのでしょうか?