関数からの返り値を、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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
動的配列が存在(要素が有る)か...
-
EXCEL VBA で、0から?1から?
-
IF関数でEmpty値を設定する方法。
-
For文と配列
-
変数を動的に作るには?
-
VBAで配列の計算
-
パソコンキーボードで時分秒を...
-
C#でのコントロール配列について
-
遅延バインディングを使用でき...
-
VB.net 引数で配列変数を渡す際...
-
2次元配列の、黒いマス目で囲...
-
ラジオボタンのチェックをEnter...
-
PowerShell にて、配列の計算を...
-
C# での文字列パディング
-
配列の要素数を超えた参照のコ...
-
C# 配列のスタックは可能でしょ...
-
c言語を勉強している初心者です...
-
【MFC】GetCount()とGetSize()...
-
C言語 配列からランダムに素数...
-
VBで作った乱数を一度も重複さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数でEmpty値を設定する方法。
-
VBAで配列の計算
-
EXCEL VBA で、0から?1から?
-
パソコンキーボードで時分秒を...
-
変数を動的に作るには?
-
動的配列が存在(要素が有る)か...
-
VB.net 引数で配列変数を渡す際...
-
遅延バインディングを使用でき...
-
VBで作った乱数を一度も重複さ...
-
配列の要素数を超えた参照のコ...
-
Excel VBAで配列の途中から(X)M...
-
複数のテキストボックスに同じ...
-
For文と配列
-
C言語 重複しない4ケタの乱数...
-
五目並べのプログラムを配列と...
-
排列と配列の漢字の使い分けは
-
マップチップの当たり判定の出し方
-
Visual C++ でコントロールを...
-
VBでbyte配列型のインスタンス...
-
C#の質問
おすすめ情報