以下のような検索キー列がユニークであるテーブルからデータを取得したい(VLOOKUPみたいなイメージ)場合、処理回数が多いと WorksheetFanction.Vlookup
やFor文での線形探索では時間がかかり過ぎる。
そんなときに役立つのが連想配列(Dictionaryオブジェクト)。
配列のようにインデックス番号からデータを取り出すのではなくキーの完全一致で要素を取り出せるので、処理が理解しやすいかつ高速であることが最大の利点。
続きを読む
以下のような検索キー列がユニークであるテーブルからデータを取得したい(VLOOKUPみたいなイメージ)場合、処理回数が多いと WorksheetFanction.Vlookup
やFor文での線形探索では時間がかかり過ぎる。
そんなときに役立つのが連想配列(Dictionaryオブジェクト)。
配列のようにインデックス番号からデータを取り出すのではなくキーの完全一致で要素を取り出せるので、処理が理解しやすいかつ高速であることが最大の利点。
続きを読む
バッチファイルで自分自身をタスクスケジューラに登録して再起動後も実行させようと思っても「コンピューターを AC電源で使用している場合のみタスクを開始する(P)」という項目がONの場合はノートPCが電源に接続されていない状態だとタスクを実行してくれない。
しかし、タスクスケジューラを操作できる schtasks
コマンドで変更可能な項目は限られており、この項目もコマンドでは変更不可能なためどうしたものかと調べていたらxmlを直接操作することで変更できたのでご紹介。
function disableOnlyRunAc-Task($taskName){ $taskXml = [xml](schtasks /query /tn $taskName /xml) $taskXml.Task.Settings.DisallowStartIfOnBatteries = "false" $taskXml.Save("C:\tempTask.xml") schtasks /delete /tn $taskName /f schtasks /create /tn $taskName /xml "C:\tempTask.xml" Remove-Item "C:\tempTask.xml" } # コンピューターをAC電源で使用している場合のみタスクを開始するを無効化 disableOnlyRunAc-Task "<タスク名>"
※管理者権限での実行が必要
※xmlの操作を楽にするためにPowerShellを使用
続きを読む多分生まれつきとにかく楽をしたい気持ちが強いが、GoogleアシスタントとAlexaなどの音声アシスタント、超小型の低消費電力コンピュータのRaspberry Pi、便利なIoTデバイスの登場がそれに拍車をかけた。
もしかしたら誰かの参考になるかもしれないので晒してみる。
Invoke-Command
や Invoke-Expression
なども考えられるが、今回の例に最も適しているであろう「スプラッティング」という方法を用いる。
以下のようなCSVをもとに配布リストの作成とメンバーの登録を同時に実行したいとする。
"address","members" "sample1@codelife.cafe","alice@codelife.cafe,bob@codelife.cafe" "sample2@codelife.cafe","alice@codelife.cafe,bob@codelife.cafe"
これでいけると思いきや alice@codelife.cafe,bob@codelife.cafe
というアドレスは存在しないとエラーが発生する。
$groups = Import-Csv "sample.csv" foreach($group in $groups) { New-DistributionGroup $group.Address $group.member }続きを読む
Slackのログを分析するときは管理画面から一括ダウンロードするのが早い。しかし、出てくるデータはチャンネルごとにフォルダがバラバラかつ日付ごとにバラバラのJSONファイルとして出てくる。
CSVならあまり頭を使わなくてもそのまま開いたり、日付ごとのファイルでもbatで統合するなりすればいいがJSONファイルをExcelで扱うにはPowerQueryが最適。VBA-JSONを使う手もあるが、初心者向けではない。
Slackの管理画面https://<ワークスペース名>.slack.com/admin/settings
にアクセスし、画面右上の「データのインポート/エクスポート」をクリック。
続きを読む