• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2次元配列について)

VB6.0で2次元配列を定義する方法とは?

このQ&Aのポイント
  • VB6.0で2次元配列を定義する方法についてお教えください。
  • COBOLの定義をVB6.0に変換する際の具体的な記述方法を教えてください。
  • VB6.0での2次元配列の処理方法について詳しく教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kachimi
  • ベストアンサー率40% (12/30)
回答No.2

私はCOBOLはあまり分かりませんが、質問内の定義をされたのでしたら 参照方法 a = TBLArray(i, j).TBL_TEXT 設定方法 TBLArray(i, j).TBL_TEXT = b です。 また、上記はWithを使うと次のようになります。 With TBLArray(i, j) a = TBL_TEXT .TBL_TEXT = b End With

-cinq-
質問者

お礼

早速の回答ありがとうございました。 上記の記述で解決することが出来ました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • laputart
  • ベストアンサー率34% (288/843)
回答No.1

例 Public関数の定義 Public A(16) as String Public C(6,16), D(9,19) as Integer Public ABCDE, ZZZZZ(20),YYYYY as Long Public DDDDD as Double Public Testing as Single などです。

-cinq-
質問者

お礼

早速の回答ありがとうございました。 今後の参考にさせて頂きます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB6で、一次元配列と二次元配列の相互コピー

    VB6で、一次元配列と二次元配列の相互コピーをしたいです。 (1)元々下記のような宣言をもつ配列がありました。 Public Type TKey no As String id As String code As String atr() As String End Type Public Type tr Key As TKey atr() As String abc As Boolean End Type Public gtr() As tr (2)コピー用に、下記のような二次元配列用宣言をつくりました。 Public Type TKey2 2no As String 2id As String 2code As String a2tr() As String End Type Public Type 2tr Key22 As TKey2 atr22() As String abc22 As Boolean End Type Public g2tr() As 2tr (3)  (1)から(2)にデータを複製したり、 (4)  (2)から(1)にデータを複製したいです。 今は、下記のように面倒くさいことをしています。 dim gtr(maxcnt) ReDim Preserve g2tr(500, maxcnt) ループ g2tr(cnt, i).Key22.2code = gtr(i).Key.code ・・・(3) gtr(i).Key.code = g2tr(j, i).Key22.2code ・・・(4)       今は上記を全ての宣言の配列に実行しています。 なにかもっと効率のよい方法はないでしょうか。 (1)の配列は、1~500くらいはあり、不定です。

  • 構造体配列

    こんにちわ。VB.NET初心者です。伝授お願いします。 VB6では Type Tpn_Index IdxSu As Integer idx(MAXTPN-1) As Integer End Type と定義できますが、VB.netでは構造体の中の配列部分が定義できません。 どのように書けばよろしいでしょうか? Public Structure Tpn_Index Dim IdxSu As Integer Dim idx() As Integer End Structure 上記の Dim idx() As Integer の部分です 宜しくお願いします

  • 要素数未定の2次元配列について

    【開発環境】VB6_SP5  OS:WinXP 非常に困っています。どうかご教示お願い致します。 コマンドボタンを押す度に、そのフォームのデータ(Text(n).Text)を 2次元配列に格納したいのですが、コマンドボタンを押す度にReDimを 通過するため、前に格納したデーター「配列名(0,0)等」が消えてしまいます。 Publicで使える様に配列HairetsuA~Cについて、何かよい知恵はありませんか? Option Explicit Public Const YousoMax = 10 Public HairetsuA() As String Public HairetsuB() As String Public HairetsuC() As String Public YousoA as Integer -------------------------------------------------- Private Sub Command1_Click() Dim YousoB As Integer ReDim HairetsuA(YousoA, YousoB) As String ReDim HairetsuB(YousoA, YousoB) As String ReDim HairetsuC(YousoA, YousoB) As String    For YousoB = 0 To YousoMax       If Form1.Text1.Text <> "" Then          ReDim Preserve HairetsuA(YousoA, YousoB) As String          ReDim Preserve HairetsuB(YousoA, YousoB) As String          ReDim Preserve HairetsuC(YousoA, YousoB) As String          HairetsuA(YousoA, YousoB) = Form1.Text1.Text          HairetsuB(YousoA, YousoB) = Form1.Text2.Text          HairetsuC(YousoA, YousoB) = Form1.Text3.Text       Else          Exit For       End If    Next    YousoA = YousoA + 1 End Sub 分かり難い説明ですが、HairetsuAだけを取って言葉で説明しますと コマンドボタンを押す度に HairetsuA(0,0)にはアイウエオ HairetsuA(0,1)にはカキクケコ HairetsuA(0,2)にはサシスセソ    ・    ・    ・ HairetsuA(0,n)にはラリルレロ (コマンドボタンを押す) (HairetsuA(0,0)~HairetsuA(0,n)のデータは維持したままで) HairetsuA(1,0)にはABCDE HairetsuA(1,1)にはFGHIJ HairetsuA(1,2)にはKLMNO    ・    ・    ・ HairetsuA(1,n)にはVWXYZ    ・ (途中幾度かコマンドボタンを押下) (HairetsuA(0,0)~HairetsuA(n-1,n-1)のデータは維持したままで)    ・ HairetsuA(n,n)にはチリヌルオ どうか良いお知恵をください。 どうぞ宜しくお願い致します。

  • VBのString型の配列をVCで受け取るには?

    VBでString型の配列として定義されている変数を VCのプログラムで受け取るにはどうすればよいのでしょうか? 試しにVBでString型の配列を作って DLLのC_TESTというファンクションを呼び出すという 処理を作ってみたのですが、コンパイルエラーになってしまいます。 なにかおかしいところありますか? そもそもVCにはString型ってないんですよね? プログラミング初心者ですので、変な言葉遣いに なってるかもしれませんが宜しくお願いします。 VB Declare Function C_TEST Lib "\test.dll" (ByVal data() As String) As Integer Dim A(1) As String dim rtn as Integer A(0)="あああ" A(1)="いいい" rtn= C_TEST(A) VCのプログラム int _stdcall C_TEST(LPSTR A[2] ){ AfxMessageBox( A[0] ); return(0); }

  • オブジェクト名を変数で参照できますか

    VB初心者です。 配列の場合 Dim str(10) as string と宣言し、i番目のデータを取り出したいときには、str(i) と記述すると思います。 そこで質問ですが、例えばCommandが1~10まであるとします。 オブジェクト名はそのまま(Command1, Command2)で、それぞれのCaptionに違ったデータが入っています。 (例えば、Command1のCaptionには'A' Command2のCaptionには'B'といった感じに) ある文字列があり、For文を使い、CommandのCaptionとその文字列が一致したときに文字列を出力するという処理を行いたいとき、どのように Command1~10のCaptionを回せばいいのでしょうか? コードを記述しておきます。 Dim str(10) as String Dim i as Integer Dim j as Integer for i = 0 to 10 for j = 0 to 10 ☆☆ if Command(i).Caption = str(j) then print.str(j) end if next next ☆☆のところです。 可能であれば回答をお待ちしております。 環境は windows XP, VB6.0 です。

  • VB6のTYPE文をVB.NETのStructureに変えるとき

    VB6のTYPE文をVB.NETのStructureに変えるとき 下記VB6のコードをVB.NETのStructureに変える場合 Type kouzou1 i As Integer j As Integer a As String * 20 b As String * 50 End Type を下記にしてみたのですが *20,*50のところは、どのように表現するのでしょうか。 Structure kouzou1 Dim i As Integer Dim j As Integer Dim a As String * 20 <- ステートメントの終わりを示してくださいのエラーになる。 Dim b As String * 50 <- ステートメントの終わりを示してくださいのエラーになる。 End Structure お教え下さい。

  • 関数の引数に複数のユーザ定義型変数を使いたい

    一つの関数の一つのパラメータが異なるユーザ定義型を受けられるようにしたいのですが、どのようにすればいいのでしょうか? Public Type TypeA strCodeA As String intNumA As Integer End Type Public Type TypeB strCodeB As String intNumB As Integer End Type Public Function funcTest(arg1 As Variant) As Integer (略) End Function と記述して関数を Dim datA As TypeA iResult = funcTest(datA) と呼び出そうとすると、次のようなエラーメッセージが表示されて進みません。 コンパイルエラー: パブリックオブジェクトモジュールで定義されたユーザー定義型に限り、変数に割り当てることができ、実行時バインディングの関数に渡すことができます。

  • ランダムアクセスファイルの扱い方

    VB2005です。(以前はVB6で開発していました。) 文字列(VB6で 「test as string * 5」 などとしていたもの)を任意のレコードに保存、読込、変更などをしようとしています。 VB6ではうまくできたものが、VB2005になったとたん、まったくVB6での知識が通用せず困っています。ヘルプを読んでみたものの「2 バイトの記述子」やらなんやらとわけのわからないことばかりで、行き詰まりました。 VB6で type test test1 as string * 5 test2 as string * 5 test3 as string *5 end type と定義していたものを、VB2005でレコード番号を指定して書込、読込などをするにはどのようにすればよいでしょうか。

  • dimを使わずにredimを使う場合

    VBAを使っていて、 配列数を変数で定義したいのですが、 ネットで検索すると Dim aaaa() as integer Redim aaa(xxx, yyy) あるいは Dim aaaa() Redim aaa(xxx, yyy) as integer のようにdimで変数を定義した後にredimで定義しなおす方法が書かれてあります。 一方で、 Redim aaa(xxx, yyy) as integer のように、dimの定義を省略して、いきなりredimで配列を定義しても 問題なくプログラムは実行できることに気がついたのですが これら二つの方法に違いはあるのでしょうか? 後者を使っても問題ないでしょうか?

  • バイト配列の構造体変換について

    TCPの通信アプリケーションをて作成しています。 Recvbuff(1024) as byte と定義した変数に受信したデータを格納し以下のような構造体に格納 したいのです。 構造体A id as integer Usercode as string Username as string Filename as string このとき、共用体のような使いかたはVBではできないようなので すが、このような場合 整数なら「Recvbuff(1) * 256 + Recvbuff(0)」のように計算する。  文字列なら必要な文字のみ切り取ってGetStringで変換する。 といった方法しかないのでしょうか。 環境は VS2008 VB.NET です。