VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 グリッド(MSFlexGrid)関係のメニュー
1.MSFlexGrid の主要プロパティ・メソッド一覧表
2.MSFlexGrid ワンポイントテクニック集(その1)
3.MSFlexGrid ワンポイントテクニック集(その2)
4.MSFlexGrid で Excel のようにセルに直接データを入力する
5.MSFlexGrid/MSHFlexGridへのデータ表示設定色々
6.MSFlexGrid/MSHFlexGrid の表示データをファイルに保存方法色々
7.MSFlexGrid/MSHFlexGrid で項目(科目)別集計をする
8.MSFlexGrid/MSHFlexGrid でコピー・アンド・ペースト色々
9.MSFlexGrid/MSHFlexGrid で列幅設定/行の高さ設定色々
10.MSFlexGrid/MSHFlexGrid にチェックボックスを表示する及び操作色々
11.MSFlexGrid/MSHFlexGrid に表示中のデータを罫線付きで印刷する
12.
13.
14.
15.
16.
17.
18.
19.
20.その他、MSFlexGrid 関係で当サイト内に掲載しているサンプルの紹介


1.MSFlexGrid の主要プロパティ・メソッド一覧表
1.MSFlexGrid の主要プロパティ・メソッド一覧表
2.Microsoft FlexGrid コントロール と Hierarchical FlexGrid コントロールでの相違部分
3.Microsoft のサイトに掲載されていた MSFlexGrid に関するQ&A
4. 
5. 
6. 

主に、フレキシブルグリッド (MSFlexGrid) コントロールについて書いておりますが、階層フレキシブルグリッド (MSHFlexGrid) コントロールの場合は、MSHFlexGrid に置き換えてご覧ください。又、VB6.0 をご使用の場合は、MSHFlexGrid の方をご使用下さい。(扱えるデータ件数に制限がなく処理速度が格段に早い)
 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6)
Option :[Option Explicit]
参照設定:追加なし
使用 API:
なし
その他 :
    :
このページのトップへ移動します。 1.MSFlexGrid の主要プロパティ・メソッド一覧表
MSFlexGridのプロパティって数が多く見慣れない名前の物が多いせいか、便利な機能なのに案外知られていない物があります。
独自の解釈による分類をしておりますので検討をつけて探して下さい。詳しくはヘルプを見て下さい。
  色に関するプロパティ・メソッド  
BackColor すべての非固定型のセルの色を設定します。 MSFlexGrid1.BackColor = QBColor(14)
BackColorBkg グリッドのバックグラウンドの背景色(セル以外の部分)を設定します。 MSFlexGrid1.BackColorBkg = QBColor(12)
BackColorFixed 固定のセルの背景色を設定します。 MSFlexGrid1.BackColorFixed = QBColor(9)
BackColorSel カレントセルの背景色を設定します。但し、FocusRect =flexFocusNoneの時に有効 MSFlexGrid1.BackColorSel = QBColor(10)
CellBackColor 個々のセルまたは特定範囲のセルの背景色を設定・取得します MSFlexGrid1.CellBackColor = QBColor(12)
CellForeColor 個々のセルまたは特定範囲のセルの前景色を設定・取得します。 MSFlexGrid1.CellForeColor = QBColor(12)
ForeColor コントロールの非固定セルのテキストの色を設定・取得します。 MSFlexGrid1.ForeColor = QBColor(12)
ForeColorFixed コントロールの固定セルの文字色を設定・取得します。 MSFlexGrid1.ForeColorFixed = QBColor(12)
ForeColorSel コントロールの選択されている部分の文字色を設定・取得します。 MSFlexGrid1.ForeColorSel = QBColor(12)
GridColor コントロールの非固定セルのグリッド線の色を設定・取得します。 MSFlexGrid1.GridColor = QBColor(12)
GridColorFixed コントロールの固定セルのグリッド線(右と下側の外枠)の色を設定・取得します。 MSFlexGrid1.GridColorFixed = QBColor(12)
  行・列に関するプロパティ・メソッド  
AddItem 1行挿入する。1行分のデータを一括で書き込む事ができます。 MSFlexGrid1.AddItem "", MSFlexGrid1.Row
AllowBigSelection 列見出しまたは行見出しをクリックすると、その列または行全体が選択されるようにするかどうかを設定します。値の取得も可能です。 MSFlexGrid1.AllowBigSelection =True
AllowUserResizing ユーザーがマウスを使って、行および列のサイズを変更できるかどうかを決定する値を設定します。値の取得も可能です。 MSFlexGrid1.AllowUserResizing =True
CellAlignment カレントセル内でのデータの水平配置および垂直配置を決定する値を設定・取得します。 MSFlexGrid1.CellAlignment = flexAlignRightBottom
CellPicture カレントセルまたはセルの範囲に表示されるイメージを設定・取得します Set MSFlexGrid1.CellPicture = LoadPicture("c:\Face.ico")
Clear メソッド コントロールの内容をクリアします。すべてのテキスト、ピクチャーおよびセルの書式もクリアします。このメソッドは、行および列の総数には影響しません。
MSFlexGrid1.Clear
Col アクティブセル(列)の座標を設定・取得します。 MSFlexGrid1.Col = 3    CurrentCol=MSFlexGrid1.Col
ColData 列を識別するユーザー定義番号を設定・取得します ヘルプ参照
Cols コントロール内の列の総数を設定・取得します MSFlexGrid1.Cols = 5  MyCols = MSFlexGrid1.Cols
ColSel セルの範囲の先頭列と最終列を設定します。値の取得も可能です MyColSel = MSFlexGrid1.ColSel
ColWidth 指定のバンド内の列の幅をtwip 単位で設定・取得します。
ColWidth はdefault のままなら、 ColWidth = -1 を返します。
MSFlexGrid1.ColWidth(1) = 1500 '指定列の場合
MSFlexGrid1.ColWidth(-1) = 1500 '全ての列の場合
FixedCols コントロール内の固定型の列の総数を設定・取得します。 MSFlexGrid1.FixedCols = 2
FixedRows コントロール内の固定型の行の総数を設定・取得します。 MSFlexGrid1.FixedRows = 2
MergeCells 複数の行または列の範囲で、同じ内容のセルを単一のセルにグループ化するかどうかを指定する値を設定します。値の取得も可能です。 MSFlexGrid1.MergeCells = flexMergeFree
MergeCol 内容をマージできる列を指定する値を設定します。 MSFlexGrid1.MergeCol(3) = True
MSFlexGrid1.MergeCells = flexMergeFree
MergeRow 内容をマージできる行を指定する値を設定します。 MSFlexGrid1.MergeRow(3) = True
MSFlexGrid1.MergeCells = flexMergeFree
MouseCol 現在のマウスポインターの位置の列番号を返します(ヘルプの解説は要注意 設定は出来ません) myMouseCol = MSFlexGrid1.MouseCol
MouseRow 現在のマウスポインターの位置の行番号を返します myMouseRow = MSFlexGrid1.MouseRow
RemoveItem 指定された行全体を削除します。 MSHFlexGrid1.RemoveItem i
Row アクティブセル(行)の座標を設定・取得します。 MSFlexGrid1.Row = 3   CurrentRow=MSFlexGrid1.Row
RowData 行を識別するユーザー定義番号を設定・取得します ヘルプ参照
RowHeight 指定された行の高さをtwip 単位で設定・取得します。 MSFlexGrid1.RowHeight(2) = 350  '指定行
MSFlexGrid1.RowHeight(-1) = 350  '全行に対して
RowHeightMin コントロール全体で最も低い行の高さをtwip 単位で設定します。値の取得も可能です。 MSFlexGrid1.RowHeightMin = 400
Rows コントロール内の行の総数を設定・取得します MSFlexGrid1.Rows = 8 MyRows = MSFlexGrid1.Rows
RowSel セルの範囲の先頭行と最終行を設定します。値の取得も可能です。 MSFlexGrid1.RowSel = 2 MSFlexGrid1.ColSel = 4
SelectionMode 行単位または列単位の範囲指定を可能にするかどうか指定する値を設定します MSFlexGrid1.SelectionMode = flexSelectionByRow
  外観に関するプロパティ・メソッド  
Appearance 実行時にコントロールが立体的に表示されるかどうかを設定します。 MSFlexGrid1.Appearance = flex3D
ScrollTrack コントロールが内容をスクロールするかどうかを決定する値を設定します。 MSFlexGrid1.ScrollTrack = True
  図形・線等に関するプロパティ・メソッド  
CellPictureAlignment カレントセルまたは選択されたセルの範囲内のピクチャーの配置を設定・取得します MSFlexGrid1.CellPictureAlignment = flexAlignCenterCenter
FocusRect コントロールがカレントセルにフォーカスを示す四角形を描くかどうかを指定する値を設定します。値の取得も可能です。 MSFlexGrid1.FocusRect = flexFocusNone
MSFlexGrid1.HighLight = flexHighlightAlways
HighLight コントロール内で選択されたセルを強調表示するかどうかを指定する値を設定します。 MSFlexGrid1.HighLight = flexHighlightNever
GridLines 非固定セルのグリッド線のスタイルを設定・取得します。 MSFlexGrid1.GridLines = flexGridNone
GridLinesFixed 固定セルのグリッド線のスタイルを設定・取得します。 MSFlexGrid1.GridLinesFixed = flexGridNone
GridLineWidth 非固定セルのグリッド線の幅をピクセル単位で設定・取得します。
固定セルのグリッド線の幅にも影響します。
MSFlexGrid1.GridLineWidth = 3
GridLineWidthFixed 固定セルのグリッド線の幅をピクセル単位で設定・取得します。
こちらは、非固定セルのグリッド線の幅に影響をあたえません。
MSFlexGrid1.GridLineWidthFixed = 3
  テキストに関するプロパティ・メソッド  
ColAlignment 列内のデータの配置を設定・取得します。 MSFlexGrid1.ColAlignment(3) = flexAlignCenterCenter
FixedAlignment 固定列テキストに表示するデータの配置を設定・取得します MSFlexGrid1.FixedAlignment(3) = flexAlignCenterCenter
TextStyle 非固定セルのテキストの3D表示を設定・取得します。 MSFlexGrid1.TextStyle = flexTextRaised
TextStyleFixed 固定セルのテキストの3D表示を設定・取得します。 MSFlexGrid1.TextStyleFixed = flexTextRaised
WordWrap テキストのワードラップ(折り返し機能)を設定・取得します MSFlexGrid1.WordWrap = True
  フォントに関するプロパティ・メソッド  
CellFontBold カレントセルのフォントを太字に設定・取得します MSFlexGrid1.CellFontBold = True
CellFontItalic カレントセルのフォントを斜体に設定・取得します MSFlexGrid1.CellFontItalic = True
CellFontName カレントセルのテキストを特定のフォントに設定します。 MSFlexGrid1.CellFontName = "MS 明朝"
CellFontSize カレントセルのフォントサイズをポイント単位で設定・取得します MSFlexGrid1.CellFontSize = 12
CellFontStrikeThrough カレントセルのフォントに取り消し線のスタイルを設定・取得します MSFlexGrid1.CellFontStrikeThrough = True
CellFontUnderline カレントセルのフォントにアンダーラインを設定・取得します MSFlexGrid1.CellFontUnderline = True
CellFontWidth カレントセルのテキストの幅をポイント単位で設定・取得します。
横倍角文字を作成できる
MSFlexGrid1.CellFontWidth = 18
CellTextStyle 特定のセルまたはセルの範囲にあるテキストに立体表示のテキストを設定・取得します MSFlexGrid1.CellTextStyle = flexTextInset
Font 既定のフォントまたは個々のセルのフォントを設定・取得します。 MSFlexGrid1.Font = "MS 明朝"
FontWidth 表示されるテキストのフォントの幅をポイント単位で設定・取得します。
横倍角文字のようなものが作れる
MSFlexGrid1.FontWidth = 7
  編集に関するプロパティ・メソッド  
CellLeft カレントセルの左端の位置を返します。(ヘルプ不親切) myCellLeft = MSFlexGrid1.CellLeft
CellTop カレントセルの上端の位置を返します。(ヘルプ不親切) myCellTop = MSFlexGrid1.CellTop
CellWidth カレントセルの幅を返します。(ヘルプ不親切) myCellWidth = MSFlexGrid1.CellWidth
CellHeight カレントセルの高さを返します。(ヘルプ不親切) myCellHeight = MSFlexGrid1.CellHeight
Clip 選択された領域内のセルの値を設定します。値の取得も可能です
※ 値の設定は早いが、取得は遅い(範囲が少ないなら問題ないが)
myStr = "James" + Chr(9) + "Nancy" + Chr(9) + "Lisa"
MSFlexGrid1.Clip = myStr
ColIsVisible 指定された列が現在表示されているかどうかを示す値を返します myColIsVisible = MSFlexGrid1.ColIsVisible(2)
ColPos コントロールの左上隅から指定された列の左上隅までの距離を示す値をtwip 単位で返します。 myColPos = MSFlexGrid1.ColPos(2)
ColPosition() 列の位置を設定します。列を特定の位置に移動できます MSFlexGrid1.ColPosition(3) = 5
FillStyle コントロールのセルの書式設定をするプロパティの 1 つが変更されたとき、その変更を選択されたすべてのセルに適用するかどうかを指定する値を設定します。値の取得も可能です。 MSFlexGrid1.FillStyle = flexFillRepeat
FormatString 列の幅、配置、固定型の行のテキスト、および固定型の列のテキストを設定します。
s$ = "|氏名|住所|電話番号|保険証番号"
s$ = s$ + ";|佐藤|田中|山田|鈴木"
MSHFlexGrid.FormatString = s$
LeftCol コントロールの左端に表示する非固定型の列を設定・取得します。(列をスクロールする時に一番左端に表示したい列番号) MSFlexGrid1.LeftCol = 5 ’スクロール時の先頭列
Picture Pictureコントロール等へMSFlexGrid1のスナップショットを送ります Set Picture1.Picture = MSFlexGrid1.Picture
Redraw コントロールで変更が行われた後、自動的に再描画するかどうかを指定する値を設定します。書き込み時の再描画を抑制して表示速度を早くするような場合にも使用します。 MSFlexGrid1.Redraw = True
RowIsVisible 指定の行が現在画面に表示されているかどうかを返します myRowIsVisible = MSFlexGrid1.RowIsVisible(3)
RowPos コントロールの左上隅から指定の行の左上隅までの距離をtwip 単位で返します。 myRowPos = MSFlexGrid1.RowPos(5)
RowPosition 行の位置を設定します。行を特定の位置に移動できます MSFlexGrid1.RowPosition(3) = 5
Sort 選択された基準に従って選択行を並べ替える値を設定します。 MSFlexGrid1.Col = "[ソート対象列]"
MSFlexGrid1.Sort = flexSortGenericAscending
Text セルのテキスト内容を設定・取得します MSFlexGrid1.Text = "あいう"
TextArray 関数を定義することにより、cellindex の計算方法を示します。 MSFlexGrid1.TextArray(faIndex(i, 1)) = "詳しくはヘルプ参照"
TextMatrix 任意のセルのテキストを設定します。値の取得も可能です。セルへの読み書きはこちらの方が高速に処理されます。 MSFlexGrid1.TextMatrix(5, 4) = "1234"
TopRow コントロールの先頭に表示される非固定型の行を設定・取得します。(行をスクロールする時に一番上に表示したい行番号) MSFlexGrid1.TopRow = 7 ’スクロール時の先頭行
  その他のプロパティ・メソッド  
DataSource 連結するデータソースを設定・取得します。 Set Text1.DataSource = ADODC1
PictureType Picture プロパティによって生成されるピクチャーの種類(カラーか白黒かを)を設定します。 MSFlexGrid1.PictureType = flexPictureColor
Version MSHFlexGridコントロールのバージョン番号を返します Debug.Print MSFlexGrid1.Version



このページのトップへ移動します。 2.Microsoft FlexGrid コントロール と Hierarchical FlexGrid コントロールでの相違部分


   Microsoft FlexGrid コントロール と Hierarchical FlexGrid コントロールでの相違部分  
項   目 FlexGrid コントロール Hierarchical FlexGrid コントロール
固定列セルのデータの配置 FixedAlignment プロパティ
(例)
3 列目の固定セルをセンターリング
MSFlexGrid1.FixedAlignment(2) = 4
廃止されました。
ColAlignmentFixed プロパティで代用
(例)
3 列目の固定セルをセンターリング
MSHFlexGrid1. ColAlignmentFixed(2) = 4
ColWidth プロパティの既定値 実際のセルの幅を示す値が入ります。フォントの大きさなどによって変化します。 既定値を意味する -1 が入ります。フォントの大きさなどに影響されません。
扱えるセルの総数
列数×行数の総数が、350,000 セル以内です。 扱えるセルの総数に制限はありません。
使用できるVBのバージョン
VB5.0 / VB6.0 VB6.0
CellBackColor プロパティ
CellForeColor プロパティ
CellBackColor = 0 で、デフォルトのカラー指定となる(ヘルプに記載されている通りに) CellBackColor = 0 で、黒の指定となる(ヘルプの記載と違う)
大量のデータを扱った場合
350,000 セルの制限があり、処理速度が遅い 表示できる件数に制限がなく、処理速度が早い



このページのトップへ移動します。 3.Microsoft のサイトに掲載されていた MSFlexGrid に関するQ&A

(Q) 大量のデータを表示するときに動作が遅くなりますが、改善する方法はありますか。
(A) Microsoft FlexGrid コントロールの動作が遅い主な原因は、頻繁に発生する描画処理が原因です。
  Microsoft FlexGrid コントロールは、表示属性を決定するプロパティが多く、セルに対して行う操作の多くは
  再描画処理を伴います。
  この再描画処理を最低限の回数に抑止するため、大量のデータを一括して処理するような場合は、あらかじめ
  Redraw プロパティを False に設定し、一連の処理が終わったときに True に戻すようにします。

(Q) 範囲選択したとき、その部分の左上隅のセルだけバックカラーが白いままになります。
  他の部分と同じ色にすることができますか。
(A) FocusRect プロパティを 0 (flexFocusNone) に設定します。デザイン時は、プロパティウィンドウや
  プロパティページからも設定が行えます。

(Q) 選択した範囲のテキストを一度に消去することはできますか。
(A) セルの書式設定を行うプロパティの変更を選択されたすべてのセルに適用するかどうかを決定する
  FillStyle プロパティがあります。
  次のコードを実行すると、選択範囲のテキストを一度に消去できます。選択範囲の色やフォントの変更などの処理も
  同じ方法で行うことができます。
  ' グリッド上であらかじめ範囲選択をしておきます
  MSFlexGrid1.FillStyle = flexFillRepeat
  MSFlexGrid1.Text = ""

(Q) TopRow プロパティや LeftCol プロパティを指定してスクロールさせようとしているのですが、スクロールしません。
(A) スクロールする方向のスクロールバーが表示されていないときは、スクロールしません。
  ScrollBars プロパティでスクロールする方向のスクロールバーを表示するように設定する必要があります。

(Q) スクロールバーを動かしている最中に、グリッドの内容もいっしょにスクロールして動くようにしたい。
(A) ScrollTrack プロパティを True にします。ただし、スクロール中に画面がちらつく場合があります。

(Q) 特定の行や列を非表示にしたい。
(A) 行の場合は RowHeight プロパティを、列の場合は ColWidth プロパティを 0 に指定します。-1 を指定すると、
  既定の高さ、幅に戻ります。
  ' 3 列目を非表示にします
  MSFlexGrid1.ColWidth(2) = 0
  ‘ 6 行目を非表示にします
  MSFlexGrid1.RowHeight(5) = 0

(Q) Col プロパティや Row プロパティを、画面に表示されていない領域のセルに指定したとき、そのセルを自動的に
  スクロールして表示するようにしたい。
(A) 本来の処理とは関係ありませんが、CellHeight や CellTop などのプロパティを取得します。
  これにより、グリッドはカレントセルに対して何らかの操作が行われるものとみなし、カレントセルを自動的に表示します。
  ' 10 列分しか表示されていない場合でも、
  ' スクロールして 21 列目を自動的に表示します
  MSFlexGrid1.Col = 20
  wk = MSFlexGrid1.CellHeight

このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
フレキシブルグリッド (MSFlexGrid) コントロールリファレンス MSFlexGrid1行サンプル MSFlexGrid1行Tips  MSFlexGrid ワンポイントサンプル
階層フレキシブルグリッド (MSHFlexGrid) コントロール



このページのトップへ移動します。