ADO はバージョンにより微妙にクラスが異なる.オブジェクトブラウザーからクラスとメンバーを抽出して比較してみた.
Word のスタイルをマクロ記録する
『エンジニアのためのWord再入門講座』を読み進めている.スタイルの扱いが重要であることは分かった.惜しいのは,VBA のオブジェクトからの視点がないことである.筆者の主観ではオブジェクトの視点があると理解が早まる気がしている.完全に自分のための備忘録である.
EXCEL VBA でフォルダ内のブックを開きデータを読み込む
Power Query が使えないと不便である.先日 EXCEL 2010 の素の環境でフォルダ内のブックをすべて開き,データを読み込む必要があったのだが,Power Query が使えなかったため,VBA でブックを開いて読み込まなければならなかった.備忘録としての記事である.
この記事はPower Query でフォルダから複数ファイルを一括インポートすると対応している.やっていることは同じだが,.xls 形式だとクエリの検証に時間がかかるため,VBA で読み込んだほうが動作は早いかもしれない.
フォルダー内のファイル一覧を取得するには FileSystemObject を使う場合と Dir() 関数を使う方法とがある.ここでは FileSystemObject を使うことにする.
データは Range オブジェクトに格納されているため,Range オブジェクトを取得するのが当面の目標となる.
Office テーマの配色を RGB 関数で表現する
Officeテーマの色空間を探索するではオブジェクトテーマカラーについて探索した.今回は配色の方を探索する.
環境省の捕獲鳥獣数の統計を折れ線グラフにする
また面倒な統計を見つけてしまった.Power Query に食わせれば早いのかも知れないが,どうにも埒が明かないので手動でデータを整形することになった.頼むから第一正規形で公開してくれ…
EXCEL VBA で Series オブジェクトをソートできなかった話
Series オブジェクトを PlotOrder プロパティでソートする必要があった話をした.今回,Series オブジェクトをソートするために Collection オブジェクトに代入したのだが,配列の最終要素を取得するところで実行時エラーとなり,解決していない.
Series オブジェクトをソートするための方法としては,元のデータで比較する方法と,Series オブジェクトの最終 Point オブジェクトの Top プロパティを比較する方法がある.
意味としてはどちらも同じだが,どうせなら元のデータで比較するのが王道と思われたのでそちらを試したのだが,今の自分にはスキル不足で手に負えなかった.悔しい.
今後25年間の日本の都市の将来推計人口を EXCEL VBA で描く
これまでは日本の都市人口の過去の推移を見てきた.総務省には日本の都市人口の推移予測がある.今回はこのデータをグラフにする.
データを可視化するにあたり,重要なのは引き算である.強調すべき系列のみを強調するために,VBA の知識が欠かせない.
グラフの系列にデータラベルを表示する方法にはいくつかある.
はたらくオブジェクト
Range オブジェクト編
「おい,新米 Range オブジェクト!何ボーッと突っ立ってんだよ」
「す,すみません!」
「お前,名前は?」
「は,はい.myRng1と申します.よろしくお願いいたします」
「仕事に来たら,まず名乗れ.それがここの流儀だ」
「それから,自分の職域も一緒に言うんだ.わかったか?」
「は,はい」
「最初に書いてあるだろ?Option Explicit ってな.俺も詳しくは知らねぇが,あのルールは絶対だ.名乗らない奴に居場所はない…ほら,仕事が来たぞ」
「何い?誰だ,こんな糞コード書いたのは?ワークシートに何回アクセスさせる気だよ,全く…ほれ,ここからあそこまで走って値を取ってこい」
「ここからあそこまでって…えーっ?本気で言ってます?」
「何言ってるんだ?ワークシートにアクセスするような力仕事は新米 Range オブジェクトの役割と相場が決まってるんだ.さあ行った行った」
EXCEL VBA でピボットテーブルの挿入を記録する
ピボットテーブルは EXCEL に初期から搭載されている分析ツールである.ピボットグラフで未だに散布図が描けないという致命的な欠陥があるが,それでも有用なツールであることに変わりはない.
今回の記事はコードの整形ができていない.PivotTable オブジェクトのプロパティが膨大で手がつけられなかったためである.時間がある時に取り組みたい.
EXCEL VBA で散布図を作成しデータ系列を新規に追加する
VBAから見たEXCELの散布図では散布図を作成する際に .ChartObjects.Add を用いたが,今回は別の経路で散布図を作成するコードを紹介する.またデータ系列に何も入力のない,空っぽのデータ系列を新規作成したときのコードも紹介する.