本記事では 記事#25 でご紹介したリファクタリング方針に基づき
- マクロ名の変更方法
- マクロ内の不要アクションの削除方法
- CSV ファイルのインポート方法を登録済の手動インポート操作のアクションによる起動方式からしらかば堂の Access VBA 関数ライブラリ ImportCsvFile を利用した手順に変更する方法
について動画を使って紹介します
目次
Access VBA の関数ライブラリを使いCSVファイルをインポートしよう
さて 記事#25
では ここまでに作成してきたバッチファイル、 Access ツールの課題を抽出し、リファクタリングしていく考え方をご紹介しました。
そこで 本記事の対象となる Access ツール 16_01.accdb のリファクタリング項目のみに注目して 記事#25 中のリファクタリング項目を集めると以下のようになっています。
項番 | 解決したい課題 | リファクタリングの方針 |
---|---|---|
4 | デスクトップの整理とツールの名称変更 |
16_01.accdb ⇒ |
8 | 不要な警告ダイアログの抑制 | 未使用につき 16_01.accdb から T0000_東京都コロナ発症状況_マスタ.xlsx エキスポート処理、および関連ダイアログを削除します。 |
11 | ツールからの絶対パス情報を相対パス情報に変更 | 16_01.accdb の ダウンロードフォルダからの 130001_tokyo_covid19_patients.csv インポート処理を しらかば堂のユーザー定義関数(VBA) ImportCSVFileによる相対パス指定に変更します。 |
15 |
日付(400日分)、日付毎の入院者数抽出機能の移動 |
16_01.accdb の T0000_東京都コロナ発症状況_マスタ テーブル に日付(400日分)、日付毎の入院者数抽出機能を移動します。 |
本記事では項番4、8、11に記載されたリファクタリング方針の実現方法について順にご紹介していきます。
リファクタリング方法
この具体的な方法は動画を見たほうがわかり易いので、まず次の動画を何回かご覧ください。
画面をフルスクリーンにしたり、再生スピードを変更して何回か見て頂くことをお勧めします。
|
補足説明
ここでは動画内で削除されたアクション、入れ替えしたアクションの位置づけについて少しだけ補足しておきます。
まずリファクタリング前の autoexe マクロですが
このマクロは以下のように M0000_作成_東京都コロナ発症状況_マスタ マクロを起動したあと Access を終了 するようになっていました。
そしてその M0000_作成_東京都コロナ発症状況_マスタ マクロは以下のようになっていました。
つまりこのマクロの先頭部分で 記事#15 で手動作成した「個人のPCフォルダ名が直接記述される」以下の保存済みのインポート操作を呼び出しており
またこのマクロの後半部分では 記事#14 で手動作成した「個人のPCフォルダ名が直接記述される」保存済みのエクスポート操作、およびその関連メッセージボックスが記述されていたわけです。
今回これらの「個人のPCフォルダ名が直接記述される」部分をツールから排除するというリファクタリングの方針に基づき、これらを削除したわけです。
一方変更後の autoexec マクロでは 後述の しらかば堂のオリジナルVBA関数 ImportCsvFile を起動する M0010_Call_ImportCsvFile マクロを起動してこれを実施するように変更してました。
ImportCsvFile の組み込み方法
VBA 実装部分
この関数を Access に組み込む際は
リボンメニューの
データベースツール > Visual Basic
を順にクリックして VBE(Visual Basic Editor) を起動し
VBE のメニューから
挿入(I) > 標準モジュール(M)
を順にクリックして標準モジュールを挿入し
現れたコードウインドウに
から VBAコードをコピーし、VBEのコードウインドウにペーストし、さらにオブジェクトの参照設定で EnjoyTech 等の参照設定を行ってVBEを閉じ、このマクロを
M0010_Call_ImportCsvFile マクロとして保存することでこの
ImportCsvFile 関数を組み込んでいます。
マクロ 実装部分
そしてこのM0010_Call_ImportCsvFile マクロを呼び出すための autoexec マクロをマクロビルダ画面を使って
つまり次のように記述し呼び出しています。
ImportCsvFile("Downloads\130001_tokyo_covid19_patients.csv","130001_tokyo_covid19_patients",True,True)>0
If文の最後
Accessの終了
このこのM0010_Call_ImportCsvFile マクロが ImportCsvFile を呼び出すためのパラメータは以下のようになっています。
パラメータ番号 | 記述されたパラメータ値 | 説明 |
---|---|---|
1 | “https://stopcovid19.metro.tokyo.lg.jp/ data/130001_tokyo_covid19_patients.csv” |
インターネット上からダウンロードしたいCSVファイルのURLを指定しています。 |
まとめ
いかがでしたか?
本記事では 記事#25 でご紹介したリファクタリング方針に基づき
- マクロ名の変更方法
- マクロ内の不要アクションの削除方法
- CSV ファイルのインポート方法を登録済の手動インポート操作のアクションによる起動方式からしらかば堂の Access VBA 関数ライブラリ ImportCsvFile を利用した手順に変更する方法
について動画を使いながら紹介しました。
次の記事では 16_01.accdb に対する残りのリファクタリング項目の方法について具体的に紹介します。
項番 | 解決したい課題 | リファクタリングの方針 |
---|---|---|
15 |
日付(400日分)、日付毎の入院者数抽出機能の移動 |
16_01.accdb の T0000_東京都コロナ発症状況_マスタ テーブル に日付(400日分)、日付毎の入院者数抽出機能を移動します。 |
さてこの記事全体の目標は
- 今の状況から抜け出してもっと前向きな仕事に取り組みたい
- さっさと仕事を切り上げて充実したアフターファイブを過ごしたい
でしたよね。
あなたの解決したい問題は何ですか?
次回はまた
で Access VBA の新しい窓を開きましょう。
Microsoft Access 関連教材は次のリンクからどうぞ。
いつも記事を読んで頂きありがとうございます~
今日の調子はいかがですか?