• ベストアンサー

VB6で変数の配置転換

VB6を使用して、例えば「a(0)~a(7)」までの変数と「b(0)~b(7)」までの変数を宣言している時、a(0)~a(7)には元々数値が入っていて、それをb(0)~b(7)に並びを変えて数値を入れるのに簡単な方法はありますか? 例) a(0)=0 a(1)=1 a(2)=2 ・・・ a(7)=7 b(0)=a(5) b(1)=a(3) b(2)=a(1) ・・・ b(7)=a(2) などに置き換えたい場合です。 bに入れる数値のa()の並びは一定です。 aに入れるの数値は固定データです。 単純に一つずつ入れてもできるのですが、データが多くて時間がかかるので簡単な方法があれば教えてください。

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

  • ベストアンサー
  • takasebou
  • ベストアンサー率42% (61/144)
回答No.2

とりあえず規則性がないなら、何かしらの方法で一つずつ設定はしなければ仕方ないと思いますが、 Const acNum as string = "3,2,5,4,1,7,6" dim acData() as string dim alLoop as long dim alHairetuNo as long acData = split(acNum,",") for alloop = 0 to ubound(acData) alHairetuNo = cLng(acData(alLoop)) b(alloop) = a(alHairetuNo) next Erase acData acNum の中にカンマ区切りで順番をいれておいて、それをSplitステートメントで配列 acDataの中に読み込みます。 で、あとはFor Next文でくるくる回すと。 こんな感じでどうでしょう?

shippo
質問者

お礼

回答ありがとうございます。 こんな方法があるんですね。 変数が多かったのでずらずら代入するプログラムはあとで見づらくなるかと思い、すっきりした方法を探していました。 おかげでだいぶ見やすいプログラムになりました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

何らかの、規則がないなら、1つずつやらないと仕方がないですね。 並びのリストを作っておくといいのかもしれません

shippo
質問者

お礼

さっそくのアドバイスありがとうございます。 やはり不規則な並びでは一つずつ変数に入れてやるしかないですかね。 なんかスマートにやる方法があればと思ったのですが・・・。

関連するQ&A

  • VBでのPublic変数について(超初心者的質問です)

    すみません。立て続けですが、教えてください。 public変数は、他人には、変更されないですよね。 例をだすと、完成したあと、数人の人がそのシステムを使ってるとします。 AクンがPublic変数fooを使っていたとします。同時にBクンもたまたま、Public変数fooをつかっていたとします。 上記の例の場合、AクンBクンとも個々にPublic変数fooが用意されるんですかね?? なんか、本を読んでいたらPublic変数は、「どのモジュールからもアクセスできる変数」と書いてあるとともに「他人に変更されたくなければ、Public宣言をしてはいけない」ようなことが書いてあります。多分、僕の読解力不足だと思うんですが。 使用言語はVBです。 よろしくお願いします。

  • VBでの変数宣言は1行に2つできないのですか?

    Visual BASICで変数宣言は1行に2つ以上記述しても実際、動作します。 例 DIM A、B as Integer このように宣言すると、AもBも整数となります。 しかし、このように宣言して、この変数を Call サブプログラム名(B) のように、パラメ-タとして引き渡そうとするとエラーとなってしまうようです。 よくわからないまま、 DIM A as Integer DIM B as Integer と分けて記述したらエラーがきえたようです。 変数宣言は1行に2つ以上まとめて記述してはいけないのでしょうか? VBは Ver 5 です。

  • VB6で、変数の値を別ファイルの変数に引き継ぎたい

    AというVBのソースファイル(.frm)内に関数の呼び元があり、 その関数がBというファイルにあります。 その関数内で値が設定される変数を、Bファイルのグローバル変数とし、 また、Aファイルのグローバル変数として同じ名前の変数を宣言したとしても、 やはりB内で関数の実行が終了し、Aに戻った際には、変数は別のものとみなされている ようで、B内関数で設定された値がAファイル内での同名変数に引き継がれません。 どのようにすればよろしいでしょうか? ご存知の方、お願いします。

  • VB6の変数宣言について

    VB6で変数を宣言するときにいちいち新しいプロシージャのたびに新しく宣言しなおすのがすごく不便です。 Dim A As Integer A = 12345 と毎回宣言すると見た目も悪いですしいろいろと不便です。 どのプロシージャにも A と書けば必ず 12345 を呼び出してくれるようにはできないのでしょうか?

  • ExcelデータをVB.NETに取り込みたいのですが

    現在ExcelデータをVB.NETに取り込もうとしています。ただ単純に取り込む方法では出来ないと思われ、是非皆さんに知恵を貸して頂きたいと思います。 セルA1~G1、A2~G2、A3~G3のセル位置をそれぞれ座標(1,1)~(1.7)、(2.1)~(2,7)、(3,1~3,7)とみなし、そのセルの数値を(i、j)の変数を用いて配列的に取り込むにはどうすればよろしいでしょうか? 例えばA1の数値が5、B1の数値が7、A2の数値が3だった場合、VB内では(1,1)=5、(1,2)=7、(2,1)=3というようにExcelデータを取り込みたいのです。この場合はデータ数が少ないので手動でVBにデータを入力すればよいのですが、実際はデータ量が多く、なんとか配列を用いて処理したいと思っています。 よろしくお願いいたします。 説明が足りない場合は遠慮なくお申し付けください。

  • VB.NETで変数を繰り返し宣言

    VB.NETでテキストを読み込み、その内容を1行ずつ変数に入れたいのですが テキストファイルの行が一定では無く、変数を予め大量に宣言するわけにもいかないので ForNextの間に宣言の処理を入れて数を1つずつ増やしながら変数を宣言する と言った事は出来ますでしょうか? 例えば テキストファイルの行が15行だったら TextLine1からTextLine15までに1行ずつ入れる感じです 初歩的な質問ですが詳しい方回答よろしくお願いします

  • vb6の変数について

    vb6で "を変数に入れる方法を知ってる方いませんか? a = """ みたいな感じで。 お願いします!

  • VB2010で、変数の宣言がわかりません。

    VB2010で、変数の宣言がわかりません。 Option Explicit Public i, j, k, l As Long Public ii, jj, kk, ll As Long Public lngFileSuu As Long Public strTemp As String ・ ・ ・ と標準モジュールに宣言すると エラーがでています。 VB6.0とは宣言方法が違うのでしょうか? 教えてください。よろしくお願いします。

  • VBでの変数の扱い方?

    現在VBで電卓を作成中なのですが理解できない箇所があります。 一部引用させていただきます。 〔数値]+=と押したとき、[数値]の加算となる。例えば、10+=とキーを押したとき、20と表示される。ここで、等号(=)キーの前に押した演算キーを記憶しておく必要がある。演算の種類は、ボタンの配列の添字に合わせる。変数名はEnzanとし、Integer型でグローバル変数として宣言する。  また、演算の種類が0は加算、1は減算では覚えにくいので、定数として宣言しておく。 Dim Enzan As Integer '演算種類記憶用(+:0,-:1,*:2,/:3,4:=) Const NONE = -1 Const TASU = 0 Const HIKU = 1 Const KAKERU = 2 Const WARU = 3 Const EQU = 4 記憶しておく必要があることはわかったのですが、 なぜ、NONE = -1 に -1 を入れるのか TASU = 0 で=のあとに0をいれるのか 理解できません。 =を持ってくる必要があるのですか? =のあとの数字は適当な数字ですか? 大変申し訳ないのですが、回答まってます。

  • パブリック変数を宣言する時に・・・

    エクセルVBAの質問です。 モジュールAとBがあるとしまして、 Aの中にあるプロシージャからBの中のプロシージャを呼び出す場合、 変数を引き渡したいとしたらパブリック変数を使いますよね? この場合宣言は、 Aの宣言セクションでするのか、 Bの宣言セクションでするのか、 あるいは両方で同じ変数を宣言するのか、 どれなんでしょ?