Word のスタイルをマクロ記録する

Manage Styles, Edit

 『エンジニアのためのWord再入門講座』を読み進めている.スタイルの扱いが重要であることは分かった.惜しいのは,VBA のオブジェクトからの視点がないことである.筆者の主観ではオブジェクトの視点があると理解が早まる気がしている.完全に自分のための備忘録である.

“Word のスタイルをマクロ記録する” の続きを読む

EXCEL VBA でフォルダ内のブックを開きデータを読み込む

FileSystemObject と VBA の関係

 Power Query が使えないと不便である.先日 EXCEL 2010 の素の環境でフォルダ内のブックをすべて開き,データを読み込む必要があったのだが,Power Query が使えなかったため,VBA でブックを開いて読み込まなければならなかった.備忘録としての記事である.

 この記事はPower Query でフォルダから複数ファイルを一括インポートすると対応している.やっていることは同じだが,.xls 形式だとクエリの検証に時間がかかるため,VBA で読み込んだほうが動作は早いかもしれない.

 フォルダー内のファイル一覧を取得するには FileSystemObject を使う場合と Dir() 関数を使う方法とがある.ここでは FileSystemObject を使うことにする.

 データは Range オブジェクトに格納されているため,Range オブジェクトを取得するのが当面の目標となる.

“EXCEL VBA でフォルダ内のブックを開きデータを読み込む” の続きを読む

EXCEL VBA で Series オブジェクトをソートできなかった話

実行時エラー '451': Property Letプロシージャが定義されておらず,Property Getプロシージャからオブジェクトが返されませんでした

 Series オブジェクトを PlotOrder プロパティでソートする必要があった話をした.今回,Series オブジェクトをソートするために Collection オブジェクトに代入したのだが,配列の最終要素を取得するところで実行時エラーとなり,解決していない.

 Series オブジェクトをソートするための方法としては,元のデータで比較する方法と,Series オブジェクトの最終 Point オブジェクトの Top プロパティを比較する方法がある.

 意味としてはどちらも同じだが,どうせなら元のデータで比較するのが王道と思われたのでそちらを試したのだが,今の自分にはスキル不足で手に負えなかった.悔しい.

“EXCEL VBA で Series オブジェクトをソートできなかった話” の続きを読む

今後25年間の日本の都市の将来推計人口を EXCEL VBA で描く

データ系列のマーカースタイルを消去

 これまでは日本の都市人口の過去の推移を見てきた.総務省には日本の都市人口の推移予測がある.今回はこのデータをグラフにする.

 データを可視化するにあたり,重要なのは引き算である.強調すべき系列のみを強調するために,VBA の知識が欠かせない.

 グラフの系列にデータラベルを表示する方法にはいくつかある.

“今後25年間の日本の都市の将来推計人口を EXCEL VBA で描く” の続きを読む

はたらくオブジェクト

Range オブジェクト編

「おい,新米 Range オブジェクト!何ボーッと突っ立ってんだよ」
「す,すみません!」
「お前,名前は?」
「は,はい.myRng1と申します.よろしくお願いいたします」
「仕事に来たら,まず名乗れ.それがここの流儀だ」
「それから,自分の職域も一緒に言うんだ.わかったか?」
「は,はい」
「最初に書いてあるだろ?Option Explicit ってな.俺も詳しくは知らねぇが,あのルールは絶対だ.名乗らない奴に居場所はない…ほら,仕事が来たぞ」
「何い?誰だ,こんな糞コード書いたのは?ワークシートに何回アクセスさせる気だよ,全く…ほれ,ここからあそこまで走って値を取ってこい」
「ここからあそこまでって…えーっ?本気で言ってます?」
「何言ってるんだ?ワークシートにアクセスするような力仕事は新米 Range オブジェクトの役割と相場が決まってるんだ.さあ行った行った」

“はたらくオブジェクト” の続きを読む

EXCEL VBA でピボットテーブルの挿入を記録する

 ピボットテーブルは EXCEL に初期から搭載されている分析ツールである.ピボットグラフで未だに散布図が描けないという致命的な欠陥があるが,それでも有用なツールであることに変わりはない.

 今回の記事はコードの整形ができていない.PivotTable オブジェクトのプロパティが膨大で手がつけられなかったためである.時間がある時に取り組みたい.

“EXCEL VBA でピボットテーブルの挿入を記録する” の続きを読む

EXCEL VBA で散布図を作成しデータ系列を新規に追加する

 VBAから見たEXCELの散布図では散布図を作成する際に .ChartObjects.Add を用いたが,今回は別の経路で散布図を作成するコードを紹介する.またデータ系列に何も入力のない,空っぽのデータ系列を新規作成したときのコードも紹介する.

“EXCEL VBA で散布図を作成しデータ系列を新規に追加する” の続きを読む