Illustratorのバージョン番号を取得してアレコレする
以前の記事で、バージョン番号の判定ついて取り上げました。
この記事では、リリースのタイミングで判定したのですが、リリース時期にかかわらず、最新のバージョン番号を取得できるように考えてみました。
バージョン番号の取得(1)
次のJavaScriptを実行します。
// Illustratorのバージョンを取得
var illustratorVersion = app.version;
// アラートで表示
alert("現在のIllustratorのバージョンは: " + illustratorVersion);
すると、次のようなアラートが表示されます。
バージョン番号の取得(2)数値化
次のJavaScriptを実行します。
// Illustratorのバージョンを取得
var illustratorVersion = parseFloat(app.version);
// アラートで表示
alert("現在のIllustratorのバージョンは: " + illustratorVersion);
すると、次のようなアラートが表示されます。
parseFloatによって「29.2.1」が「29.2」になり、数値として扱われるようになります。
バージョン番号の取得(3)西暦
次のJavaScriptを実行します。
// Illustratorのバージョンを取得
var illustratorVersion = parseFloat(app.version);
// バージョンチェック
if (illustratorVersion >= 28.0) {
alert("Illustrator 2024以降のバージョンです。");
} else {
alert("Illustrator 2024未満のバージョンです。");
}
すると、次のようなアラートが表示されます。
バージョン番号の取得(4)汎用的な西暦の算出
次のJavaScriptを実行します。
// Illustratorのバージョンを取得
var illustratorVersion = parseFloat(app.version);
// Illustratorバージョンに対応する年を取得する関数
function getIllustratorYear(version) {
var baseVersion = 28; // Illustrator 2024に対応するバージョン
var baseYear = 2024; // Illustrator 2024の年
if (!isNaN(version) && version >= baseVersion) {
return baseYear + Math.floor(version - baseVersion);
} else if (!isNaN(version)) {
return "2024未満のバージョン";
} else {
return "バージョン情報が取得できませんでした";
}
}
// デバッグ用にバージョン情報を表示
if (!isNaN(illustratorVersion)) {
$.writeln("バージョンが正常に取得されました: " + illustratorVersion);
} else {
$.writeln("バージョンが取得できませんでした。");
}
// 対応する年を取得
var illustratorYear = getIllustratorYear(illustratorVersion);
// 結果を表示
alert("Illustratorのバージョン: " + illustratorVersion + "\\n対応する年: " + illustratorYear);
すると、次のようなアラートが表示されます。
バージョン番号の取得(5)AppleScript
ここまでやってきて、「Ai Execute Jsx Text」アクションの値をKeyboard Maestroの変数に受け渡すことが難しいことに気づきます。
AppleScriptでは次のように書きます。
tell application "Adobe Illustrator"
return version
end tell
Keyboard Maestroなら[Save to variable]でKeyboard Maestroに受け渡せます。
一方、JavaScriptの「parseFloat」のような処理がAppleScriptだと「as real」でできそうなのですが理想通りに動きません。
なお、次のように書いてAppleScript内でKeyboard Maestroの変数に渡すことも可能です。
tell application "Adobe Illustrator"
set aiVersion to version
end tell
-- Keyboard Maestro へバージョン情報を送る
do shell script "osascript -e 'tell application \"Keyboard Maestro Engine\" to setvariable \"IllustratorVersion\" to \"" & aiVersion & "\"'"
全体像
AppleScript版の全体像です。
次のような値が表示されます。
ダウンロード
InDesign版
InDesignの場合、Adobeを付けずに実行します。
tell application "InDesign"
return version
end tell
スプラッシュスクリーンでは「20.1」と表示されていても、⌘ + クリックで表示される「コンポーネント情報」で表示される「20.1.0.71」が取得されます。
一度、実行すると、「InDesign」が「Adobe InDesign 2025」に変更されてしまいます。
全体像
マクロを「tell application "InDesign"」が「tell application "Adobe InDesign 2025"」に変更されます。
ダウンロード
ここから先は
¥ 100
Amazonギフトカード5,000円分が当たる
定期マガジンを購読されるとサンプルファイルをダウンロードいただけます。 https://note.com/dtp_tranist/m/mebd7eab21ea5