officeの杜

Google WorkspaceやMicrosoft365に関する、実務に直結するテク…

officeの杜

Google WorkspaceやMicrosoft365に関する、実務に直結するテクニックや業務自動化手法を紹介しています。実際に現場でGoogle Apps ScriptやNode.js、VBAといった言語での開発、それにまつわるコードをウェブサイトで公開中

最近の記事

GASでPDFを操作するあれこれ

GASでPDF生成は昔から利用されてきた鉄板のテクニックですが、V8エンジン搭載後はさらに色々なことが出来るようになりました。それらPDF生成や操作を色々まとめてみました。 ここに掲載されてるもの以外でもまだまだ色々出来るので、自分のアプリに装備していきたい機能です。 普通にPDFを生成する方法GASからは通常使えなかったスプレッドシートの機能としてのPDFエクスポートをUrlfetchAppを利用してPDF化という最もよく利用されてるテクニックです。getAsで出力とい

    • GASとGoogle ChatとchatGPTと

      Google Chat用のチャットボットを以前作ってあったのですが、つい最近リリースされた人工テキストAIである「chatGPT API」を組み込んで、Google Chatで問い合わせのできるチャットボットを作ってみました。 事前準備APIキーを手に入れる こちらのページにアクセスして、APIキーが取得出来る。$18分の無償枠が利用可能。開発するリファレンスはこちら 1単語のリクエスト1回、レスポンス1回でそれぞれカウントされる。実際にはこの他にGCP側でGoogle

      • GASで連絡先を操作する - 最新版

        ContactsAppの廃止2022年1月、Google Apps Scriptで連絡先を操作するContactsAppが廃止されてしまいました。その結果として、GASから簡単に連絡先ことGoogle Contactsを操作することが出来なくなってしまいました。 代わりにREST APIとして利用できていた「People API」がGASのAdvanced Serviceにあるのでこれを利用して操作する必要があります。予め、サービスからPeopleapiを追加しておきましょ

        • GASでSVGを使った座席管理アプリを作る

          使いドコロと使う理由使い所 SVGで自由自在にレイアウトを構築することが出来、単純なHTMLとCSSよりも直感的にアプリケーションを使って構築が可能です。このSVG画像を使うことで フリーアドレス対応の座席管理アプリの構築 様々な予約管理システムの構築 センサーデータと連携して、作物の監視状況の可視化 グラフィカルなサイトマップの作成 などなど応用が可能です。通常の画像とライブラリで作るよりも遥かに手軽で、大きさがスケールし、JSで操作も出来、SVGであるためクリ

        GASでPDFを操作するあれこれ

          VBA・VBSでExcel操作をオススメする理由

          事務の現場での業務自動化が急務として今盛んにRPAやらローコード、ノーコードの話題が出ています。しかし、経理や給与計算といった事務の現場でこれらを導入するには障害があるだけでなく、中には悪質な事例もあるため、ここでまとめておこうと思います。 RPAでExcel操作昔よりだいぶマシになったとは言え、各種RPAツールで、Excelの操作をするに当たって、いわゆる「マウス操作を記録した操作の再現」をよく見かけます。 完全に画像認識や画面のXYの座標認識で、操作を模倣してるやり方で

          VBA・VBSでExcel操作をオススメする理由

          VBA・マクロが既定でブロックされました

          2022年4月にMicrosoft OfficeのVBAおよびマクロの実行に関して、2013〜のバージョン全てに対して、既定でブロックするアプデが配信されています。結果、これまで社内で普通に利用できていたVBAとマクロが、突如として動作しなくなります。 ことの発端は、Emotetが流行しいよいよMicrosoftも現状の改善に踏み出した結果なのですが、かといって完全動作しないでは困ります。実際今回の対処は、完全封鎖の為ではなく、より一層のセキュリティの強化の為であり、VBA

          VBA・マクロが既定でブロックされました

          PowerAppsでタイムレコーダを作る

          概要Microsoft365にあるPowerAppsは、ノーコードでExcelなどを土台にアプリを作ることが可能です。今回のようなアプリを社内で作る事によって、余計な外部ウェブサービスに1名当たり何百円も支出を永遠に固定費として出す必要はなくなるので、非常に利点があります。 タイムレコーダを今回は作ってみました。ちなみに今、無償でできる Power Apps 特別版が配布されています。 作ってみるOneDrive Business側 Excelファイルを用意。ここに打刻

          PowerAppsでタイムレコーダを作る

          Google Apps ScriptでClass構文を使う

          概要V8ランタイムが使えるようになってから、Google Apps Scriptでそれまで利用できなかったClass構文が使えるようになりました。単純な関数だけで構築していたコードを、オブジェクト指向な感じでGASを書けるようになったので、コードの再利用性や冗長な処理をより簡便な書き方で作ることが可能です マイクロサービスな用途の多いGASですが、規模の大きなアプリを構築する場合には、Class構文のある無しはその後のメンテナンス性にも大きく影響する為、ぜひ身につけておきた

          Google Apps ScriptでClass構文を使う

          Power Queryで2つのシートの差分を抽出

          Power Queryを使いましょう概要 Power Queryにてノーコードで2つのシートを比較して、異なってるセルの値をリストの形式で抽出するテクニックです。一度作ってしまえば、後は2つのシートの中身を入れ替えて、右クリック⇒更新するだけで作業が完了するので、RPAを用いずに業務の自動化を実現可能です。 Power Query1つ出来る出来ないで大きな差になり、事務職の人にとって大きな武器の1つになると思います。 今回はPower Queryの以下の機能を利用してい

          Power Queryで2つのシートの差分を抽出

          PlaywrightでFirefoxを自動化するテクニック

          PlaywrightについてPuppeteerと互換性がありつつも、独自の発展もしているブラウザを自動操縦する為のライブラリがこのPlaywright。 PuppeteerがChromeをターゲットにしてるのに対して、こちらはFirefoxやSafariも操作する事が可能 ただ、完全互換ではなく方向性の違い故にメソッドやテクニックが異なるものがあるので、注意が必要。 SeleniumやPower Automate Desktopなどブラウザ操作をするものが増えてきています

          PlaywrightでFirefoxを自動化するテクニック

          Google Apps ScriptでGA4のデータを取得する

          Google Analyticsのデータを取得する概要 Google Analyticsが2023年7月に大きく変更されて、現在のAnalyticsが廃止されます。現時点ではまだ取れる指標がショボいので、大丈夫かな・・・と心配になりますが、このデータをGASで取得してみます。 簡単なやり方 以下のような手順になります GA4のプロパティIDを取得しておく スクリプトエディタにサービスとしてGoogle Analytics Data APIを追加 コードとしてMet

          Google Apps ScriptでGA4のデータを取得する

          M1 MacのUTMで色々なOSを動かす

          UTMについて概要 M1 Macになってから、VMware Fusionが無くなり、VirtualBoxが動かなくなり(x86用の仮想環境なので当たり前)、Parallels Desktopだけが唯一まともに利用できる仮想環境になっています。 しかし、ParallelsはCPUエミュレーションを行っているわけではないので、x86時代のOSは動きません。 そこで利用するのが、UTM。オープンソースで開発されていて、Qemuベースのエミュレータなのでx86だけでなく、Pow

          M1 MacのUTMで色々なOSを動かす

          Arrayformula関数でAND・ORを使う

          問題点Googleスプレッドシートの配列関数であるArrayformula関数 A2:AといったようなA2以下全部みたいな、範囲が固定化されていない指定方法と条件判定を組み合わせるとオカシナ挙動になります(固定化されていれば、以下の数式でも問題なく計算されます)。 例えば以下のような場合、想定した計算がされない上に、0が下の方にずーっと並びます =arrayformula(if(or(A3:A="A社",A3:A="B社"),B3:B+C3:C,B3:B)) このケー

          Arrayformula関数でAND・ORを使う