本記事では 記事#24 で紹介したAccessによる Excel ブック間でのデータコピーツール 23_01.accdb をリファクタリング(改善)し、この中でしらかば堂のライブラリ ExportInputBookToOutputBook を3回呼び出し、東京都コロナウイルスに関連した3組のグラフ描写用入力データ用Excelブック
この記事ではこのリファクタリング項目のうち内容が自明な項番2、項番6を除き、項番10、項番14について簡単に紹介します。
目次
修正前Autoexec マクロの内容
まず以下はリファクタリング(改善)前の 23_01.accdb 内で定義されていた autoexec マクロです。
If ExportInputBookToOutputBook("Documents\Desktop\T1040_日付_退院者数_入院者数_退院率.xlsx","T1040_日付_退院者数_入院者数_退院率","$A$1:$D$401","Documents\Desktop\T1040_日付_退院者数_入院者数_退院率_グラフ.xlsx","T1040_日付_退院者数_入院者数_退院率","$A$1:$D$401")>0
If文の最後
のように ExportInputBookToOutputBook を使って下記グラフ
の描画用データのコピーを目的として前処理で作成された
Documents\Desktop\T1040_日付_退院者数_入院者数_退院率.xlsx
の T1040_日付_退院者数_入院者数_退院率 シートの セル $A$1:$D$401 範囲を
Documents\Desktop\T1040_日付_退院者数_入院者数_退院率_グラフ.xlsx
の同名のシートの同範囲にコピーしています。
修正後Autoexec マクロの内容
これに対し以下は項番14実施後の 23_01.accdb 改め
%USERPROFILE%\Tools\accdb\更新_東京都コロナ感染者分析グラフ_xlsx.accdb
内の autoexec マクロの内容です。
不要メッセージボックスを削除する
まずリファクタリング(改善)前の 23_01.accdb の中の autoexec マクロ内で赤線で囲まれた部分は処理の終了を利用者に伝えるためのメッセージボックスですが、項番10を実現するためこれを削除しています。
東京都コロナウイルス入院者数と退院者数比率推移グラフ描画用データのコピー元とコピー先のフォルダ修正
次にまず最初のアクション
If ExportInputBookToOutputBook("Tools_Data_Temp\xlsx\T1040_日付_退院者数_入院者数_退院率.xlsx","T1040_日付_退院者数_入院者数_退院率","$A$1:$D$401","Tools_Data_Temp\xlsx\T1040_日付_退院者数_入院者数_退院率_グラフ.xlsx","T1040_日付_退院者数_入院者数_退院率","$A$1:$D$401")>0
If文の最後
の中で先ほどと同様に以下のグラフ
の描画用データのコピーを目的として前処理で作成された
Tools_Data_Temp\xlsx\T1040_日付_退院者数_入院者数_退院率.xlsx
の T1040_日付_退院者数_入院者数_退院率 シートの セル $A$1:$D$401 の範囲を
Tools_Data_Temp\xlsx\T1040_日付_退院者数_入院者数_退院率_グラフ.xlsx
の同名のシート範囲にコピーしています。
つまりここでは 23_01.accdb の中でデスクトップにおいていた描画用データファイルと、グラフ描画用のテンプレートファイルの保存フォルダを
で定義されているように %USERPROFILE% からの相対パスで Documents\Desktop (つまりデスクトップ)から Tools_Data_Temp へ変更している訳です。
東京都コロナウイルス男女別入院者数推移グラフ描画用データのコピー処理追加
続いて2番目のアクション
If ExportInputBookToOutputBook("Tools_Data_Temp\xlsx\T2040_日付_女性入院者数_男性入院者数.xlsx","T2040_日付_女性入院者数_男性入院者数","$A$1:$C$401","Tools_Data_Temp\xlsx\T2040_日付_女性入院者数_男性入院者数_グラフ.xlsx","T2040_日付_女性入院者数_男性入院者数","$A$1:$C$401")>0
If文の最後
では
の描画用に以降の記事で紹介予定のツール
作成_T2040_日付_女性入院者数_男性入院者数_xlsx.accdb
を使って作成される
Tools_Data_Temp\xlsx\T2040_日付_女性入院者数_男性入院者数.xlsx
の T2040_日付_女性入院者数_男性入院者数 シートの セル $$A$1:$C$401 範囲を
Tools_Data_Temp\xlsx\T2040_日付_女性入院者数_男性入院者数_グラフ.xlsx
の同名のシート範囲にコピーしています。
東京都コロナウイルス世代別入院者数推移グラフ描画用データのコピー処理追加
最後に3番目のアクション
If ExportInputBookToOutputBook("Tools_Data_Temp\xlsx\T3200_日付_年代別入院者数.xlsx","T3200_日付_年代別入院者数","$A$1:$L$401","Tools_Data_Temp\xlsx\T3200_日付_年代別入院者数_グラフ.xlsx","T3200_日付_年代別入院者数","$A$1:$L$401")>0
If文の最後
まとめ
いかがでしたか?
本記事では 記事#24 で紹介したAccessによる Excel ブック間でのデータコピーツール 23_01.accdb をリファクタリング(改善)し、東京都コロナウイルスに関連した3組のグラフ描写用入力データ用Excelブックをグラフ描画用のテンプレートとして準備したExcelブックにデータコピーするツール 更新_東京都コロナ感染者分析グラフ_xlsx.accdb に機能追加する様子について紹介しました。
さて次の記事は少し趣向を変えてバッチファイル から Cygwin の bash を実行し
東京都_新型コロナウイルス陽性患者発表詳細 に関連した 2つのCSVファイル を結合する方法を紹介します。
さてこの記事全体の目標は
- 今の状況から抜け出してもっと前向きな仕事に取り組みたい
- さっさと仕事を切り上げて充実したアフターファイブを過ごしたい
でしたよね。 あなたの解決したい問題は何ですか? 次回はまた
で 新しい窓を開きましょう。
Microsoft Access 関連教材は次のリンクからどうぞ。 Access VBA 関連教材の紹介
いつも記事を読んで頂きありがとうございます~
今日の調子はいかがですか?