Page 569 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼データの受け渡し jin 03/1/20(月) 2:12 ┗Re:データの受け渡し BOTTA 03/1/20(月) 13:49 ┗感謝 こう 03/1/20(月) 17:16 ┗Re:感謝 jin 03/1/20(月) 17:19 ─────────────────────────────────────── ■題名 : データの受け渡し ■名前 : jin ■日付 : 03/1/20(月) 2:12 -------------------------------------------------------------------------
いろいろ参考にさせていただいてます。 テキストデータをINPUT #1 D(1),D(2),D(3) として読み込んだあとファンクションに値を渡してその中でループ処理をして 条件と一致したら値をセルにセットしてまたINPUT...というように 処理しているのですが、ループを抜けてファンクションからでると次のファンクションに移るときに途中まで読み込んだテキストデータの値を次のファンクションに 渡すことができず困っています。 どのようにしたらよろしいでしょうか? コードは次のようになっていますが。。。 Do Until EOF(1) 'EOFでない間は For retu = 22 To 29 '列カウンターに 1 加える Input #1, D(1), D(2), D(3) If InSfsdata(objSh_No43, 6, 37, "T", retu, D(1), D(2), D(3)) = False Then Exit Sub If InSfsdata(objSh_No47, 6, 39, "T", retu, D(1), D(2), D(3)) = False Then Exit Sub If InSfsdata(objSh_No53, 6, 37, "T", retu, D(1), D(2), D(3)) = False Then Exit Sub Next Loop 'Doループする(繰り返す) Next ----------------------------------------------------------------------- Function InSfsdata(ByVal objShNm As Object, _ ByVal DEF_ROW As Long, _ ByVal MAX_ROW As Long, _ ByVal CdCol As String, _ ByVal AmCol As Integer, _ ByVal SegCd As String, _ ByVal sACCTCD As String, _ ByVal Money As Double) As Boolean Dim intRowCnt As Integer '行カウンタ Dim X As String Dim Y As String Dim A(3) As Variant InSfsdata = False For intRowCnt = DEF_ROW To MAX_ROW X = objShNm.Cells(5, AmCol) If SegCd = X Then Y = objShNm.Cells(intRowCnt, CdCol) If sACCTCD = Y Then objShNm.Cells(intRowCnt, AmCol - 17) = Money '読み取ったデータ(金額)をセルにセット End If Input #1, A(1), A(2), A(3) SegCd = A(1) sACCTCD = A(2) Money = A(3) End If Else Exit Function End If Next '行カウンタFor..Nextする(繰り返す) InSfsdata = True End Function 上でファンクションに移るときにA(1)にはいっている値ではなく初めに読み込んだD(1)が次のファンクションにわたされてしまいます |
jinさん、こんにちは。 単純に、ByVal(値渡し)をByRef(参照渡し)にかえてみては? ザッとみただけです。的はずれかもしれません。 もちろん、このコードをすべて理解しているわけでもありません。^^; |
▼BOTTA さん: >jinさん、こんにちは。 > >単純に、ByVal(値渡し)をByRef(参照渡し)にかえてみては? BOTTAさん、ありがとうございます。 ByRefを使ってファンクション内の値を変数に格納して値の受け渡しを行うことができました。 ByVal自体も覚えたてでよくわからず使っていたもので・・・ |
自宅PCではないところからの返信でこのPC所有者の名前で返信してしまいました。 (^^;A すみません |