DIGIHOLIC LIFE

楽しく働き、楽しく生きるを目指して、毎日ぼちぼちやってます。会社はじめたので、バックオフィス仕事に追われつつ、元来のオタク気質を発揮して、クラウドサービス使ったり、ローコード・ノーコードツールで、手抜きの工夫をする毎日です。飲兵衛で美味しいもん好き。

DIGIHOLIC LIFE

楽しく働き、楽しく生きるを目指して、毎日ぼちぼちやってます。会社はじめたので、バックオフィス仕事に追われつつ、元来のオタク気質を発揮して、クラウドサービス使ったり、ローコード・ノーコードツールで、手抜きの工夫をする毎日です。飲兵衛で美味しいもん好き。

マガジン

最近の記事

Pythonのライブラリwebdriver-managerのconda install でつまづいた

パソコンを買い替えました。 IntelベースのMacからM1 Macになったのですが、M1はPythonの環境構築がムズカシイみたいな話をネットで見ていました。 ドキドキしながらも以下のサイトも参考にAnacondaをインストール。発売から時間が経過しているからか?特に問題なさそうにAnacondaのインストールができました。 新しい環境でのスタートということもあって、pipとcondaの混ぜるな危険をより意識するように。 お仕事的には、PythonはとにかくSelen

    • JavaScriptでネストされたオブジェクトをフラットにする関数

      今日も元気にノンプロ研でGAS(Google Apps Script)勉強中です。 このnoteは、自分がわからなくなって2度調べたことなどを備忘録的に綴っています。 ネストの深いJSONデータをフラット化したいWeb APIでデータを取得などしているとネストの深いJSONデータが取得されることがしばしばあります。 マスタ項目など一度、スプレッドシートに書き出したい際に、子階層、孫階層のプロパティの値もフラットに取得したいというケースがありました(値がオブジェクトのプロ

      • RFC3339形式の日付の取り扱いのコツ

        今日も元気にノンプロ研でGAS(Google Apps Script)勉強中です。 ノンプロ研とは、「ノンプログラマーのためのスキルアップ研究会」の略称で、ノンプログラマー(プログラミングを本職にしない人)たちが集まって、プログラミングを武器にすべくスキルを磨いているコミュニティです。 このnoteは、自分がわからなくなって2度調べたことなどを備忘録的に綴っています。 APIから返ってきたRFC3339形式の日付仕事の関連でPOSレジアプリのSquareを使用しています

        • 複雑階層に必要な値が入り組んだJSONデータから必要な値を抜き出して二次元配列を作りたい

          今日も元気にノンプロ研でGAS(Google Apps Script)勉強中です。 ノンプロ研とは、「ノンプログラマーのためのスキルアップ研究会」の略称で、ノンプログラマー(プログラミングを本職にしない人)たちが集まって、プログラミングを武器にすべくスキルを磨いているコミュニティです。 最近、freee API講座を受講してAPIでデータを取得したりできるようになりました。 今回は別のサービスのAPIから取得してきたJSONデータを二次元配列にしてスプレッドシートに転記

        マガジン

        • Python練習帳
          5本
        • GAS練習帳
          18本
        • 海外出張(旅行)完全準備マニュアル
          2本

        記事

          BetterTouchToolでJavaScriptを使って、特定のキー入力で明日の日付をyyyy-MM-dd形式で入力する方法

          今日も元気にノンプロ研でプログラミング勉強中です。 ノンプロ研とは、「ノンプログラマーのためのスキルアップ研究会」の略称で、ノンプログラマー(プログラミングを本職にしない人)たちが集まって、プログラミングを武器にすべくスキルを磨いているコミュニティです。 今日は、 ノンプロ研で学んだGAS(≒JavaScript)の知識を生かしていて、Macユーザにとっての神アプリBetterTouchToolをさらに便利なものにしたいと思います。 事務仕事で頻繁に登場する日付たち経理

          BetterTouchToolでJavaScriptを使って、特定のキー入力で明日の日付をyyyy-MM-dd形式で入力する方法

          freee APIで下書き請求書を一気にチェックしよう!

          今日も元気にノンプロ研でGAS(Google Apps Script)勉強中です。 ノンプロ研とは、「ノンプログラマーのためのスキルアップ研究会」の略称で、ノンプログラマー(プログラミングを本職にしない人)たちが集まって、プログラミングを武器にすべくスキルを磨いているコミュニティです。 最近、freee API講座を受講してAPIでデータを取得したりできるようになりました。 freee会計は、もともとノンプログラマーと非常に相性の良い会計ソフトだと思っていたのですが、A

          freee APIで下書き請求書を一気にチェックしよう!

          海外出張(旅行?)完全準備マニュアル - クレジットカードを超えるFinTechを活用しよう!

          実に1年9ヶ月ぶりに海外に来ています。 その期間に世の中は色々なことがアップデートされているのですが、その最たる例が「決済」かもしれません。 もうすでに今回の出張で10日ほど過ごしていますが、現金は高速道路のサービスエリアのトイレの利用料以外で使っていません。これは今に始まったことではなく、ここ数年は現金を使う機会は限りなく少なくなりました。 しかし、今回はさらなるアップデートというかブレイクスルーがありました。それは決済分野のFinTechサービスの利用です。 Wi

          海外出張(旅行?)完全準備マニュアル - クレジットカードを超えるFinTechを活用しよう!

          海外出張(旅行?)完全準備マニュアル - 通信手段どうする

          実に1年9ヶ月ぶりに海外に来ています。 久しぶりすぎて海外出張ノウハウを忘れそうだったので、備忘録的にTipsをマニュアル化していきたいと思います。 海外でのデータ通信どうする問題現代人として、そして仕事人として死活問題になるのがこのデータ通信どうする問題です。 1年9ヶ月前の最適解はタイの通信キャリアのAISのSIM2Fly(15日間)をAmazonで購入する or eSIM使えるスマホであればUbigiを使うでした。 1年半以上たって、状況は変わっているのでしょう

          海外出張(旅行?)完全準備マニュアル - 通信手段どうする

          オブジェクトから不要なプロパティを一括削除する関数が、APIのPOSTで大活躍?

          今日も元気にノンプロ研でGAS勉強中です。 最近freee API講座を受講してAPIでデータを取得したりできるように(少し)なりました。 ただ、取得に関しては色んなサービスがcsv出力を提供しているので、やはり醍醐味としてはPOST(=データを登録)するですよね。 ここで立ちはだかるのがPOST(=データを登録)するためのデータ形式を整えるところ。具体的にはJSON形式のオブジェクトを作らないとなのですが、これが複雑。 講座でも「JSONデータを一から作るのは難しい

          オブジェクトから不要なプロパティを一括削除する関数が、APIのPOSTで大活躍?

          選択したシートを元のシート名+日付+インデックスの名前でコピーする関数

          ノンプロ研でGAS勉強中です。 久しぶりに作ったちょっとしたツールの投稿です。 スプレッドシートを操作していて、テンプレートのシートをコピーして、その名前を変更(例えば日付を付加)して、さらに今日のx回目みたいなサブインデックスも足してみたいな作業が私はよくあります。 まあ、キーボードで操作してもほんの数秒でできることなのですが、時間というよりも意志力が削がれるので、これはワンボタンでできるようにしたいなと思っていました。 ちょっと前にGAS中級講座も受講していたので

          選択したシートを元のシート名+日付+インデックスの名前でコピーする関数

          取得したオブジェクトのとあるプロパティが存在する時だけループする処理

          あるサービスのAPIからデータを取得しようとしてハマったポイントです。 1. 関数AでAPIからあるレコードをオブジェクトで取得します。この時、レコードは1つしかAPIの制限で取得できません。指定したパラメータで複数レコードがある場合は、nextというプロパティが存在します。 2. 取得したオブジェクトからfunctionB(obj)で必要なデータを取り出します。 3. nextのプロパティが存在する場合は1.の関数Aの処理に戻り、パラメータにnextの値を渡

          取得したオブジェクトのとあるプロパティが存在する時だけループする処理

          datetimeライブラリで指定したフォーマットの文字列を取得する

          ノンプロ研でPython勉強中です。 定期的に取得したいwebサービスのレポートcsvを指定フォルダにSeleniumでダウンロードして、Pathlibを使ってダウンロードファイルのパスを前回取得しました。 前回の記事では、ダウンロードフォルダ内にある検索したいファイル名を直接指定していましたが、本来は、規則性のあるファイル名の条件部分のみを指定して自動的に抽出していきたいです。 今回ターゲットにしているファイルのデフォルトのダウンロード名は、report_2021-0

          datetimeライブラリで指定したフォーマットの文字列を取得する

          ローカルにダウンロードしたファイルのパスを条件を指定して絞り込んで取得する

          ノンプロ研でPython勉強中です。 定期的に取得したいwebサービスのレポートcsvを指定フォルダにSeleniumでダウンロードするところまでは前回やりました。 無事ダウンロードしたcsvファイルをPythonで読み込ませてpandasで分析して…というのが理想なのですが、pandasスキルが追いつかないのでこのファイルをGoogle ドライブにアップロードして、ここからはスプレッドシートとGASで分析という流れにします。 ダウンロードしたファイルのパスを取得するま

          ローカルにダウンロードしたファイルのパスを条件を指定して絞り込んで取得する

          Seleniumで指定フォルダにファイルをダウンロードする with webdriver-manager

          先日GAS中級講座を卒業してトリプル受講が終わりました。 GAS終わった直後なのに自分のなかでPython熱が高まってます。 前回、Seleniumで結構意図通りに画面遷移ができるようになったおかげで、欲しいレポートcsvファイルがローカルにダウンロードできるようになりました。 やったー! 続いては、ローカルにダウンロードしたこのファイルを解析する(のはスキル的に無理なので)あきらめて、Google DriveにアップロードしてここからはスプレッドシートとGASでやろう

          Seleniumで指定フォルダにファイルをダウンロードする with webdriver-manager

          可変idにも対応! Seleniumで表示テキストから要素を取得する方法

          ノンプロ研でPython勉強中です。 WindowsでのPower Automate Desktop台頭以降、Python x Seleniumによるスクレイピングを学ぶ意義が低下しているとも言われています。 とはいえ、Power Automate Desktopを使えないMacユーザーとしては、スクレイピングのためにPythonを学ぶ意義はあります。 もちろんスクレイピングに限らずPythonは色々できるので、可能性は無限大です。 さて、今日はPython x Se

          可変idにも対応! Seleniumで表示テキストから要素を取得する方法

          全てのシートの特定の文字列を含む名前付き範囲の値を削除する関数

          ノンプロ研でGAS勉強中です。 今日はさらっと、作った関数の備忘録メモその2。 今回はやや取り扱い注意の「全てのシートの特定の文字列を含む名前付き範囲の値を削除する関数」です。 /*** 全てのシートの特定の文字列を含む名前付き範囲の値を削除する関数* * @param {spreadsheet} ssTgt 対象とするスプレッドシート* @param {string} keyword 削除したい名前付き範囲の判定キーワード*/functi

          全てのシートの特定の文字列を含む名前付き範囲の値を削除する関数