「プログラミング」カテゴリーアーカイブ

PowerShellでスクリプトの絶対パス・実行フォルダを取得する方法

PowerShellスクリプトを書く際、
「実行中のスクリプト自身のパス」や
「そのスクリプトが置かれているフォルダ」を取得したいケースはよくあります。

特に以下のようなケースでは必須です:

  • ログファイルをスクリプトと同じフォルダに出力したい

  • スクリプトと同階層にある設定ファイル(config.json / .ini / CSV など)を読み込みたい

  • 相対パスではなく絶対パスで処理したい

  • バッチ(.cmd)から起動される場合でも確実に処理したい

この記事では、PowerShellでスクリプトの絶対パスとフォルダを取得する方法をわかりやすくまとめます。


🔎 実行中スクリプトの絶対パスを取得する

📌 解説

  • $MyInvocation.MyCommand.Path現在実行中の .ps1 ファイルの絶対パスを返します

  • エイリアス、コマンドライン引数、バッチ起動にも対応


📁 スクリプトの実行フォルダ(ディレクトリ)を取得する

または、もっと便利な $PSScriptRoot を使う方法:


📌 $PSScriptRoot の特徴

方法違い
$PSScriptRootPowerShell v3以降で利用可能。モジュールや関数内でも使用OK
Split-Path $MyInvocation.MyCommand.Pathv2でも利用可能。互換性が必要な場合に有効

💡 ログや設定ファイルを同じフォルダに出力する例


💡 設定ファイルの読み込み例(同階層のconfig.jsonを読む)


🚀 バッチファイルから実行する場合でも問題なし

PowerShell側で $PSScriptRoot$MyInvocation.MyCommand.Path を使っていれば、
バッチ起動であっても正しくスクリプト配置パスを取得可能です。


📌 まとめ

目的推奨コード
スクリプトの絶対パスを取得$MyInvocation.MyCommand.Path
スクリプトのフォルダを取得$PSScriptRoot または Split-Path
同階層へのファイル出力Join-Path $PSScriptRoot

PowerShellでは、パスを固定せずスクリプトの実行場所から動的に処理することが重要です。
設定ファイルの読み込み・ログ出力・ファイル操作まで柔軟に対応できるようになります。

Java:ファイルサイズを簡単に取得する方法|NIO Path/Files

Javaでファイルサイズを取得する場合、昔ながらのFileクラスでも可能ですが、現在の推奨は NIO(java.nio.file) の Path / Files を使う方法です。
NIO の API は例外処理やエンコード、パス結合などが扱いやすく、実務でもこちらを使うのが標準になっています。

本記事では 1行でサイズ取得する最短コードから、人間が読みやすい形式への変換方法フォルダ配下の合計サイズ取得までまとめて解説します。


◆ 基本:1行でファイルサイズを取得する

最もシンプルなコードはこれです。

  • Files.size(Path) を呼ぶだけ

  • 戻り値は バイト数(long)

  • ファイルが存在しない場合は NoSuchFileException が発生

例:try-with-resources なしで完結する単純用途ならこれでOK


◆ 例外処理付きの実務向けサンプル


◆ 人間が読みやすい単位(KB / MB / GB)に変換したい場合

バイト数だと扱いにくいので、表示用に変換するユーティリティを作ると便利です。

使用例:


◆ 複数ファイルの合計サイズを取得したい(フォルダ単位)

フォルダ配下を再帰的に読みながらサイズを足し合わせる方法です。

使い方:


◆ Fileクラス(旧API)と何が違う?

File file = new File("a.txt"); file.length() でも取れますが……

方法特徴
File.length()古いAPI。シンボリックリンクやエラー処理が弱い
Files.size(Path)新API。例外扱いやパス操作が扱いやすい(推奨)

結論:2024年以降の開発なら NIO を使っておくべき。


◆ よくあるエラーと対処

● NoSuchFileException

→ パスが間違っている / 権限不足 / ネットワーク経由で切断 など。

● AccessDeniedException

→ Windows の場合、管理者権限が必要なフォルダ(Program Files など)で起こりがち。

● IOException

→ ファイル読み込み中に OS 側でロックされていることもある(ログファイルなど)。


◆ まとめ

  • ファイルサイズ取得は Files.size(Path) が最もシンプルで推奨

  • バイト数のままでは扱いづらいので 人間向け変換メソッドを用意すると便利

  • ディレクトリの合計サイズは Files.walk() と組み合わせる

PowerShellのバージョンはどこで確認できる?コマンド一覧と違いを解説

PowerShellでは、環境によって利用できるコマンドや機能が異なるため、自分のPowerShellが何バージョンなのかを正確に把握することは非常に重要です。
特に、**Windows PowerShell(5.1)PowerShell 7(PowerShell Core)**は内部構造が異なるため、確認方法を知らないと混乱しがちです。

この記事では、

  • PowerShellのバージョン確認方法の一覧

  • Windows PowerShell と PowerShell 7 の違い

  • どの方法で確認するのがベストか
    をわかりやすく解説します。


✅ まず結論:最も確実なバージョン確認方法

PowerShellのバージョンを確認する最も確実なコマンドは以下です。

実行すると、メジャーバージョンやクライアント情報が一覧で表示されます。


1. PowerShellのバージョン確認方法(コマンド一覧)

ここでは、実務で必ず使うコマンドを重要度順に解説します。


$PSVersionTable(基本&最重要)

表示される主な項目:

項目説明
PSVersionPowerShellのメジャー/マイナーバージョン
PSEditionDesktop(Windows PowerShell) / Core(PowerShell 6/7)
GitCommitIdPowerShell Core でのビルド情報
OS実行しているOS情報
PlatformWin32NT / Unix

もっとも正確な情報が得られ、Windows PowerShell と PowerShell 7 の判別も可能です。


Get-Host を使う方法(ホストアプリ情報)

Get-Host

HostVersion の欄にバージョンが出ます。

ただし、PowerShell ISE や Visual Studio Code など ホストアプリによって値が変わる場合があるため、バージョン判定としては不正確 です。

基本的には $PSVersionTable の方が推奨。


$Host.Version の省略形

Get-Host のバージョンだけを直接取り出す書き方です。
こちらもあくまで ホストアプリのバージョンなので注意。


■ PowerShell 7 以上限定:pwsh -v

PowerShell 7 を使用している場合のみ利用できます。

Windows PowerShell(5.1)では動作しません。


■ コンソールのタイトルバーで確認(GUI的な方法)

PowerShellを起動したとき、タイトルバーに次のような表示が出る場合があります。

  • Windows PowerShell 5.1

  • PowerShell 7.4.0

ただし環境によって表示が異なるため、確実ではない方法です。


2. Windows PowerShell(5.1)と PowerShell 7 の違い

PowerShellのバージョン確認が重要な理由は、5.1 と 7 系で仕様が大きく異なるためです。


【比較表】Windows PowerShell と PowerShell 7 の主な違い

項目Windows PowerShell 5.1PowerShell 7.x
実行ファイルpowershell.exepwsh.exe
基盤.NET Framework.NET 6/7(Core)
対応OSWindowsのみWindows / macOS / Linux
コマンドの互換性高い一部非互換あり
モジュール古いWindows専用モジュールが多い新世代のPowerShell向け

特に、

  • HULFTのスクリプト

  • ActiveDirectoryモジュール

  • Windows専用モジュール

などを扱う場合は、5.1でないと動かないケースが多いため注意が必要です。


3. どの確認方法を使えばいい?(実務向けまとめ)

目的推奨コマンド
バージョンの正確な取得$PSVersionTable
Core か Desktop か判断$PSVersionTable.PSEdition
PowerShell 7 かだけを確認pwsh -v(PowerShell 7の場合)
ホスト環境の確認Get-Host

4. よくある質問(FAQ)


■ Q. 自分のPCに PowerShell 5.1 と 7 が両方入っているのは普通?

はい、普通です。
Windows標準は5.1で、最新版の7は別途インストールされます。


■ Q. どちらを使うべき?

  • Windows管理タスクが多い
     → Windows PowerShell(5.1)

  • クロスプラットフォーム / 最新のPowerShellを使いたい
     → PowerShell 7


■ Q. PowerShellのバージョンアップはどうする?

PowerShell 7 は winget でアップデート可能。


まとめ

PowerShellのバージョン確認は、環境差異によるトラブルを避けるための最重要ポイントです。

🔍 今日覚えておくべき3つ:

  1. 基本は $PSVersionTable を使う

  2. PowerShell 5.1 と 7 では機能が大きく異なる

  3. 用途に応じて使うバージョンを選ぶ

この知識があれば、スクリプト実行時の「動かない…なぜ?」を大幅に減らせます。

Java:trimだけじゃない!前後の空白を完全に除去する方法

Javaで文字列の前後の空白を削除したいとき、多くの人がまず trim() を使います。しかし、実務で扱うデータはもっと複雑。
実は trim() では 取り除けない空白 が存在します。

この記事では、

  • trim() の弱点

  • 完全に空白除去したいときのベストプラクティス

  • 実務(CSV・外部連携・Webアプリ)でのよくある落とし穴

をわかりやすく整理します。


■ trim() は万能ではない:取り除けない空白がある

trim() はあくまで Unicodeの制御文字(0x00–0x20) のみを対象にしています。

▼ trim()で削除できる例

  • 半角スペース " "

  • タブ \t

  • 改行 \n

  • 復帰 \r

▼ trim()で削除できない代表例

  • 全角スペース( )

  • ノーブレークスペース( )

  • ゼロ幅スペース(\u200B)

  • 特殊なUnicode空白

外部システム連携やExcel由来データで**“見えないゴミ空白”**が混入し、trim()では除去できないケースは非常に多いです。


■ 前後の空白を「完全に」除去する方法

① 正規表現による空白除去(最も汎用的)

▼ ポイント

  • \s = 制御文字+一般的な空白

  • \p{Z} = Unicodeの空白カテゴリ(全角スペースなど)

  • 前後どちらも削除できる

trim() では消えない全角・特殊スペースもまとめて除去できます。


■ ② Apache Commons Langの StringUtils を使う方法(簡単)

Apache Commons Lang が使えるなら、こちらが最も便利。

▼ trim()との違い

  • 全角スペースも削除できる

  • Unicode空白に幅広く対応

外部システムとの連携が多い業務システムでは定番です。


■ ③ カスタム実装で「ホワイトリスト方式」

どの空白を除去するかを 自分で定義したい場合

よく問題になる空白だけに絞りたいときに有効です。


■ 比較表:どの方法を使うべき?(実務ベース)

方法メリットデメリット実務での利用度
trim()標準、軽量、速い全角スペースに弱い
正規表現完全除去できる少し処理が重い
Apache StringUtils記述が最も簡単ライブラリが必要
カスタムRegex精密に制御可能コードの読みにくさ

■ 実務で多いトラブル例

● CSVインポート時に項目が一致しない

→ Excel入力データに 全角スペース が混入している
→ trim() では削除されずバリデーションNG

● 外部システムのレスポンス整形で意図せず不一致

→ JSONのフィールドに ノーブレークスペース が入っていた

● Webフォームの入力チェックで正しく弾けない

→ ゼロ幅スペース(\u200B)が悪さをしていた

Javaの文字列処理では 目に見えないUnicode空白 がしばしば問題を起こします。


■ まとめ:trim() だけに頼らないこと!

前後の空白を 100%除去 したいなら、

  1. 正規表現(\s + \p{Z})

  2. StringUtils.trim()

このどちらかが“安全策”です。

業務システム、外部連携、CSV処理など “実データを扱う場面” では trim() だけでは不十分なことが多いため、ぜひ今回の方法を取り入れてみてください。

PowerShellで数十万行のCSVを高速処理するベストプラクティス

PowerShellで数十万行以上のCSVを扱うと、
「読み込みが遅い」「メモリが一気に膨れる」「処理が固まったように見える」
といった問題が発生しがちです。

実はこれ、PowerShellのCSV処理の仕組みによる“あるある”で、
正しい書き方をすれば劇的に高速化できます。

この記事では、現場でも使われている 高速処理テクニック・実装例・注意点 をまとめます。


✔ なぜPowerShellはCSV処理が遅くなるのか

PowerShellの Import-Csv は便利ですが…

  • 全行を一度にメモリへ展開する

  • オブジェクト化のコストが高い

  • 数十万件を超えると数百MB〜GB級のメモリ使用

という特徴があります。

そのため、以下のような書き方は最も遅くなります。


✔ 高速化のポイントは「逐次読み込み」と「Stream処理」

PowerShellで数十万行を高速に処理する場合の最重要ポイントは以下。

💡 高速化の基本

  1. Import-Csv を使わず StreamReader を使う

  2. 1行ずつ処理して不要になったデータは捨てる

  3. Select-Object, Where-Object をループで使わない

  4. 型変換を最小限にする

  5. 出力は StringBuilder にまとめて最後に書き込む


✔ ベストプラクティス①:StreamReaderで逐次処理

最も高速でメモリ効率も良い方法です。

✔ 特徴

  • Import-Csv ではなく Split で直接取得 → 超高速

  • メモリ使用量は常に一定

  • 数百万行でも余裕


✔ ベストプラクティス②:Import-Csv を使う場合の高速化

「やっぱりオブジェクトで扱いたい」という場合はこちら。

✔ 注意点

  • ForEach-Object -ParallelPowerShell 7 以降限定

  • 並列化は CPUコア数に依存

  • メモリ使用量は多め


✔ ベストプラクティス③:Select-Object / Where-Object を避ける

以下は遅くなりがち:

理由:すべての行をオブジェクトとして保持してしまう。

💡 改善

または、最速は StreamReader + Split


✔ ベストプラクティス④:StringBuilderで出力バッファを作る

行ごとに Add-Content を実行すると激遅になります。

✔ StringBuilderを使う(高速)


✔ ベストプラクティス⑤:PowerShell 7 を使う

PowerShell 5.1 から PowerShell 7 に変えるだけで速度が倍以上になるケースが多いです。

理由

  • .NET Core ベースで高速化

  • ForEach-Object が最適化

  • Parallel 処理対応


✔ 実際の処理速度比較(目安)

手法100万行の処理メモリ使用量
Import-Csv → ループ数十秒〜数分数百MB〜1GB超
Import-Csv -Parallel10〜40秒多め
StreamReader + Split5〜15秒数MB

※ PCスペックにより変動。


✔ まとめ:最速は「StreamReader+Splitによる逐次処理」

PowerShellで数十万行のCSVを高速処理するなら

✔ 最適解

  1. 逐次読み込み(ストリーム処理)

  2. 行ごとにSplitして必要な列だけ触る

  3. StringBuilderでまとめて出力する

  4. PowerShell 7 ならParallel化も可能

業務バッチで使う場合は、
StreamReader方式が最も安全で高速です。

実際の現場でも「メモリ溢れ対策」「速度改善」で最も採用されています。

Java Streamsで文字列リストを加工・整形する便利テクニック

Java 8 以降で利用できる Stream API は、文字列リストの加工・整形に非常に便利です。
filter / map / collect を組み合わせるだけで、複雑な処理もスッキリ書けるようになります。

この記事では、**業務システムで頻出する「文字列リストの加工」**を中心に、すぐに使えるサンプルをまとめています。


✔ よくある文字列リストの処理

業務プログラムの中で、以下のようなケースはよくあります。

  • 空文字・null を除去したい

  • 前後の空白を trim したい

  • 大文字/小文字変換をしたい

  • 任意の条件で絞り込みたい

  • 区切り文字にまとめたい(CSV・ログなど)

こうした処理は Stream API を使うと 1 行で書ける ことが多いです。


1. 空文字・null を除去する 


2. 全要素を大文字 or 小文字に変換する


3. 特定の文字を含む要素だけ抽出する

部分一致の他に、
startsWith / endsWith / 正規表現 なども活用できます。


4. trim+フィルタ+整形をまとめて 1 行で

業務コードで頻発する「整形 → フィルタ → 出力」を 1 行で書く例です。


5. 重複要素を除外する(distinct)


6. 文字列リストを区切り文字で join する(CSV など)

改行やタブ区切りにも応用できます。


7. リスト内の文字列長でソートする(Comparator)

降順にしたい場合:


8. 正規表現で加工する(replaceAll 等)


9. Stream API を使うメリットまとめ

✔ コードが短く読みやすい

for文で数十行になる処理が、Stream だと数行に。

✔ null などの例外ケースを潰しやすい

filter → map → collect の流れが明確で安全。

✔ 並列処理(parallelStream)にも切り替えやすい

データ量が多い場合に性能改善も期待できる。


まとめ

Stream API を使うと、文字列リストの加工・整形が圧倒的にシンプルになります。

  • null / 空白除去

  • 大文字・小文字変換

  • 条件フィルタ

  • 重複削除

  • join で CSV 形式へ変換

  • ソート

これらは業務アプリで頻出するため、覚えておくとコード品質・保守性が確実に上がります。

Javaで日付をゼロパディング/ゼロサプレスする方法まとめ

Javaで日付を扱う際、「月や日を2桁表示したい(01→1ではなく01のまま)」あるいは「逆にゼロを削除して自然な表示にしたい」という場面はよくあります。
この記事では、**ゼロパディング(ゼロ埋め)ゼロサプレス(ゼロ削除)**の両方を、実際のコード例を交えて分かりやすく解説します。


🧩 ゼロパディングとは?

ゼロパディング(zero padding)とは、数値や日付を指定桁数に揃えるために先頭に0を追加する処理のことです。
例えば「1」を「01」や「001」に整えることで、フォーマットがそろい、ソートや表示が安定します。

例:

元の値ゼロパディング後
101
505
1010

💡 String.format() を使ったゼロパディング

最もシンプルな方法は String.format() です。
桁数を %02d のように指定することで、足りない桁を自動的に0で埋めてくれます。

ポイント:

  • %02d → 2桁に揃えて左側を0埋め

  • %03d → 3桁に揃える(例:007 など)


📅 DateTimeFormatter を使ったゼロパディング

LocalDateLocalDateTimeを使う場合は、DateTimeFormatterの書式指定でゼロパディングが自動適用されます。

MMddといった2桁指定をすることで、常にゼロパディングされた日付が得られます。


🔻 ゼロサプレス(ゼロ削除)とは?

ゼロサプレス(zero suppress)とは、先頭の0を削除して自然な表示にすることを指します。
たとえば「01月」を「1月」に、「09日」を「9日」に整形するようなケースです。


🧮 getMonthValue()getDayOfMonth()を使う方法

LocalDateのメソッドを利用すれば、もともと整数型の値をそのまま出力できるため、ゼロサプレスした形で取得できます。


🧠 DecimalFormatで数値的に制御する

もし整数値を柔軟に扱いたい場合は、DecimalFormatを使うと便利です。

"00" → 常に2桁ゼロ埋め
"#" → 不要なゼロを省略(ゼロサプレス)


🔄 実用例:ゼロ埋め⇔ゼロ削除の切り替え

アプリケーションによっては、状況に応じて表示形式を切り替えたい場合もあります。


✅ まとめ

処理主な方法
ゼロパディングString.format("%02d") / DateTimeFormatter("MM")01, 05
ゼロサプレスgetMonthValue() / DecimalFormat("#")1, 5

ゼロパディングはフォーマットの統一やログ整形に便利で、ゼロサプレスは人が読む表示に適しています。
目的に応じてどちらを使うか選びましょう。

XML解析の基本!Javaで要素や属性を取得する方法

システム開発やデータ連携の現場では、設定ファイルやAPIレスポンスなどでXML形式のデータを扱う機会が多くあります。
この記事では、Javaを使ってXMLを解析し、要素(タグ内の値)や属性を取得する基本的な方法を解説します。


XML解析の代表的な方法

JavaではXMLを解析するために、いくつかのAPIが用意されています。

解析方法特徴
DOM(Document Object Model)メモリ上にXML全体を読み込み、ツリー構造で扱う。小規模ファイル向き。
SAX(Simple API for XML)イベント駆動型で順次読み込む。大規模ファイル向き。
StAX(Streaming API for XML)ストリーム処理を行いながら解析。SAXより柔軟。

今回は最も基本的なDOMパーサを使用します。


DOMパーサでXMLを解析する手順

以下のサンプルXMLを例にします。


Javaサンプルコード 


実行結果


ポイント解説

  • DocumentBuilderFactory:XML解析のためのインスタンスを生成

  • getDocumentElement():ルート要素を取得

  • getElementsByTagName():指定タグのノードリストを取得

  • getAttribute():要素の属性値を取得

  • getTextContent():タグ内のテキスト値を取得


よくあるエラー例

エラー内容原因と対処法
FileNotFoundExceptionXMLファイルのパスが誤っている。絶対パスまたは相対パスを確認。
SAXParseExceptionXML構文が正しくない(タグの閉じ忘れやエンコーディング不一致など)。
NullPointerException該当タグが存在しない場合にitem(0)でNullを参照している。要素の存在チェックを追加する。

まとめ

  • XML解析ではDOM・SAX・StAXなどの手法がある。

  • 小規模なXMLではDOMパーサが使いやすい。

  • ElementNodeListを通じて要素・属性を自由に操作できる。

JavaでXMLを扱う基本を押さえておくと、設定ファイルや外部システム連携処理をスムーズに開発できます。

PowerShellの構文エラー原因TOP3:全角引用符・NBSP・BOM

🧩 PowerShellの構文エラー原因TOP3:全角引用符・NBSP・BOM

PowerShellスクリプトを実行したときに、
UnexpectedToken」や「文字列に終端記号がありません」という赤エラーが出て動かない——。
そんな経験はありませんか?

実はこれらの構文エラー、文法ミスではなく「文字の種類」 が原因で起きていることが非常に多いです。
特に日本語環境では、以下の3つがPowerShellを混乱させる典型的なトラブル要因です。


🥇 第1位:全角引用符(“ ”、” ”)

最も多いのがこれ。
WordやWebサイト、ブログなどからコードをコピーした際に、
「普通のダブルクォート(")」が「全角のスマートクォート()」に変わってしまう現象です。

PowerShellはこれを文字列の区切りとして認識できません
そのため以下のようなエラーが出ます。

式またはステートメントのトークン '営業企画部' を使用できません。

🔧 対処法:

  • 全角の “ ” を半角の ” ” に置換

  • コードエディタで「スマートクォート自動変換」をOFFにする


🥈 第2位:NBSP(ノーブレークスペース)

見た目は半角スペースですが、内部的には U+00A0 という別の文字です。
HTMLページやブログからコピーしたときに非常によく混入します。

PowerShell上では、
「半角スペースとして解釈されない」ため構文が崩れ、
UnexpectedToken などの不可解なエラーが出ます。

🔧 対処法:

  • サクラエディタやVS Codeで「不可視文字表示」をONにする

  • 以下のコマンドでNBSPやゼロ幅文字を除去可能:


🥉 第3位:BOM付きUTF-8で保存されている

UTF-8自体はPowerShellでも推奨されていますが、
「BOM(Byte Order Mark)」付きUTF-8 で保存された .ps1
スクリプトの先頭に見えない U+FEFF が混入し、これが原因で構文エラーになる場合があります。

🔧 対処法:

  • ファイルを UTF-8(BOMなし) で保存

  • サクラエディタやVS Codeで「保存形式:UTF-8(BOMなし)」を明示的に選択


✅ エラーを防ぐためのおすすめ設定

PowerShellのスクリプトを書くときは、以下の設定を徹底すると安心です。

・エンコード:UTF-8(BOMなし)
・行末コード:CRLF
・クォート文字:必ず半角(" または ')
・不可視文字表示:ON
・自動変換(スマートクォート、全角変換など):OFF

🧰 トラブルを一掃するワンライナー

既におかしな文字が混入している場合は、
次のPowerShellコマンドでクリーンアップできます。

これで、全角クォート・NBSP・BOMをすべて除去できます。


🚀 まとめ

PowerShellの構文エラーの多くは「コードが壊れている」のではなく、
文字の種類が混ざっているだけ です。

  • “全角クォート” → 半角 " " に直す

  • “NBSP” → 普通のスペースに置換

  • “BOM付きUTF-8” → BOMなしに保存

この3点を意識するだけで、
もう意味不明な赤いエラーに悩まされることはありません。

PowerShellでExcel操作を自動化!セル入力・保存・集計まで一括処理

日々の業務でExcelを開いてデータ入力・集計・保存を繰り返していませんか?
PowerShellを使えば、Excelアプリを自動で起動し、セル操作や保存、集計まで一括処理できます。
この記事では、PowerShell × Excel COMオブジェクトを活用して、実際に自動化する方法を解説します。


1. Excelアプリを起動してシートを開く

まずはExcelをPowerShellから操作する基本構文です。

このスクリプトを実行すると、Excelが自動的に起動して新規ブックが作成されます。


2. セルへデータを自動入力する

次に、セルに値を入力してみましょう。


3. 合計を自動で計算する(SUM関数)

PowerShellからExcel関数を呼び出すことも可能です。

これで「B2:B3」の合計が自動的に計算されます。


4. ファイルを自動保存する

作成したブックを任意の場所に保存します。


5. 応用:既存ファイルを開いて集計処理する

既にあるExcelファイルの集計を自動で行うこともできます。


まとめ

PowerShellを使えば、Excelの単純作業を一瞬で自動化できます。
日次レポートや集計処理などをバッチ化しておけば、毎日のExcel作業をゼロにすることも可能です。