Google

2010年11月22日月曜日

VBAのお仕事

仕事上、必要性に迫られ今頃Excel2007でVBAを触るはめに。
ここ数年全くいじってなかったけど、さほど忘れてなかったっぽい。
問題はセキュリティがややこしくなった点と、時代が変わったのでUTF-8必須になった点。
特にUTF-8が忘れやすかったので個人メモ。

読みだすには以下のように書く。
変数名とファイル名は各々自分の環境で読み変え。

    Dim 変数名 As String
    With CreateObject("ADODB.Stream")
        .Charset = "UTF-8"
        .Type = adTypeText
        .LineSeparator = adCRLF
        .Open
        .LoadFromFile "ファイル名"
        変数名 = .ReadText(adReadAll)
        .Close
    End With

書き込みには以下のように書く。
日本語の部分は同様。

    With CreateObject("ADODB.Stream")
        .Charset = "UTF-8"
        .Open
        .WriteText 出力ファイル名
        .SaveToFile 出力ファイル名, 2
        .Close
    End With


SaveToFileの引数は1が上書きしなくて2で強制。

参照設定も色々微妙だった。
Microsoft ActiveX Data Objectを入れろとあるが、似たようなものが幾つか。
XPでやってるから悪いのか知らないが、細かいバージョン違いまである。
前者は全部、後者は最新のものだけを選択し、事なきを得た。


うーん、VBA使えると便利だけど、やっぱめんどくさい。

0 件のコメント:

コメントを投稿