■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
|
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った): |
■ ページの共有: |
[ サイト内検索 ]
![]()
カスタム検索
|
#14180-0二次元配列の型yuki2000-01-24(月) 11:26
#14183-0RE#14180:二次元配列の型U-Root-Y2000-01-24(月) 11:44
#14182-0RE#14180:二次元配列の型かずやん2000-01-24(月) 11:44
#14185-0RE#14180:二次元配列の型ゆう(U)2000-01-24(月) 11:57
#14186-0RE#14182:二次元配列の型yuki2000-01-24(月) 11:58
#14183-0RE#14180:二次元配列の型U-Root-Y2000-01-24(月) 11:44
#14182-0RE#14180:二次元配列の型かずやん2000-01-24(月) 11:44
#14185-0RE#14180:二次元配列の型ゆう(U)2000-01-24(月) 11:57
#14186-0RE#14182:二次元配列の型yuki2000-01-24(月) 11:58
yuki2000-01-24(月) 11:26
二次元配列の型の指定についてお聞きしたいことがあります。 Option Explicit Private Sub Command1_Click() Dim P(-2 To 7, -2 To 7), B(-2 To 7, -2 To 7), C(-2 To 7, -2 To 7), PHA(-2 To 7, -2 To 7), X, Y, K As Single For X = 0 To 5 For Y = 0 To 5 P(X, Y) = Text(K).Text Select Case Y Case 0 K = X Case 1 K = X + 6 Case 2 K = X + 12 Case 3 K = X + 18 Case 4 K = X + 24 Case 5 K = X + 30 End Select Next Y Next X For X = 0 To 5 For Y = 0 To 5 Select Case Y Case 0 K = X Case 1 K = X + 6 Case 2 K = X + 12 Case 3 K = X + 18 Case 4 K = X + 24 Case 5 K = X + 30 End Select PHA(X, Y) = PHA(X, Y) + (P(X, Y - 1) + P(X - 1, Y) + P(X + 1, Y) + P(X, Y + 1) + B(X, Y) + C(X, Y - 1) - B(X - 1, Y) - C(X, Y)) / 4 Select Case X Case 0 PHA(X, Y) = 0 Case 5 PHA(X, Y) = 0 End Select Select Case Y Case 0 PHA(X, Y) = 0 Case 5 PHA(X, Y) = 0 End Select Text(K).Text = PHA(X, Y) Next Y Next X End Sub -------------------------------------- B(0, 0) からB(5, 5)、C(0, 0)からC(5, 5)の値は与えてあります。 テキストボックスが、6×6の36個あって、 Dim P(-2 To 7, -2 To 7), B(-2 To 7, -2 To 7), C(-2 To 7, -2 To 7), PHA(-2 To 7, -2 To 7)では、配列に余裕を持たせてます。 まず、Text(K).Text に入っている数値をP(X, Y)に入れて、 PHA(X, Y) = PHA(X, Y) + (P(X, Y - 1) + P(X - 1, Y) + ・・・・)/4 で計算させて、その値をまたText(K).Text に戻して、これを何回も繰り返す というものです。 このままだと ●PHA(X, Y) = PHA(X, Y) + (P(X, Y - 1) + P(X - 1, Y) + P(X + 1, Y) + P(X, Y + 1) + B(X, Y) + C(X, Y - 1) - B(X - 1, Y) - C(X, Y)) / 4 ここの部分で型が一致しないとのエラーがでます。 最初に指定しているつもりでいるのですが、この二次元配列の数値計算だと、他にどこかに 型を指定でもしないといけないのですか? どなたかよろしくお願いします。
U-Root-Y2000-01-24(月) 11:44
> 二次元配列の型の指定についてお聞きしたいことがあります。 「二次元配列」の問題ではないですね。 > Dim P(-2 To 7, -2 To 7), B(-2 To 7, -2 To 7), C(-2 To 7, -2 To 7), > PHA(-2 To 7, -2 To 7), X, Y, K As Single > 最初に指定しているつもりでいるのですが、この二次元配列の数値計算だと、他にどこかに > 型を指定でもしないといけないのですか? 『「こんな失敗しました \(T−T)」』掲示板を読んで、ヘルプで確認してみてください。
かずやん2000-01-24(月) 11:44
> Dim P(-2 To 7, -2 To 7), B(-2 To 7, -2 To 7), C(-2 To 7, -2 To 7), > PHA(-2 To 7, -2 To 7), X, Y, K As Single Kの他はVariant型になってますよん。 いちいち As Single つけてみてね < イラつかないように(^^;)
ゆう(U)2000-01-24(月) 11:57
> Private Sub Command1_Click() > Dim P(-2 To 7, -2 To 7), B(-2 To 7, -2 To 7), C(-2 To 7, -2 To 7), > PHA(-2 To 7, -2 To 7), X, Y, K As Single まず・・・ 「Dim ステートメント」のヘルプを読んで下さい。 「,」で続けて行く場合、それぞれのデータ型(As ????)を指定されない変数は 全てバリアント型になります。 ※TypeDefの記述等が無ければ・・・ ※配列の場合でも同じです。 > For X = 0 To 5 > For Y = 0 To 5 > > P(X, Y) = Text(K).Text Text(K)の参照をKの値を設定する前に行って良いのですか? ※ちなみにコントロール名「Text」は止めた方が良いのでは? > Select Case Y > Case 0 > K = X > Case 1 > K = X + 6 > : > End Select この「+??」の部分は「Yに何かを掛けた値」になりませんか? > ここの部分で型が一致しないとのエラーがでます。 とりあえず、先の部分の修正を行って見て下さい。 エラーが発生する直前に設定されている値を Debug.Print P(X, Y) などと、表示して値を確認したり・・・ ブレークポイントを設定し、中止して変数の値をチェック するとか・・・ ●MSDNライブラリやBooksOnlineでデバックの項を参照してみては・・・
yuki2000-01-24(月) 11:58
> > Dim P(-2 To 7, -2 To 7), B(-2 To 7, -2 To 7), C(-2 To 7, -2 To 7), > > PHA(-2 To 7, -2 To 7), X, Y, K As Single > > Kの他はVariant型になってますよん。 > いちいち As Single つけてみてね < イラつかないように(^^;) ありがとうございました。 初歩的ミス&勘違いで・・・。 うまくいきました。
このページと関連する記事:
#14564-0配列でのデータの読み込み?2000-01-29(土) 15:52#11412-0収束を見るためのプログラム1999-12-10(金) 16:05
#39986-0配列の代入2001-03-08(木) 07:37
#12054-0プログラムの短縮1999-12-20(月) 14:34
#36689-0大変参考になりました。2001-01-11(木) 17:21
#15783-0RE#15772:Variant型の配列変数を引数として使用するには?2000-02-09(水) 13:00
#5187-0フォームに計算結果を簡単なグラフとして表示したい!!2000-01-21(金) 12:02
#296-3VBで構造体をバイナリー保存したいのですが2003-08-07(木) 09:37
#250-1配列宣言について2004-01-16(金) 18:16
#24277-0配列を表示させて、値を修正する方法2001-11-01(木) 12:10