2016年02月08日

[EXCEL VBA] .QueryTables.Add のオブジェクトのTextFilePlatform プロパティについて

最近では主にExcel2010で動くことだけを主眼に開発をしてきたEXCEL VBAを駆使した自作マクロですが 手持ちの仮想環境にある一番古いEXCEL2000でも (バージョン依存でそもそも使えないもの以外は)動くことを目指してテストとデバッグ、コード修正をしました。

無修正では動かないところがやっぱりいくつかあった。それは主に古い環境にプロパティが存在しないとか、メソッドのパラメータ数が異なるなど が多かったわけですが、一点 デバッグに時間がかかったのが 表題のプロパティでした。

TextFilePlatform プロパティは現在では 文字コードを数字でセットするような仕様になってますが、EXCEL2000 ではxlMacintosh、xlWindows、xlMSDOS と3つのパラメータしかありません。
そういえば2000年当時、ファイルの文字コードは SHIFT_JISかそれともEUC_JPか?それともMACの改行コードはCRか?なんてことだけ考えていればよかったような時代も一瞬ありました。

というわけでここのところのコーディングは EXCEL2000だった場合には 2 (xlWindows)をセットし、それ以外の場合には 以下のサイトの文字コード判定ロジックを大いに参考にさせていただいて、文字コードをセットするようにしました。
[VBA]日本語文字コード判別
こうしてVBAのコードはどんどん肥大化していくのでありました。ソースコードをエクスポートすると 885 KB ほどありました。

EXCEL2000で動かん状態だったソースコード的には互換性的には大丈夫になりましたが、MSCOMCTL.OCXの参照設定が x64 Windows 7 & EXCEL 2010 の環境で設定されていると これを EXCEL 2000 & Windows XP (x86) の 環境で開くと参照設定が見つからないためにエラーになってしまい、一度は EXCEL2000でVBA エディタを開いて参照設定を付け直す必要があります。でもそれだけやれば 一応のところソースコード的には完全同一の状態で EXCEL 2000 から 2010まで 使えるマクロ集になりました。

・・・・なんでこんなことをしているんだ、休日に。



この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/173663492
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

・おすすめ楽天ショップ1:trendyimpact楽天市場店
・おすすめサプリショップ:iHerb.com
・おすすめ楽天ショップ2:上海問屋
Powered by さくらのブログ