[リストへもどる]
一括表示

投稿時間:2003/11/17(Mon) 15:11
投稿者名:だだだ
Eメール:
URL :
タイトル:
Fuction,typeについて
共通モジュール内に構造体を作りたいのですが、
Fuction内にTypeは書けないようです。
ということは、共通モジュール内に構造体は作れないということでしょうか??
どなたか、教えてもらえると助かります。

投稿時間:2003/11/17(Mon) 16:06
投稿者名:だだだ
Eメール:
URL :
タイトル:
Re: Fuction,typeについて
前回のにソースを載せてみました。

Function funAge(intAge As Date) As String
    Public Type datNow
        yNow As Integer
        str1Barth As String
        mNow As Integer
        str2Barth As String
        dNow As Integer
    End Type
    Public Type datBarth
        yBarth As Integer
        str1Barth As String
        mBarth As Integer
        str2Barth As String
        dBarth As Integer
    End Type
    datNow = Now
    datBarth = intAge
End Function

これで、プロシージャ内では無効です。
と実行時のエラーが帰ってきます・・・

投稿時間:2003/11/17(Mon) 16:13
投稿者名:いちゆ
Eメール:
URL :
タイトル:
Re^2: Fuction,typeについて
コードを見る限りは実行時エラーではなくてコンパイル時エラーですね。
プロシージャ内部ではなくて定義部に書いてはどうでしょう?
ついでに定義型を定義しているだけで、どこでも実現していないように見えます。

    Public Type tdatNow
        yNow As Integer
        str1Barth As String
        mNow As Integer
        str2Barth As String
        dNow As Integer
    End Type

    Public Type tdatBarth
        yBarth As Integer
        str1Barth As String
        mBarth As Integer
        str2Barth As String
        dBarth As Integer
    End Type
Dim datNow as tdatNow
Dim datBarth as tdatBath

また関数内部での
    datNow = Now
    datBarth = intAge
は、NowとintAgeはDate型ですが、代入先がDate型ではないため
変換エラーがおきます。
構造体のメンバごとに代入を書いていってください。

投稿時間:2003/11/17(Mon) 16:18
投稿者名:KG
Eメール:
URL :
タイトル:
Re: Fuction,typeについて
そのモジュールの一番上に書いてみては?

*** 例)
_________________________________
Type Test
  Name As String
  Number As Long
End Type

Private Function Function1() As Long
・・・・
End Function

投稿時間:2003/11/17(Mon) 17:23
投稿者名:だだだ
Eメール:
URL :
タイトル:
Re^2: Fuction,typeについて
返信ありがとうございます。
KGさんの指摘道りに、宣言を上に出したら出来ました。
ありがとうございます。

>ついでに定義型を定義しているだけで、どこでも実現していないように見えます。

確かにそうだったので、一応その部分も解消されました。

最後に
>また関数内部での
>    datNow = Now
>   datBarth = intAge
>は、NowとintAgeはDate型ですが、代入先がDate型ではないため
>変換エラーがおきます。
>構造体のメンバごとに代入を書いていってください。

この部分なのですが、
一括で構造体の中に入れる事は出来ないでしょうか?

今のソースはこんな感じになりました。

    Type datNow
        yNow As Integer
        str1Barth As String
        mNow As Integer
        str2Barth As String
        dNow As Integer
    End Type
    Type datBarth
        yBarth As Integer
        str1Barth As String
        mBarth As Integer
        str2Barth As String
        dBarth As Integer
    End Type


Public Function funAge(intAge As Date) As String

    Dim zzz As datNow
    Dim xxx As datBarth
    
    xxx = intAge

End Function

投稿時間:2003/11/18(Tue) 11:35
投稿者名:いちゆ
Eメール:
URL :
タイトル:
Re^3: Fuction,typeについて
> この部分なのですが、
> 一括で構造体の中に入れる事は出来ないでしょうか?
逐一プログラムを書く以外はありません。
どういう実装にするかはプログラマまかせですから〜

投稿時間:2003/11/18(Tue) 12:25
投稿者名:だだだ
Eメール:
URL :
タイトル:
Re^4: Fuction,typeについて
少しでも短くしたかったので、こだわってしまいまして。
前回いちゆさんに教わったやり方で、確認は出来ましたので
問題はないです。ありがとうございました。
また、ご指導ご鞭撻のほどをよろしくお願いします。