EXCEL VBA で既存のテーブルにネットワークドライブ上の Workbook からデータを追記する

FileSystemObject と VBA の関係

 前回の記事ではフォルダーから一括してデータを読み込む方法を紹介した.今回は月次の更新ファイルを読み込んで既存のテーブルにデータを追記する方法を紹介する.

 既に読み込んだファイルは拒否したい.監査としてのワークシートが必要だ.リレーショナルデータベースならデータの一意制約から可能だが,EXCEL では自前で作る必要がある.

 色々と挑戦しがいのある課題であった.

“EXCEL VBA で既存のテーブルにネットワークドライブ上の Workbook からデータを追記する” の続きを読む

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

FileSystemObject と VBA の関係

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

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

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

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

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

厚労省「地域ごとのまん延の状況に関する指標等」の PDF から Power BI Desktop でデータを抽出し EXCEL のグラフに表現する

各都道府県の新型コロナウイルス確定患者数の推移

 新型コロナウイルスのパンデミック宣言以降,Twitter でフォローしているアカウントに自然と相互協調の動きがみられる.

 このツイートから始まった一連のやりとりで,厚労省の発表した PDF からテーブルを抽出するくだりに注目した.

 今回はここを画像つきで実施してみた.

“厚労省「地域ごとのまん延の状況に関する指標等」の PDF から Power BI Desktop でデータを抽出し EXCEL のグラフに表現する” の続きを読む

国勢調査から職業別の年齢階級グラフを作ってみた

そもそも電力事業者の従業員数はどれだけなのか?

 ヒントは経済産業省の平成29年度電力市場環境調査にあった.20 ページに就業人員の調査という項目があり,その下に統計データからの推計値がある.

 日本標準産業分類で 331 電気業が 142800 名,日本標準職業分類で 641 発電員・変電員が 32800 名とある.これは 2015 年の国勢調査に基づいている.なら,次は元のデータに当たろう.

“国勢調査から職業別の年齢階級グラフを作ってみた” の続きを読む

PowerPivotで100万件超えのデータを取り出す

「Power Pivot」タブ「データモデル」から「管理」

 EXCEL のワークシートの仕様上,100 万件を超えるデータは扱えない.これは大規模なデータを扱う際の制約である.180万件のデータをPower Queryで処理してEXCELがオーバーフローした話 でも述べたが,この制約を乗り越えてデータをインポートするにはデータモデルに読み込むほかはない.

 SQL Server で PowerQuery が使えればこういった制約を回避できるのだが,ないものは仕方がない.今回は PowerPivot を用いてデータモデルに蓄積したデータを取り出す方法を見つけたので備忘録として記す.

“PowerPivotで100万件超えのデータを取り出す” の続きを読む

はたらくオブジェクト

Range オブジェクト編

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

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

SQL Serverに接続してインポートしたテーブルを結合する

新しいクエリ名が表示されている

 データベースに接続して一つのテーブルをインポートするのは比較的簡単であるが,複数のテーブルを結合した状態でインポートする方法が長らく分からないままだった.

 Power Query を使ってクエリを結合する方法で解決したので備忘録がてら記事とする.

“SQL Serverに接続してインポートしたテーブルを結合する” の続きを読む