■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#35100-0配列の内容をグリッドに表示する方法灰色狐2000-12-11(月) 16:26
     #35103-0RE#35100:配列の内容をグリッドに表示する方法しのび〜い2000-12-11(月) 16:32
     #35105-0RE#35103:配列の内容をグリッドに表示する方法灰色狐2000-12-11(月) 16:54
     #35117-0RE#35105:配列の内容をグリッドに表示する方法しのび〜い2000-12-11(月) 18:15
     #35119-0RE#35117:配列の内容をグリッドに表示する方法灰色狐2000-12-11(月) 18:24
#35100-0
配列の内容をグリッドに表示する方法
グリッドの、例えば(0,0)に配列の(0,0)の内容を表示させるという処理をさせたいと思っております。
grdMain.Cell(0,0) = 配列名(0,0)という感じの指定の仕方を教えて頂ければ幸いです。

宜しくお願い致します。
#35103-0
RE#35100:配列の内容をグリッドに表示する方法
灰色狐さん、初めまして。しのび〜いと申します。

> グリッドの、例えば(0,0)に配列の(0,0)の内容を表示させるという処理をさせたいと
> 思っております。
> grdMain.Cell(0,0) = 配列名(0,0)という感じの指定の仕方を教えて頂ければ幸いです。

っとのことですが、これは、「グリッドの列と行が指し示す内容と二次元配列のNのM番目の
内容を同じ様に扱いたい」っと言うことでしょうか?

だとすれば、グリッドの最大行数と最大列数で二次元配列を定義し、定義された配列に列と
行が指し示す内容をセットすれば、『grdMain.Cell(0,0) = 配列名(0,0)』っというように
なると思います。
#35105-0
RE#35103:配列の内容をグリッドに表示する方法
> 灰色狐さん、初めまして。しのび〜いと申します。

こちらこそ、初めまして。 
> > グリッドの、例えば(0,0)に配列の(0,0)の内容を表示させるという処理をさせたいと
> > 思っております。
> > grdMain.Cell(0,0) = 配列名(0,0)という感じの指定の仕方を教えて頂ければ幸いです。
> 
> っとのことですが、これは、「グリッドの列と行が指し示す内容と二次元配列のNのM番目の
> 内容を同じ様に扱いたい」っと言うことでしょうか?
> 
> だとすれば、グリッドの最大行数と最大列数で二次元配列を定義し、定義された配列に列と
> 行が指し示す内容をセットすれば、『grdMain.Cell(0,0) = 配列名(0,0)』っというように
> なると思います。

とりあえず、二次元配列のイメージそのままでグリッドに内容を表示させたいと思っております。
つまり二次元配列(0,0)の内容はグリッドの(0,0)に表示させるという感じであります。
教えていただいた方法でやったのですが、「メソッドまたはデータメンバが見つかりません」というエラー
が出てしまいました(汗)。
そのときの構文は以下の通りです。

grdMain.Cell(0, 0) = DataTable(1, 1)

この『Cell』の所をMatrixに変えましたらば、うまく行きました。
・・・が、配列の行列指定とグリッドの行列指定は異なるようですね・・・。
配列は(列、行)なのに対して、グリッドでは(行、列)となっているようです。この辺りが、ヘッポコな私
としては辛い所であります(汗)。
#35117-0
RE#35105:配列の内容をグリッドに表示する方法
> grdMain.Cell(0, 0) = DataTable(1, 1)
> 
> この『Cell』の所をMatrixに変えましたらば、うまく行きました。
> ・・・が、配列の行列指定とグリッドの行列指定は異なるようですね・・・。
> 配列は(列、行)なのに対して、グリッドでは(行、列)となっているようです。
> この辺りが、ヘッポコな私としては辛い所であります(汗)。

私自信、グリッドは、使っていないので(Spread/OCXならよく使ってます)よく
解りませんが、配列の行列してとグリッドの行列指定が異なるのは、Redim、
もしくは、配列宣言時にインデックス番号がずれているからではありませんか?

例えば...

10行5列のグリッドがあるとして、配列定義を以下のようにしてしまうと、
番号が一致しませんよね?

Dim DataTable(10, 5) As String
              ~~~~~~
        │ └ これを列と考える
        └ これを行と考える

この宣言では、0〜10というよう行と0〜5と言う列になってしまいますよね?
本来であれば、1行目の1列目から5行目の10列目を宣言して配列をグリッド
に見立てる必要があるはずです。であるならば...

Dim DataTable(1 To 10, 1 To 5) As String
              ~~~~~~~~~~~~~~~~

上記のような宣言方法であれば、1〜10行と1〜5列の配列定義になるはずです。

また、考え方を変えると、何も二次元配列にこだわる必要がないと思います。
構造体を宣言し、その構造体を配列として考えると解りやすいかもしれませんよ。

Type User_Cols
    Col1    As Integer  '1列目
    Col2    As Integer  '2列目
    Col3    As Integer  '3列目
    Col4    As Integer  '4列目
    Col5    As Integer  '5列目
End Type

'10行の構造体配列を宣言する
Dim DataTable(1 To 10)    As User_Cols

上記のように定義すれば、考え安くなると思います。

(例)1行目の1列目
      DataTable(1).Col1 '←これで1行目の1列目の値をゲットできます。


こんなところでしょうか?解答になっていなかったら、ごめんなさい。
#35119-0
RE#35117:配列の内容をグリッドに表示する方法
> > grdMain.Cell(0, 0) = DataTable(1, 1)
> > 
> > この『Cell』の所をMatrixに変えましたらば、うまく行きました。
> > ・・・が、配列の行列指定とグリッドの行列指定は異なるようですね・・・。
> > 配列は(列、行)なのに対して、グリッドでは(行、列)となっているようです。
> > この辺りが、ヘッポコな私としては辛い所であります(汗)。
> 
> 私自信、グリッドは、使っていないので(Spread/OCXならよく使ってます)よく
> 解りませんが、配列の行列してとグリッドの行列指定が異なるのは、Redim、
> もしくは、配列宣言時にインデックス番号がずれているからではありませんか?
> 
> 例えば...
> 
> 10行5列のグリッドがあるとして、配列定義を以下のようにしてしまうと、
> 番号が一致しませんよね?
> 
> Dim DataTable(10, 5) As String
>               ~~~~~~
>         │ └ これを列と考える
>         └ これを行と考える
> 
> この宣言では、0〜10というよう行と0〜5と言う列になってしまいますよね?
> 本来であれば、1行目の1列目から5行目の10列目を宣言して配列をグリッド
> に見立てる必要があるはずです。であるならば...
> 
> Dim DataTable(1 To 10, 1 To 5) As String
>               ~~~~~~~~~~~~~~~~
> 
> 上記のような宣言方法であれば、1〜10行と1〜5列の配列定義になるはずです。
> 
> また、考え方を変えると、何も二次元配列にこだわる必要がないと思います。
> 構造体を宣言し、その構造体を配列として考えると解りやすいかもしれませんよ。
> 
> Type User_Cols
>     Col1    As Integer  '1列目
>     Col2    As Integer  '2列目
>     Col3    As Integer  '3列目
>     Col4    As Integer  '4列目
>     Col5    As Integer  '5列目
> End Type
> 
> '10行の構造体配列を宣言する
> Dim DataTable(1 To 10)    As User_Cols
> 
> 上記のように定義すれば、考え安くなると思います。
> 
> (例)1行目の1列目
>       DataTable(1).Col1 '←これで1行目の1列目の値をゲットできます。
> 
> 
> こんなところでしょうか?解答になっていなかったら、ごめんなさい。

あー、なるほど。何となく分かったような気が致します(笑)。
私の場合ヘッポコなので、処理のアルゴリズムがまったくといって良いほど分かっていないのであります。
ですから、今回のお話は非常に参考になりました。
今後とも、宜しくお願い致します(笑)。
このページと関連する記事:
#1381-0構造体配列の宣言のしかた1999-09-08(水) 23:49
#2155-0配列2002-05-10(金) 13:20
#28861-0AddItem2002-05-23(木) 00:01
#39401-0固定文字列の代入2001-02-23(金) 15:55
#29361-0RASDIALPARAM 構造体のサイズ(RAS API)2000-09-05(火) 16:52
#11138-0構造体の中身を一括消去したい2000-05-31(水) 15:34
#1479-0スプレッドのコンボボックス2004-03-27(土) 11:53
#11587-0コントロールを2次元配列で使いたいのですが2000-09-20(水) 21:26
#40964-0データグリッドコントロールに表示した位置情報2001-03-29(木) 09:56
#47167-0文字列と構造体2001-09-26(水) 09:44
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)