見出し画像

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"」に変更されます。

ダウンロード

ここから先は

0字 / 1ファイル

¥ 100

期間限定!Amazon Payで支払うと抽選で
Amazonギフトカード5,000円分が当たる

定期マガジンを購読されるとサンプルファイルをダウンロードいただけます。 https://note.com/dtp_tranist/m/mebd7eab21ea5