質問:
Function A(B As Variant) As Variant
Dim intYea As Integer, intMon As Integer, _
intDay As Integer, intHou As Integer, _
intMin As Integer, intSec As Integer

intSec = Right(B, 2)
intMin = Mid(B, 11, 2)
intHou = Mid(B, 9, 2)
intDay = Mid(B, 7, 2)
intMon = Mid(B, 5, 2)
intyer = Left(B, 4)

A = DateSerial(intYea, intMon, intDay) & " " & _
TimeSerial(intHou, intMin, intSec)
End Function
というようなプログラムでBに"20061012063100"のような16桁の数字を入れて"2006/10/12 06:31:00"のような形で返す関数を作りました。しかし、"2012/06/10 06:31:00"で返ってくることがあります。(おそらく日・年・月の順)原因がわからず困っています、誰か助けてください。また、もっといい方法はあるのでしょうか?
答え:
そのままコピーして動かしたら、「変数が宣言されていません(intyer)」になりますよ。
Option Explicit は入れておいたほうがいいですね。

あと、関数の引数、戻り値はなぜVariant?
意図があるのならいいですが、なるべくVariant は使わないほうがいいです。

文字列から数値には勝手に変換してくれますが、できれば明示的に書くとか。
(intDay = CInt(Mid(B, 7, 2)) のように)

ところで、戻り値は何で返したいのですか?
Date 型なら、DateSerial(...) + TimeSerial(...) でできますよ。
補足の質問:
うまくいきそうな気がしますこの質問・回答は役に立ちましたか?

ウェブサイトのユーザーによる情報ポスト、JPQA.comのない保証の正しさ.

  • 先ほどこの質問をしたものです。。。。。。 今回...
  • 「Postfix 2.3 Patchlevel 4」がいつリリースされたか...
  • テーブルってなんですか??HTMLのタグであるらしい...
  • oracleでテーブル定義の取得の仕方に関してMySQL...
  • Texのことですが、 「tempのフォルダをCドライブの...
  • 20人分の試験の採点結果を順次入力していき、入力...