関数からの返り値を、1~X回取得したいと考えています。
Msgboxで表示させると以下のソースでRetに返り値が入ってきます。
それを配列に入れることってできないのでしょうか?
*****部分に Array()=Ret とやっても、コンパイルエラーで
「配列には当てはまりません」と出てきます。
for i = 1 to X
ID = ID & i
Ret =Kansu(hiki1,ID)
********************
next i
返り値を個別に変数として使いたい→配列に入れればいいや ・・・という発想が
間違っているのでしょうか?
文字列を分割してその結果を配列に入れて行く、ということはできるのに
もっと単純そうなこれが何故できないのでしょう・・・(涙)。
わかりにくい説明ですみませんが、
どなたかわかる方、教えてください。
No.1
- 回答日時:
Array()=Ret ではなく、Array(i)=Ret です。
何番目(0~)に入れるかを指定します。
あらかじめ、配列を
Dim Array(配列の大きさ) As Integer
のように宣言しておく必要があります。
文法の解説をしている本や、リファレンスを読んでみてください。
参考URL:http://www.microsoft.com/japan/developer/library …
早速の回答ありがとうございます。
いろいろ調べてみて、Array(i)=Retも試したんですが、
エラーが出てしまいまして・・・。
配列の大きさはその都度変化するので
Dim Array()としておいて
あとからReDim Array(x)と宣言しております。
もう少しいろいろ調べてみます。
No.2ベストアンサー
- 回答日時:
質問に『1~X』とあり、Xがどのような性質の変数か分からないので、事前に固定されている場合と変動する場合を書いてみました。
(VBがないのでExcel2000VBEを使っています)○固定(配列を10個に特定)
Dim myArray(10) As Long '配列
Dim i As Integer 'カウンタ
Const x = 10
For i = 1 To x
myArray(i) = myArray(i - 1) + i '処理例
Next
MsgBox UBound(myArray) & " , " & myArray(x) '確認
○変動1(配列が何個必要か分からないが実行の途中で決まる場合)
Dim myArray() As Long '配列
Dim i As Integer 'カウンタ
Dim x As Integer 'カウンタ
x = 20 '途中で配列の要素数が決まる
ReDim myArray(x) '再度定義する
For i = 1 To x
myArray(i) = myArray(i - 1) + i '処理例
Next
MsgBox UBound(myArray) & " , " & myArray(x) '確認
○変動2(最初に配列の要素数(この場合は15)を決めておき、必要なら増やす。)
Dim myArray() As Long '配列
Const intX = 15 '15にしておく
ReDim myArray(intX) '再定義
Dim i As Integer 'カウンタ
Dim x As Integer 'カウンタ
x = intX - 5 + Int(Rnd() * 10) '途中で配列の要素数が決まる
For i = 1 To x
If i > intX Then
'intX=15を超えたら再定義。Preserveで15までは変更なし。
ReDim Preserve myArray(i)
End If
myArray(i) = myArray(i - 1) + i '処理例
Next
ReDim Preserve myArray(x) '要素数がintXより少なかったら小さくする(必要なら)
MsgBox UBound(myArray) & " , " & myArray(x) '確認
大変丁寧な回答、ありがとうございます。
Xは関数の返り値で、その都度変わってしまいます。(0~?までの間)
変動2のパターンを使わせていただきました。
動きました~(←当たり前だ)。ありがとうございます。
ReDim Array(X)のタイミングが悪かったみたいです。
また機会がありましたらよろしくお願いします(ペコリ)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Java Java 南京錠 2 2023/02/04 11:46
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Microsoft ASP プログラミング関係で質問です。 3 2022/10/11 16:06
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- その他(プログラミング・Web制作) test([)コマンドによる条件判定 2 2022/08/10 12:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数でEmpty値を設定する方法。
-
動的配列が存在(要素が有る)か...
-
EXCEL VBA で、0から?1から?
-
VBAで配列の計算
-
変数を動的に作るには?
-
配列の要素数を超えた参照のコ...
-
パソコンキーボードで時分秒を...
-
javaプログラムについて
-
排列と配列の漢字の使い分けは
-
複数のテキストボックスに同じ...
-
C言語 重複しない4ケタの乱数...
-
コントロールが配列かどうかを...
-
For文と配列
-
遅延バインディングを使用でき...
-
空き番号探し
-
ランダムに並んでるキーボード...
-
五目並べのプログラムを配列と...
-
VB.net 引数で配列変数を渡す際...
-
ジャバスクリプトについて。
-
ボタンの複数割り当てについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで配列の計算
-
パソコンキーボードで時分秒を...
-
IF関数でEmpty値を設定する方法。
-
EXCEL VBA で、0から?1から?
-
変数を動的に作るには?
-
動的配列が存在(要素が有る)か...
-
VB.net 引数で配列変数を渡す際...
-
遅延バインディングを使用でき...
-
VBで作った乱数を一度も重複さ...
-
複数のテキストボックスに同じ...
-
配列の要素数を超えた参照のコ...
-
C言語 重複しない4ケタの乱数...
-
For文と配列
-
C#の質問
-
VBでbyte配列型のインスタンス...
-
Excel VBAで配列の途中から(X)M...
-
マップチップの当たり判定の出し方
-
ジャグ配列とは
-
五目並べのプログラムを配列と...
-
10進数を4桁のバイト配列に格納...
おすすめ情報