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

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

Google Workspace管理者必須のCLIツール GAM の設定手順を画像多めで解説(Windows編)

Google Apps Manager(GAM)は、Google Workspaceの管理業務を効率化するためのコマンドラインツールです。これを使うことで管理コンソールのGUIではポチポチ手作業でやっていた業務をコマンド1行でできるよう自動化し、大量のタスクを短時間で処理できます!

だけど難点はセットアップ手順が地味にハードル高いこと。特権管理者権限を持たせるんですから簡単すぎても困るんですが、だからといって手作業は…。ということでこの記事ではなるべく分かりやすくセットアップ手順を解説していきます。

↓macの方はこちら↓

codelife.cafe

  • GAMの概要と主要機能
    • GAMでできること
    • GAMの利点
  • 前提条件と準備
    • アカウントと権限に関する要件
    • 技術的な要件
  • WindowsへのGAM7インストール手順
    • 1. インストーラー
    • 2. ターミナルでgamコマンドを実行して各種設定
    • 3. GAMプロジェクト作成ツールにアクセス権を付与
    • 4. GAMプロジェクトのクライアントを作成
    • 5. Google Workspace側にGAMアプリでのAPI実行許可設定
    • 6. Google Workspaceでドメイン全体の委任設定
  • 動作確認
  • まとめと今後の展開
    • 今後の予定記事
続きを読む

Google Workspace管理者必須のCLIツール GAM の設定手順を画像多めで解説(macOS編)

Google Apps Manager(GAM)は、Google Workspaceの管理業務を効率化するためのコマンドラインツールです。これを使うことで管理コンソールのGUIではポチポチ手作業でやっていた業務をコマンド1行でできるよう自動化し、大量のタスクを短時間で処理できます!

だけど難点はセットアップ手順が地味にハードル高いこと。特権管理者権限を持たせるんですから簡単すぎても困るんですが、だからといって手作業は…。ということでこの記事ではなるべく分かりやすくセットアップ手順を解説していきます。

↓Windowsの方はこちら↓

codelife.cafe

  • GAMの概要と主要機能
    • GAMでできること
    • GAMの利点
  • 前提条件と準備
    • アカウントと権限に関する要件
    • 技術的な要件
  • macOSへのGAM7インストール手順
    • 1. インストールコマンド
    • 2. 環境の選択と管理者アカウントのメールアドレス入力
    • 3. GAMプロジェクト作成ツールにアクセス権を付与
    • 4. GAMプロジェクトのクライアントを作成
    • 5. Google Workspace側にGAMアプリでのAPI実行許可設定
    • 6. Google Workspaceでドメイン全体の委任設定
  • 動作確認
  • まとめと今後の展開
    • 今後の予定記事
続きを読む

SharePoint Onlineの棚卸し。サイトごとのユーザー権限一覧を出力するPowerShellスクリプト

(この記事はClaude Sonnet 4により執筆しています)

はじめに

SharePoint Onlineを使っていると、気がつけばサイトが増えて権限管理が複雑になっていませんか?

「あのサイトには誰がアクセスできるんだっけ?」 「外部ユーザーに権限を与えすぎていないか確認したい」 「コンプライアンス監査のために権限一覧が必要」

そんな悩みを解決するために、SharePoint Onlineテナント内のすべてのサイト権限を一括で取得し、CSV形式で出力するPowerShellスクリプトを開発しました。

今回は、このツールの使い方と、開発中に遭遇したPnP.PowerShellモジュールのつまづきポイントとその解決策をご紹介します。

🎯 このツールでできること

主な機能

  • 全サイト権限監査: テナント内すべてのサイト(チームサイト、コミュニケーションサイト、OneDrive等)の権限設定を自動収集
  • 詳細情報取得: ユーザー名、ログイン名、メールアドレス、割り当てロールを包括的に取得
  • CSV出力: Excel等での分析に適したフォーマットで結果をエクスポート
  • 視覚的確認: Out-GridViewによる結果の即座確認

出力例

SiteUrl,Principal,LoginName,Email,Roles
https://contoso.sharepoint.com/sites/sales,田中太郎,i:0#.f|membership|tanaka@contoso.com,tanaka@contoso.com,編集
https://contoso.sharepoint.com/sites/sales,営業チーム,c:0o.c|federateddirectoryclaimprovider|abc123...,,"フル コントロール"
https://contoso.sharepoint.com/sites/hr,人事部グループ,c:0o.c|federateddirectoryclaimprovider|def456...,,編集

Out-GridViewでの結果表示画面

🚀 使い方

続きを読む

パスワード付きExcelのVBAを完全自動実行する方法(PowerShell/PowerAutomateDesktop/VBScript)

業務の効率化を目的に、Excel VBAでの自動化を行っている方は多いと思います。しかし、せっかくVBAマクロを作成しても、定期的に人間がボタンを押して実行しているのでは、自動化の意味が半減してしまいます。

そこで今回は、パスワード付きのExcelファイル内のVBAマクロをPowerShellとタスクスケジューラーを使って完全自動実行する方法をご紹介します。


1. 課題:VBAは作れても自動実行できない

Excel VBAは簡易な自動化手段として有効ですが、以下のような課題があります:

  • Excelファイルにパスワードが設定されている
  • マクロを手動で実行している
  • 定期実行の仕組みがなく人間が介在している

このような状況を打破するには、PowerShellWindowsタスクスケジューラーを活用した仕組み作りが有効です。


2. 解決策:PowerShell + タスクスケジューラー

以下のようなPowerShellスクリプトを用意します。

$excelFilePath = "C:\Path\To\Your\File.xlsm"
$password = "your_excel_password"

$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$workbook = $excel.Workbooks.Open($excelFilePath, 0, $false, 5, $password)

# VBAマクロの実行("Module1.MacroName"など)
$excel.Run("YourMacroName")

$workbook.Close($false)
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)

これを.ps1ファイルとして保存し、タスクスケジューラーで実行するように設定します。

タスクスケジューラーの設定手順

  1. 「タスクスケジューラー」を開く
  2. 「基本タスクの作成」を選択
  3. トリガーで実行タイミング(例:毎日9時)を設定
  4. 操作で「プログラムの開始」→ powershell.exe を指定
  5. 引数に -ExecutionPolicy Bypass -File "C:\Path\To\Script.ps1" を設定

3. 他の自動実行手段との比較と設定手順

Power Automate Desktop(無料RPAツール)を使う方法

長所:GUI操作も含めた自動化が可能、Microsoft公式、無料

短所:設定に慣れが必要、実行速度が遅めな場合も

設定手順

  1. Power Automate Desktopをインストール
  2. 新しいフローを作成
  3. 「Excelの起動」アクションを追加し、パスワード付きファイルを開く設定
  4. 「マクロの実行」アクションを使って、マクロ名を指定
  5. フローを保存し、Power Automateポータルでスケジュールフローを作成

VBScript(.vbs)で実行する方法

長所:古くからのWindows標準スクリプト

短所:今後のサポートが不透明、セキュリティ警告が出やすい

設定手順

  1. 以下のような.vbsファイルを作成:
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
Set objWorkbook = objExcel.Workbooks.Open("C:\Path\To\File.xlsm", , False, , "your_excel_password")
objExcel.Run "YourMacroName"
objWorkbook.Close False
objExcel.Quit
Set objWorkbook = Nothing
Set objExcel = Nothing
  1. タスクスケジューラーで wscript.exe を起動プログラムに指定し、引数で上記スクリプトパスを指定

注意:VBScriptは将来的にWindowsでのサポートが廃止される予定です。Microsoftの発表によると、2027年には完全にサポートが終了する予定です(2024年に非推奨化)。新しいプロジェクトには代替手段を検討することを推奨します。


4. 各手法の比較表

手法 長所 短所
PowerShell+タスク 標準機能のみで実装可、細かい制御も可能 初心者にはやや難解
Power Automate Desktop GUI操作も可能、ノーコードで直感的 設定に慣れが必要、動作が重くなる可能性
VBSスクリプト Windowsとの親和性が高い 2027年にサポート終了予定、使用は非推奨

まとめ

Excel VBAによる自動化は「実行」まで含めて初めて効果を発揮します。PowerShellとタスクスケジューラーを組み合わせれば、パスワード付きExcelファイルであっても定期実行が可能です。

今後は用途やセキュリティ要件に応じて、他の手段との使い分けも検討してみてください。

CSSで要素を横並びにしたい場合の選択肢 floatからの卒業:2025年版・モダンCSSレイアウト完全ガイド

2015年に公開した以下の記事:

codelife.cafe

では、当時主流だったfloatベースのレイアウトを、登場間もないFlexboxで置き換える方法を紹介しました。 あれから10年。CSSはさらに進化し、レイアウト手法の選択肢も広がりました。

この記事では、過去の方法を振り返りつつ、2025年現在におけるベストなCSSレイアウト手法を紹介します。


続きを読む