Excel: 2008年6月アーカイブ

Excel VBAで、Writeステートメントを使ってCSV出力すると、日付が #2008-01-01# のような形式になってしまいます。
このCSVをAccessにインポートするのは大変です。
以下のような自作関数を使って変換しましょう。

Excel側でエクスポートする際に変換してもいいし、Access側でインポートした後にクエリで変換してもいいです。

Function sanitizeDate(str As Variant) As Variant 
    If Left(str, 2) = "#2" And Right(str, 1) = "#" And Len(str) = 12 Then
        sanitizeDate = Mid(str, 2, 10)
    Else
        sanitizeDate = str
    End If
End Function
使い方
Sub test()
   MsgBox sanitizeDate("#2008-01-01#")
End Sub

実行結果: 2008-01-01


ExcelやPowerPointやWordでVBAを実行するときに、マクロの実行時間を測定する方法。

ストップウォッチが手元にないときはこのコードを使いましょう。

Sub macro1()
Dim t
t = Timer
・・・あれこれ処理・・・
MsgBox Timer - t
End Sub

解説


最初に t = Timerで、マクロ開始時刻が記録されます。
最後に、Timer - T と引き算することで、マクロの経過時間(秒)が得られます。

コードのベンチマークをやるときに便利ですよ。

このアーカイブについて

このページには、2008年6月以降に書かれたブログ記事のうちExcelカテゴリに属しているものが含まれています。

前のアーカイブはExcel: 2008年5月です。

Excel: 2008年6月: 月別アーカイブ