自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

Powershellスクリプトを実行するだけでWindows10を自動的に最新状態にしたい

前回のWindows10Upgrade自動化スクリプト と組み合わせて通常のWindowsUpdate含め全自動でWindows10を最新状態にしたい。 ということで欲しい機能を色々まとめたものを作ったのでGithubにアップしております。 github.com 概要

Windows10 1909→2004のアップグレードを完全自動化するPowershellスクリプト

最新バージョンのインストーラからSetup.exeを取り出して引数に /auto upgrade を渡すことでFeature Updateも実行可能だったけど、インストーラ用意するのすら面倒。 www.ka-net.org どうにかPowerShellのコマンドだけで出来ないか調べてみていたとき、検索…

LINEボットにメッセージを送ったら特定メンバーに転送する アナウンスボットをGASだけで作ってみた2(GASライブラリを使う)

codelife.cafe 前回作成したメッセージ転送LINE bot 「Message Broker」ですが、GAS用のライブラリを作ってくれている方がいたので試してみました。 最終更新が約2年前なので大丈夫かなと思いましたが使えました。 github.com ライブラリを読み込み リソース…

LINEボットにメッセージを送ったら特定メンバーに転送する アナウンスボットをGASだけで作ってみた

GAS

会社の同僚からこんなのできるー?とお題を頂いたので2時間くらいで作ってみました。 MQTTみたいだなと思ったので用語をそっちに合わせてみた。 2020/10/03 追記 GASライブラリ利用パターンもやってみました。 codelife.cafe 動作概要 構築手順 1. LINE bot…

Slackへの投稿をRaspberry Pi×Node-REDでAlexaとGoogleに読み上げてもらう④ - Google Homeを喋らせるのは簡単

前回はSlackの特定チャンネルに投稿したらAlexaが読み上げるという状態にするため、Slack Botの作成、ngrokで公開するところまでを行いました。 今回は Google Home / Google Home mini / Google Nest なども喋れるように「node-red-contrib-cast」モジュー…

Slackへの投稿をRaspberry Pi×Node-REDでAlexaとGoogleに読み上げてもらう③ - Slack Botとngrok導入

Alexaを喋らせるだけならGCPの永久無料枠を使うのも良いなと思ったけどGoogle Home Miniしか置いていない部屋もあるのでChromecastによる発話も対応するためにRaspberry PiでNode-RED環境を構築します。ちょっと長くなるので全4回の予定。 前回 Slack Botを…

Slackへの投稿をRaspberry Pi×Node-REDでAlexaとGoogleに読み上げてもらう② - Alexa用モジュール追加

Alexaを喋らせるだけならGCPの永久無料枠を使うのも良いなと思ったけどGoogle Home Miniしか置いていない部屋もあるのでChromecastによる発話も対応するためにRaspberry PiでNode-RED環境を構築します。ちょっと長くなるので全4回の予定。 前回 Node-REDの管…

Slackへの投稿をRaspberry Pi×Node-REDでAlexaとGoogleに読み上げてもらう① - Node-RED初期設定

Alexaを喋らせるだけならGCPの永久無料枠を使うのも良いなと思ったけどGoogle Home Miniしか置いていない部屋もあるのでChromecastによる発話も対応するためにRaspberry PiでNode-RED環境を構築します。ちょっと長くなるので全4回の予定。 インストールは公…

Windows10のパッケージ管理にScoopを使ってみる

Scoopは、Windows用のコマンドラインインストーラー。 github.com github.com gitをインストールするとしたら scoop install git のようにコマンド入力するだけで完了できるので環境構築がかなり楽。Chocolateyが有名だがScoopはレジストリを汚さないポータ…

GoogleスプレッドシートのQUERY関数でCONCATが使えない件

今回やりたかったこと ちょっとトリッキーなやり方 WHEREとか使わない、ただ配列参照で結合したい場合 中間テーブルを作ることになっても良い場合 参考になったページ 脱線してたまたま見つけたけど便利そうな情報 Googleスプレッドシートには QUERY関数とい…

WindowsのSSIDごとにWi-Fi接続先の優先順位を設定するにはnetshコマンド

Wi-Fi接続して使っているときたまにあるのが「そっちじゃなくてこっちのアクセスポイントに接続して欲しいんですけど!」ってやつ。 過去の接続回数とかから自動的に優先順位を決めて接続しているらしいけどそれを設定画面上から操作する手段がない。 どうや…

Power Queryで相対的な日付範囲フィルタを設定する計算式チートシートと解説

ExcelやPower BIでデータを取り込み・集計する際には前処理としてPower Queryでデータ型を定義したり、複数のデータテーブルを統合・結合したり、不要なデータを削除したりするわけですが、相対的な日付範囲のフィルタ(例えば当月末以前など)は詳細エディ…

【Hyper-V入門】Windows10 Proで使える仮想マシン環境 Hyper-V に評価版のWindows10をインストールしてみた

Windows 10 Pro で利用可能な機能 Hyper-V。 今まで仮想マシンはOracle Virtual Boxを使っていましたが、BitLockerの動作検証が必要になったため、仮想TPMが利用可能なHyper-Vを試してみました。 ※Windows 10 Pro または Enterpriseライセンスが必要です。Ho…

Windows10のサンドボックス機能を試してみる

フリーソフトの検証などの際に現環境にインストールしてしまうとレジストリが汚れるとか、いらないファイルやフォルダが大量に生成されて邪魔だとか、別のソフトとの相性によって正常に動かないとか、様々な問題があって検証するのに無駄な時間を使ってしま…

PowerShellの実行結果をMicrosoft Teamsでbotに自動投稿させるのは割と簡単

Slackでは着信Webhookインテグレーションでチャットに投稿させるが、実はMicrosoft TeamsでもIncoming Webhookコネクタがあり、同じことが簡単に出来るというお話。

For文での線形探索より高速 VBAで連想配列 Dictionaryオブジェクト

以下のような検索キー列がユニークであるテーブルからデータを取得したい(VLOOKUPみたいなイメージ)場合、処理回数が多いと `WorksheetFanction.Vlookup` やFor文での線形探索では時間がかかり過ぎる。 そんなときに役立つのが連想配列(Dictionaryオブジ…

タスクスケジューラのxmlをコマンドで直接編集してバッテリーモードでも実行させる

バッチファイルで自分自身をタスクスケジューラに登録して再起動後も実行させようと思っても「コンピューターを AC電源で使用している場合のみタスクを開始する(P)」という項目がONの場合はノートPCが電源に接続されていない状態だとタスクを実行してくれな…

自宅で開発・導入しているIoT機器や機能を晒してみる

多分生まれつきとにかく楽をしたい気持ちが強いが、GoogleアシスタントとAlexaなどの音声アシスタント、超小型の低消費電力コンピュータのRaspberry Pi、便利なIoTデバイスの登場がそれに拍車をかけた。 もしかしたら誰かの参考になるかもしれないので晒して…

New-DistributionGroup のMembers引数に配列を渡したいときはハッシュテーブルスプラッティング

`Invoke-Command` や `Invoke-Expression` なども考えられるが、今回の例に最も適しているであろう「スプラッティング」という方法を用いる。

Slackのログ(JSONファイル)をExcel PowerQuery だけでなるべく楽に解析

CSVならあまり頭を使わなくてもそのまま開いたり、日付ごとのファイルでもbatで統合するなりすればいいがJSONファイルをExcelで扱うにはPowerQueryが最適。VBA-JSONを使う手もあるが、初心者向けではない。

Google Home と IFTTT を使って忘れ物チェック機能を作る

Google Home 便利ですが、その機能をフル活用出来ず眠ったままになっている人も多いハズ。 「色々できるようにするにはIoT対応の家電を買ったり、プログラムを書いたり、サーバを作ったりが必要なんでしょ?」と思うかもしれませんが、単体でも出来ることの…

Chatworkの投稿内容をGoogleスプレッドシートに自動で反映させる

GAS

qiita.com 思いの外簡単そうだったのでこれをやってみる。 用意するもの Googleスプレッドシート Chatwork ざっくり手順 スプレッドシート作成 スクリプトエディタでdoPostとJSONパーサを記述 スクリプトAPI公開 ChatworkでWebhookを作成してスクリプトのURL…

CSVファイルの数字と日付データからのみダブルクォートを削除するsedコマンド

sedコマンドええやん! メモっとかないと絶対忘れるので記録。 # 整数と浮動小数点数のダブルクォーテーションだけを削除するsedコマンド echo -e "\"id\",\"item\",\"price\",\"taxrate\",\"total\"\n"\ "\"0001\",\"apple\",\"1000\",\"1.08\",\"1080\"\n"…

【VBA/VBScript】HTML特殊文字コードから16進数を抽出→10進数に変換してデコードする

CSV形式でダウンロードしたデータの一部が文字化けしていて困ってるという相談を受けて、「読み込み時のエンコード指定の問題でしょw」と見てみると部分的にHTMLエンコードされている謎のCSV・・・。 これに対応すべく部分的なHTMLエンコード文字をデコード…

【ExcelVBAでスクレイピング入門】Googleで検索順位を自動取得してみる④ ~2ページ目以降も取得する~

第三回では複数キーワードを順番に検索してExcelシートにキーワード、検索順位、ページタイトルを入力するところまでできました。 code-life.hatenablog.com 今回は検索結果一番下にある「次へ」を押していく機能です。 これが実装できれば1キーワード100位…

【ExcelVBAでスクレイピング入門】Googleで検索順位を自動取得してみる③ ~複数キーワードの検索とデータ取得~

第二回では1キーワードを検索してExcelシートにキーワード、検索順位、ページタイトルを入力するところまでできました。 code-life.hatenablog.com code-life.hatenablog.com 今回やっていくのは以下の内容。ここまでできれば検索結果のスクレイピングとして…

【VBA】querySelectorAllで取得した要素に対してForEachを使うと謎のエラーが発生する

この記事でできるようになること querySelectorAllで取得したコレクションに対してループ処理 ExcelVBAでWebページから情報を自動収集(スクレイピング)する時に超便利なメソッド querySelectorとquerySelectorAll 。 CSSセレクタがそのまま使えて超便利だ…

【ExcelVBAでスクレイピング入門】Googleで検索順位を自動取得してみる② ~キーワードを検索して結果をシートに書き込む~

第一回ではGoogleを表示するところまででしたが、今回はスクレイピングの肝となるデータを抜き出す部分です。 もうちょっと間空けて投稿しようかと思ったけど勢いで公開。ここらへんまでやらないと面白くないもんね。 code-life.hatenablog.com 前回までのお…

【ExcelVBAでスクレイピング入門】Googleで検索順位を自動取得してみる① ~IEを開く、待つ、閉じるまで~

スクレイピングとは? ウェブスクレイピング。ウェブサイトのHTMLから欲しい情報を指定して取得すること。 簡単に言うと手作業でウェブサイトからExcelにデータをコピペコピペコピペ・・・という地獄の作業を自動化してしまおうというものです。最近流行りの…

ExcelVBAからパスワード付き圧縮コマンド(7-zip/Lhaplus)を実行する

ExcelVBAからパスワード付き圧縮コマンド(7-zip/Lhaplus)を実行する この記事でできるようになること コマンドでファイルをパスワード付きZIP圧縮 ExcelVBAからcmd.exeにコマンドを渡す 毎日の作業を楽にするべくExcelVBAで作ったメール一括送信ツール。しか…