miauのブログ

はてなダイアリー「miauの避難所」をはてなブログに移行しました

Excel VBA 前置き

先日引き継いだばかりのシステムですが、年次のデータ更新作業があるようで。.xls で受け取ったデータを SQL に加工して流しこむような作業なので、VBA メインでやってみました。

で、よく考えたら VBA の Tips とか全然ブログに書いたことがなかったので、この機会にいろいろ書いておこうかと。長くなったのでエントリをいくつかに分けますが、まずは前置きの

  • コーディング tips(コーディング規約なんかも)
  • VBA のバージョン管理

といった部分について。

続きを読む

選択範囲を画像ファイルに保存する

今回、Excel で書かれた表を画像化する必要があったのですが、

で公開されている「PictureSave / Excel 画像ファイル保存」を利用させていただきました。

手作業で使うぶんにはいいんですが、今回は数十枚の画像を作成する必要があったので、そのあたりについてです。

続きを読む

UTF-8 でファイル保存する処理

VBAWSH のプログラミングでは ADODB.Stream を使って文字コード変換するテクニックがよく知られていますが、UTF-8 で保存すると BOM(Byte Order Mark)がついてしまうようで。

解決策を探すと、

あたりに載ってたんですが、ADODB.Stream を二回 CreateObject してたりしてちょっと冗長に感じたので、少し書き換えて使っています。

続きを読む

格納順を保持するディクショナリクラスを作ってみた

今回「連想配列に値を格納して順番どおりに取り出す」という処理が多かったんですが、Scripting.Dictionary は値を取り出す際に格納した順番でとり出されることが保証されていません。(といっても、経験上は順序が崩れたことは一度もないのですが・・・。)

念のため、格納した順序で値を取り出すための OrderedDictionary というクラスを作りましたので、そのお話。今回作ったクラス自体よりも、こういったクラスの作り方といったところに焦点を当てています。

続きを読む