F1::
Send {Ctrl down}c{Ctrl up} ; Ctrl+Cでコピー
Sleep 100 ; 少し待機(クリップボードが更新されるのを待つ)
Send {Ctrl down}v{Ctrl up} ; Ctrl+Vで貼り付け
return
F2::
Clipboard := "" ; クリップボードをクリア
Send {Ctrl down}c{Ctrl up} ; コピー
ClipWait 1 ; クリップボードにデータが入るのを待つ
Clipboard := "[" Clipboard "]" ; 前後に「[」「]」を追加
Send {Ctrl down}v{Ctrl up} ; 貼り付け
return
; ホットキー Ctrl+Shift+V で実行
^+v::
ClipboardOld := ClipboardAll ; 現在のクリップボード内容を保存
Clipboard := "" ; クリップボードをクリア
Send ^c ; コピー操作(選択中のテキストをコピー)
ClipWait, 1 ; クリップボードにデータが入るのを待つ
if (ErrorLevel = 0) ; クリップボードにデータがあれば
{
Num := Clipboard ; クリップボードの内容を取得
if Num is number ; 数値かどうかを判定
{
Result := Num * 0.0174533 ; 10を足す処理
Clipboard := Result ; 結果をクリップボードにセット
MsgBox, % "元の値: " Num "`n新しい値: " Result ; 確認メッセージ(任意)
}
else
{
MsgBox, クリップボードの内容は数値ではありません。
Clipboard := ClipboardOld ; 元のクリップボード内容を復元
}
}
else
{
MsgBox, クリップボードにデータがありません。
Clipboard := ClipboardOld ; 元のクリップボード内容を復元
}
return
; ユーザー入力待ち(Ctrl+J)
^j::
; コマンドを格納する連想配列(毎回初期化)
commandMap := {}
; CSV を読み込む(毎回実行)
Loop, Read, commands.csv
{
line := A_LoopReadLine
StringSplit, fields, line, `,
commandMap[fields1] := fields2
}
; 入力に応じたコマンドを取得
InputBox, userInput, 入力待ち, キーワードを入力してください, , , , , , , ,
if ErrorLevel
return
command := commandMap[userInput]
if (command = "")
{
MsgBox, 対応するコマンドが見つかりません: %userInput%
return
}
; 即時実行
RunCommand(command)
return
; コマンドを実行する関数
RunCommand(cmd) {
StringSplit, commands, cmd, `; ; `;` で区切る
Loop, %commands0% ; 分割されたコマンド数だけ繰り返す
{
currentCmd := Trim(commands%A_Index%) ; 現在のコマンド(余分な空白を削除)
if (SubStr(currentCmd, 1, 5) = "Send ")
{
action := Trim(SubStr(currentCmd, 6))
if (RegExMatch(action, "^{.*}$")) ; {文字列} の形式
{
StringReplace, action, action, {, , All
StringReplace, action, action, }, , All
; 特殊キーの場合は Send を使い、それ以外は SendRaw
if (action = "Home" || action = "End" || action = "Enter" || action = "Tab" || action = "Up" || action = "Down")
{
Send {%action%} ; 特殊キーとして送信
}
else
{
SendRaw %action% ; それ以外は生の文字列として送信
}
}
else
{
Send %action% ; キーコマンドとして実行
}
}
else if (SubStr(currentCmd, 1, 4) = "Run ")
{
action := SubStr(currentCmd, 5)
Run %action%
}
else
{
SendRaw %currentCmd%
}
Sleep, 200 ; コマンド間に少し待機(安定性のため)
}
}