MENU
  • Soft/App

Category カテゴリカテゴリ

PC/Gadget パソコン・ガジェット
Soft/App ソフト・アプリ
Entertainment エンタメ・イベント
Shopping お買い物
D.I.Y. セルフリフォーム
Download ダウンロード

パソコン関連のお得情報

マイクロソフトオフィス
マッキントッシュ
ウインドウズ
Adobe イラストレーター
ワードプレス
Apple iPhone
iPad & Apple Pencil
アプリ

©Goblog ごぶろぐ
created by N/A | powerd by SWELL

ソフトやガジェットのPR記事依頼はお気軽にお問い合わせください
  • Soft/App

<Windows>PowerShellとAHKで日付や数字を変換する方法|F6キーで楽々自動化

 悩む人

@DTP_TransitさんがMacでKeybordMAestroを使っためちゃめちゃ便利なテキストコンバーターを紹介していた!でも私の仕事環境はWindowsなんだよね…

ごん

AHKとPowerShellを組み合わせれば、WindowsでもF6キー一発で自動変換できます!

この記事では、WindowsでPowerShellAHKを連携させて、日付や数字の形式を自動変換する方法を解説します。F6を押すだけでクリップボードのテキストを簡単変換できるスクリプト構築術を習得して、日々の事務作業を効率化しましょう。

この記事で解決する悩みごとはこちら

この記事で解決する
悩みごとはこちら

この記事で解決する悩みごとはこちら
  • AHKPowerShellの連携による自動化の魅力
  • F6キーを使った日付変換数字変換スクリプトの書き方
  • AHKスクリプトPowerShellスクリプトの具体的な構築手順
  • 業務効率化のための応用とトラブルシューティング
目次

AHK×PowerShellによる変換自動化の魅力

AutoHotKey(AHK)とPowerShellを組み合わせることで、単純な文字列の置き換えから複雑なデータ変換まで、Windows環境での作業効率を飛躍的に向上させることが可能です。
AHKはキーボードやマウス操作を自動化するツールとして知られていますが、PowerShellのスクリプト実行能力と組み合わせることで、その可能性は無限に広がります。

日付・数字変換、手作業からの解放

 悩む人

毎日、日付や数字の入力形式がバラバラで困っているんだよね…

ごん

PowerShellとAHKがあれば、もう手作業での修正は不要になりますよ!

F6キー一発変換の実現

 悩む人

F6キーを押すだけで、入力した日付や数字が自動で変換されたら、すごく楽になるのに…

ごん

AHKのホットキー機能を使えば、それが実現できます!

AHKのスクリプトに、PowerShellの変換スクリプトを連携させることで、特定のキー(例えばF6キー)を押すだけで、クリップボードにあるテキストを自動的に変換し、指定された形式で貼り付けることが可能です。
この一連の動作をわずか数秒で実行できるため、手作業による変換と比較して大幅な時間短縮につながります。

構築!AHKとPowerShell連携環境

AHKとPowerShellを連携させることで、クリップボードにコピーしたテキストをF6キー一発で日付や数字に変換する環境が構築できます。
実際に、私もこの連携環境を構築して、日々の作業効率が格段に向上したのを実感しています。

AHKの導入

AutoHotkey(AHK)は、Windowsでの作業を自動化するためのスクリプト言語です。
キーボードやマウス操作を自動化したり、テキストの置換、アプリケーションの起動など、さまざまなタスクをスクリプトで記述できます。
ここでは、AHKをまだインストールしていない方のために、導入手順を丁寧に解説していきます。

 悩む人

AHKって何?

ごん

AHKは、あなたのPC作業を楽にする魔法の杖です!

公式サイトからのダウンロード

まずは、AutoHotkey公式サイトからインストーラーをダウンロードしましょう。
実際に公式サイトにアクセスすると、最新バージョンのインストーラーがすぐにダウンロードできるはずです。

AutoHotkey公式サイトでは複数のバージョンが提供されていますが、基本的には最新版を選んで問題ありません。もし過去のバージョンが必要な場合は、ダウンロードページでアーカイブを探してみてください。

インストール手順の詳細解説

ダウンロードしたインストーラーを実行すると、インストールが開始されます。

基本的に表示される指示に従って進めば問題ありませんが、インストール先や関連オプションの設定は、ご自身の環境に合わせて選択してください。

「Unicode 64-bit」版推奨理由

AHKにはいくつかのバージョンがありますが、「Unicode 64-bit」版を選ぶことをおすすめします。
Unicode版は、多言語の文字を扱う際に文字化けのリスクが低く、64bit版はより多くのメモリを使用できるため、大規模なスクリプトでも安定して動作するからです。

PowerShellスクリプトの準備

PowerShellは、マイクロソフトが開発したタスク自動化と構成管理のためのクロスプラットフォームの自動化ツールです。
コマンドラインシェル、スクリプト言語、構成管理フレームワークで構成されています。
ここでは、PowerShellの基本的な知識と、スクリプトの実行許可設定について解説します。

 悩む人

PowerShellって難しそう…

ごん

大丈夫!基本を抑えれば、意外と簡単なんです!

PowerShellとは

PowerShellは、Windowsに標準搭載されているコマンドラインツールで、ファイル操作やシステム管理など、さまざまな操作を自動化できます。
コマンドレットと呼ばれる専用のコマンドを使用することで、複雑な処理も簡単に記述できます。
実際にPowerShellを使ってみると、GUIでは手間のかかる作業も、数行のコマンドで実行できることに驚かされます。

PowerShellの主な特徴は以下の通りです。

実践!PowerShellスクリプト作成術

ごん

それでは実際に私が使っているコードをのせておきます

convert_clipboard.ps1

Add-Type -TypeDefinition @"
using System;
using System.Globalization;
public class DateUtils {
    public static string GetDayOfWeek(string dateStr, string format) {
        DateTime dateObj;
        if (DateTime.TryParseExact(dateStr, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateObj)) {
            return $"{dateObj.Month}/{dateObj.Day} ({dateObj.ToString("ddd")})";
        }
        return dateStr;
    }
}
"@

# クリップボードの値を取得
$inputText = Get-Clipboard

function Convert-Input {
    param ($text)

    # 金額変換(例: 10000\\ → \10,000-)
    if ($text -match '^\d+\\\\$') {
        $num = $text -replace '\\\\$', ''
        return "\{0:N0}-" -f [int]$num
    }

   # 日付(YYYYMMDD/// → YYYY/M/D (曜日))
   if ($text -match '^\d{8}///$') {
       $datePart = $text.Substring(0, 8)
       $dateObj = [datetime]::ParseExact($datePart, "yyyyMMdd", $null)
       return "$($dateObj.Year)/$($dateObj.Month)/$($dateObj.Day) ($($dateObj.ToString('ddd')))"
    }


    # 日付(MMDD/// → M/D (曜日))
    if ($text -match '^\d{4}///$') {
        $year = (Get-Date).Year
        $month = $text.Substring(0,2).TrimStart('0')
        $day = $text.Substring(2,2).TrimStart('0')
        $dateObj = Get-Date "$year/$month/$day"
        return "$month/$day ($($dateObj.ToString('ddd')))"
    }

    # 日付(YYYYMMDD// → YYYY/M/D)
    if ($text -match '^\d{8}//$') {
        $year = $text.Substring(0, 4)
        $month = $text.Substring(4, 2).TrimStart('0')
        $day = $text.Substring(6, 2).TrimStart('0')
        return "$year/$month/$day"
    }

    # 日付(MMDD// → M/D)
    if ($text -match '^\d{4}//$') {
        $month = $text.Substring(0, 2).TrimStart('0')
        $day = $text.Substring(2, 2).TrimStart('0')
        return "$month/$day"
    }

    return $text  # 変換対象外ならそのまま返す
}

# 変換してクリップボードにセット
$result = Convert-Input $inputText
Set-Clipboard -Value $result

# 変換結果を表示
Write-Output $result

clipboard_convert.ahk

F6::
    Send, ^+{Left}  ; Ctrl + Shift + ← で単語を選択
    Send, ^+{Left}  ; Ctrl + Shift + ← で単語を選択
    Sleep, 100  ; 100ミリ秒待つ(コピーが確実に完了するように)

    Send, ^c  ; Ctrl+C を送信(コピー)
    Sleep, 100  ; 100ミリ秒待つ(コピーが確実に完了するように)

    RunWait, powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -File "保存先のパス\convert_clipboard.ps1", , Hide
    Sleep, 300  ; PowerShell の処理が完了するのを少し待つ

    Send, ^v  ; Ctrl+V を送信(貼り付け)
return

このコードを作成して、clipboard_convert.ahkを実行しておくと、F6キーを押すと次のように変換されます

20250305//➡2025/3/5
0305//➡3/5
20250305///➡2025/3/5(水)
0305///➡3/5(水)
1000\\➡\1,000-

よくある質問(FAQ)

AHK(AutoHotkey)をインストールする方法がわかりません。

AHKの公式サイトからインストーラーをダウンロードできます。ダウンロードページから最新版を選び、インストーラーの指示に従って進めると、インストールできます。インストール時に「Unicode 64-bit」版を選択するのがおすすめです。多言語の文字化けを防ぎ、より安定して動作します。

PowerShellスクリプトを実行するための実行ポリシー設定が難しいです。

PowerShellの実行ポリシーを変更するには、管理者権限でPowerShellを起動し、Set-ExecutionPolicyコマンドレットを使用します。ただし、セキュリティ上のリスクを考慮し、信頼できるスクリプトのみを実行するように心がけてください。実行ポリシーの設定を変更することで、自作のスクリプトや信頼できる提供元から提供されたスクリプトを実行できます。

F6キーで変換がうまく作動しないです。

AHKスクリプトで定義したホットキー(F6)が、他のアプリケーションと競合している可能性があります。また、PowerShellスクリプトのパスが間違っている場合も同様の症状が発生することがあります。AHKスクリプトを右クリックし、「スクリプトの再読み込み」を試してください。

正規表現がうまく動作しない場合、何を確認すれば良いですか?

正規表現は、パターンが少し違うだけでもうまく一致しないことがあります。正規表現チェッカーなどのツールを利用して、パターンが意図したとおりに動作するか確認してみましょう。正規表現は文字列操作において、とても役に立つツールです。

スクリプトを修正するときの注意点はありますか?

スクリプトを修正する際は、必ずバックアップを取ってから変更するようにしてください。変更内容を記録しておくと、問題が発生した場合に元の状態に戻しやすくなります。また、修正後は必ずテストを行い、意図したとおりに動作するかを確認しましょう。

AHKとPowerShellの連携について、もっと深く学ぶためのリソースはありますか?

Microsoft Learnでは、PowerShellの基礎から応用まで幅広いトピックを学ぶことができます。AutoHotkey公式サイトでは、AHKの基本操作やスクリプト構文、応用例が紹介されています。これらのリソースを活用することで、AHKとPowerShellの連携について、さらに知識を深めることが可能です。

まとめ

この記事では、Windows環境でPowerShellAHKを連携させ、F6キー一発で日付や数字の形式を自動変換する方法を解説しました。

ごん

いつものことながら、@DTP_TransitさんのKeybordMaestro術・時短術には脱帽です!@DTP_Transitさんのnoteのおかげで、いろんな作業が時短・効率化されています。感謝感激です!


手作業での変換から解放され、事務作業の効率化、人的ミスの削減に繋がるスクリプト構築術をぜひ習得してください。

この記事を参考にAHKPowerShellを連携させて、日々の自動化をより快適にしましょう。

管理人:ごん(デザイナー)

管理人:ごん(デザイナー)

「時短・楽したい」がモットー!Twitterでも情報公開しています
記事のライティング依頼やPR記事依頼・広告掲載のご依頼も受付中

よかったらシェアしてね!
  • URLをコピーしました!
目次