次は、集計ボタンを押したとき、集計データ.csvを開き、自動集計アプリにコピペする処理を記述します(リスト1)。
Option Explicit '集計ボタンを押したときに動作する Sub ボタン1_Click() Dim dataSheet As Worksheet 'ベースのデータシート Dim copyWb As Workbook '外部データのワークブック Dim copySheet As Worksheet '自動集計アプリのワークシート Dim rowMax As Long '最大行数 Dim File As Variant Set dataSheet = Sheets("Sheet1") 'CSVファイルを開く File = Application.GetOpenFilename( _ FileFilter:="CSVファイル,*.csv,全てのファイル,*.*", _ FilterIndex:=1) 'キャンセルを押した場合はプログラム終了 If File = False Then ' MsgBox "プログラムを終了します" Exit Sub End If '外部データのファイルを開く Set copyWb = Workbooks.Open(Filename:=File) '外部データのシートを設定 Set copySheet = copyWb.Worksheets(1) '外部データの最大列数を取得 rowMax = copySheet.Cells(Rows.Count, 1).End(xlUp).Row 'A1からB列の最大行数分のデータをコピーする copySheet.Range("A1:B" & rowMax).Copy '自動集計アプリにデータを貼り付ける dataSheet.Cells(1, 1).PasteSpecial xlPasteValues ' 開いた外部データをクローズする copyWb.Close False End Sub
リスト1は、集計アプリのプログラムです。これでコピペ作業が実行できます。なお、エラー処理など考えると不十分なので、あくまでも参考例としてお考えください。
実行結果を確認してみましょう。
先ほど作成した「集計」ボタンを押下します。すると、図11のファイルダイアログが開きます。
図11のファイルダイアログで、「集計データ.csv」を選択し、「開く(O)」を選択します。選択後、裏側でVBAが一瞬だけ動作します。
集計アプリを確認してみましょう(図12)。
図12のように集計データ.csvが自動でコピーされていることが分かります。これで、外部のCSVデータを集計アプリにコピペすることができました。
今回は、自作ツールの例題として、CSVファイルをコピペする自動集計アプリを作成しました。自作ツールを作成することで、定型的な業務が効率化できると、定時に帰りやすくなります。
組み込み系の開発でも、データ整理作業はテスト工程でたくさんあります。例えば、機器のログをCSVで出力し、評価用のExcelに貼り付け、テスト結果を判定する場合です。ほとんどの人は、オリジナルの集計ツールを作っていますが、ごくたまに手作業でデータの転記作業をやっている人を見かけます。もし、より業務を効率化したいと考えるならば、何らかの自作ツールを使用してみてはいかがでしょうか。
前々シリーズ「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。
前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。
両書とも興味のある方は、Amazon.comや書店でチェックしてください!
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.