まず指定時刻に自動で上書き保存して終了したいエクセルのファイルを起動します。次に「開発」タブから「Visual Basic」をクリックします。
次に「挿入」タブから「標準モジュール」をクリックします。
次に標準モジュールにこのファイルを上書き保存して終了するプロシージャを下のように追加します。
次に「ThisWorkbook」をダブルクリックします。
下の画像のように(General)のところをクリックし、Workbookを選択します。
そうすると、Workbook_Openプロシージャが自動的に作成されるので、それを次のように編集します。
このファイルを上書き保存して一旦終了します。その後、このファイルをもう一度開きます。そうすると、10時ちょうどに自動的にWorkbook_Save_Closeプロシージャが実行され、上書き保存されて終了します。
もしEasyTaskSchedulerを使用して10時より前の指定時刻にブックを起動させれば、ファイルの起動から上書き保存、終了まで、全て自動で実行できます。
EasyTaskSchedulerについては Easy Task Schedulerとはをご覧ください。
EasyTaskSchedulerのダウンロードは下のリンクからどうぞ。↓
2022年3月14日16:48
カテゴリ: プログラミング
タグ: Excel VBA,
RaspberryPiなどのセキュリティカメラ用途として、OpenCVとPythonでカメラ撮影した画像を、定期的に指定の時刻に自動で動画にして、Googleドライブに自動でアップロードする方法をいろいろと調べてみたのですが、PythonのScheduleというモジュールを使うと簡単にできることがわかったので、実装しました。
Scheduleモジュールの使い方ですが、下のように特定の関数を10分ごとや1時間ごとに実行したり、特定の曜日や時間に実行することができます。↓ schedule.run_pendingは1回の呼び出しで1回のジョブしか実行されないので、何回も繰り返しで実行したいときは無限ループ内で呼び出す必要があります。
引数を渡して実行するときは下のようにします。↓
GoogleドライブへのアップロードはGoogle Drive APIを使用します。Google Drive APIを使用するにはGoogle Developer Consoleから認証情報を取得する必要があります。Google Drive APIをPythonで使うにはPyDriveというモジュールをインストールします。「Google Drive API 有効化」や「Google Drive API Python」などの単語で検索すると参考になるサイトがたくさんあります。Googleドライブへのアップロード用には下の関数を作成しました。↓ アップロード先のフォルダのフォルダIDは環境変数から取得するようにしました。
コード全体は下の通りです。↓
複数の画像ファイルから動画を作成する関数make_video_from_imageとGoogleドライブに動画ファイルをアップロードする関数upload_to_google_driveと指定したフォルダを削除後再作成する関数delete_all_filesを指定の時刻に実行するようにしました。Scheduleモジュールについて詳しくは下のサイトを見てください。↓
https://schedule.readthedocs.io/en/stable/
2020年3月18日18:14
カテゴリ: プログラミング
タグ: Python, Raspberry Pi, OpenCV,