アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル上にMSFlexGridを表示させたいのですが、コントロールの一覧に表示されません。
エクセルに付属のVisualBasicEditor(VB6?)でDBからデータ取得し、MSFlexGridに表示させたいと思っています。

色々調べては見たのですが、MSFlexGridをエクセル上に配置するというものが検索できませんでした。
友人のエクセルにはエクセルのコントロールにMSFlexGridが表示されています。

おそらく何かのライブラリ?か何かが必要だと思うのですが知っている方いましたらご教授ください。

A 回答 (6件)

MSFlexGridはExcelには付属しておりません


VB5.0または6.0に開発用のライセンスと一緒に提供されています

Visual Basic 5.0/6.0 いずれかの開発環境がインストールされた環境が必要ですよ
    • good
    • 0
この回答へのお礼

そうだったんですか。
勉強になりました。ありがとうございます。

お礼日時:2008/09/29 01:36

MSFlexGridはそもそもVBAのライブラリにはありません。


もし使用したい場合は、VBのランタイムをインストールする必要があります。(VB ランタイム ダウンロード等で検索すれば引っかかります。)

ただ、せっかくExcelを使用するのであれば、わざわざMSFlexGridを使わずともCellをうまく使えばコントロールもしやすいと思います。
それに、ランタイムがインストールされていないPCでMSFlexGridを組み込んだExcelを使用する場合、そのPCにRuntimeのインストールが必要になると思います。

この回答への補足

他のPCにもインストールしないといけないのは面倒ですね。
MSFlexGridを利用しなくてもそのような機能を作れるということでしょうか?
取得データが0~n件あり、10行以上ある場合はスクロールバーを表示するようにしたかったのですが。
あと、行選択した場合にそのデータの詳細を表示したいとも思ってました。

MSFlexGridだとその辺りは勝手にやってくれるようだったので入れたいと思っていたのですが、MSFlexGridを利用しなくても下記のようなことが出来るのでしょうか?
・MSFlexGridのようなレイアウト
・スクロール
・行選択

補足日時:2008/09/29 01:36
    • good
    • 0

>MSFlexGridを利用しなくてもそのような機能を作れるということでしょうか?


発想次第だと思います。
私が以前作成したのは、まず取得テーブルのフィールド名を取得し表示
その下のセルに取得したデータ表示していくというものです。

>取得データが0~n件あり、10行以上ある場合はスクロールバーを表示するようにしたかったのですが。
Excelなので画面に表示できないほどのデータ(50行くらいでしょうか)をセットすれば自動的にスクロールバーは表示されるのでそれでOKかと思います。

>あと、行選択した場合にそのデータの詳細を表示したいとも思ってました。
Cellの行選択イベントを取得して、詳細表示する等・・・

>MSFlexGridだとその辺りは勝手にやってくれるようだったので入れたいと思っていたのですが、MSFlexGridを利用しなくても下記のようなことが出来るのでしょうか?
かってにやってくれているわけではないと思いますよ。
各イベントを取得し、そのときに処理を組み込んでいるのだと思います。

・MSFlexGridのようなレイアウト
ExcelのCellってMSFlexGridみたいなレイアウトじゃないですか?

・スクロール
上記参照

・行選択
Cellの行選択イベントを使用でなんとか・・・
    • good
    • 0
この回答へのお礼

>Excelなので画面に表示できないほどのデータ(50行くらいでしょうか)をセットすれば自動的にスクロールバーは表示されるのでそれでOKかと思います。
Gridを上から3つ並べるレイアウトにしようとしていました。
10行を3つ表示するイメージです。

行選択はできそうですが、レイアウトが難しそうです。

お礼日時:2008/09/29 21:28

VBランタイムをインストールしてもフォームやシート上でMSFlexGridを使った開発はできません


開発用のライセンスが必要になります

コントロールの本体のOCXファイルをどこかからもらっても開発では使えないということです

この使用可能と開発可能を混同しないようにしましょう

UserFormでの使用を考えていらっしゃるのでしょうか?
ListBoxの複数カラムではだめなのでしょうか
どの道 MSFlexGridではセルの編集はできませんし …

この回答への補足

>UserFormでの使用を考えていらっしゃるのでしょうか?
UserFormとコントロールは別物でしょうか?
一応コントロールボックスのGridを使用しようとしていました。

ListBoxの複数カラムを本日試してみました。
Gridのように縦横の線を入れたいのと、列見出しを作りたかったのですがうまくいきませんでした。

調べてみたのですが線を入れる方法は分からず。
(せめて横線は入れたい)
列見出しを入れたかったので、
ListBox1.RowSourceを使用しようとしたのですが
「オブジェクトはこのプロパティまたはメソッドをサポートしていません」とエラーが出てしまいました。
ListBoxでそのようなことは可能なのでしょうか?

補足日時:2008/09/29 21:28
    • good
    • 0

ListBoxにRowSourceが無いとなるとシート上にコントロールを貼り付けた場合だと思いますが …



UserForm上で使う場合とシート上で使う場合で若干プロパティの扱いが変わるようです

ListBoxに列見出しなどはつけられないのでLabelコントロールなどを別途貼り付けて使用といった方向になりそうです
セルの枠線は無理なようです
… 無理やりやるなら ListBox1.List( r,c ) = "aaa |"などといった方法でしょう
    • good
    • 1

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と同様です。
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています