InDesign:表のセル内の値を百分率にして棒グラフっぽく塗るやつ

どもども。土曜出社なうです…

だしぬけに、こんなかんじの指定が来たんですわ。

どうにも文章での表現に不自由してるんですが、言いたいことはわかりますかねえ。
※引用で教えてもらいました。Excelの条件付き書式「データ バー」というらしいです! 知らなかった。すごいなエクセル。

こんなの、手作業する気なんかまったくなくて、
自分で書くかチャピーに頼むかになるんですが、
土曜出社のウップンが祟って自分で書きました。見越したとおり30分ほどで。


スクリプトは例によってリンク先の右上にある“Download ZIP”からどうぞ。

セルの値で棒グラフ.jsx


ちょっと前準備がありまして。

(日)セル内マージンを0に

とくにインデント目的で左右に仕込んであるやつは段落のほうのインデントでなんとかしましょう。

(月)段落境界線

対象セル内の段落に段落境界線(前境界線)を設定しておいてください。
そのとき、「フレームに収める」のチェックを外しておいてください。

(火)セルの属性

「内容をセル内に入る部分のみ表示」にチェック。

準備は以上ですー。こんなかんじになります。セル境界の線が見づらくなるけどがまんしましょう。


セル群を選択してスクリプト実行しましょう。

はいー。

100を超える値は、まあ100と同等に見えます。
入れ忘れたけど数値として成立していないテキストの場合は0になります。

いつか、どっかの誰かのお役に立ちますように…

Illustrator:楕円形の丸みをいじるスクリプト

どうもどうも。
なんだか入院させられてました。
生まれて初めて救急車のっけられました。
とりあえずもう大丈夫です。ご心配おかけしました。

しばらくおとなしく生きようと思ってたところ、
ちょっと業務で標題のやつが必要になってしまい、めんどくさいのでチャピーに作ってもらいました。
短時間でいいとこまで追い込めてウシシシって思ってたら,
最後の惜しいとこが直らなくて,頼んでない箇所をどんどん改悪され出した(いつものやつ)ので
最後の最後は自分でコードさわって仕上げた…
なんでいつもこうなるんだー。

というわけで、↓ リンク先の右上にある「Download ZIP」でどうぞ。
楕円ふくらみ調整.jsx

処理対象は、選択された1つの楕円形でっす。1つだけ選択しましょう。
ScriptUIが出ます。
スライダーをいじったり、値にダイレクト入力したり。
キャンセルボタンで操作前の状態に戻ります。
値0〜100はバウンディングボックス端を100としたハンドルの長さ比率です。
正円で55ぐらいになるです。

これはテスト中の画面記録。
最初が菱形なのは事前の操作でハンドル長を0にしたからです。

というわけで、また来年。
めりくりめりくり。

あと何年CEPが使えるかわからないけど、こないだ作ったやつをひもとく

どうもどうも。
先日こしらえたイラスターのCEPエクステンション「ドキュメントのカラーモードに合わせてカラーパネルがひゅんひゅんするやつ」(はたしてそんな名前だったかどうか)の中身を、頼まれてないけど少し紐解いて書き残しておきます。

独自の実装はほぼありません。ほとんど全部、公式Cookbookを読んだり、web上の誰かが公開していた情報だったり、Ten A師匠にだらだら聞いたり、チャピーに聞いたりしたものだけど、どこかの誰かの参考になれば幸いです。
未経験だとちょっと厳しい内容かと思います。

って、ほんとにCEPはいつまで生きていてくれるのやら、ですけど。
Photoshopなんかとっくに動かないよ。4年前のクライアントに申し訳がたたない…

スクショだけで追っていくので、コードはここからてきとうにどうぞ


CSXS

では、manifest.xml から。

Extensionを2こ作りました。
ColorPanelAdapter:ホストアプリケーションの起動中ずっと動くもの
RGBModeSelector:設定パネルのあるもの

ColorPanelAdapterの情報

フォーラムを参考にしたもの。
StartOnタグが重要で、これでよくあるエクステンションと違って起動中ずっと動くことになります。
UIタグは、UIを持たない仕様にするので、よくわからないけどこれで。ひどい解説もあったもんだな。

RGBModeSelectorの情報

ドキュメントがRGBのときRGB/HSBどっちを出すのか選ぶための質素なUIを司るやつです。
jsxは1つしか用意していなくて、ColorPanelAdapterと同時に参照するとローカル変数の挙動がどうなるか想像したくなかったので、こっちではコメントアウト。こっちからjsxに用事があるときはVulcanInterfaceでColorPanelAdapterを経由するようにしました(後述のjs参照)。
他はとくに珍しい記述はありません。

HTML

index.html ではjsの参照のみ。だったらファイル名もっと工夫しろよなー。スクショ割愛でーす。

ui.html は、基本的にはスタイルのリンクと2このラジオボタンのみ。bodyタグには外部からのドラッグやドロップを抑止する工夫がしてあります。これをやらないと恐ろしいことが起こる。前に河野さんに相談して教えてもらったやつです。
ほか、コメントアウトした部分ほのかに哀愁があります。

JavaScript

main.js は、大部分はAIHostAdapterを利用した各種イベントリスナーを書いています。
これが起動直後は不安定だったのでチャピーに相談して、イベントアダプタの読み込みが終わったのを確認してから動き出すようにしてもらいました。チャピーが参考にしたどこかの誰かに頭がさがりますねえ。

ほか、UIからの伝達を受けてjsxに投げるためのVulcanInterface。

と、これはただのデバッグ用だけどコンソールに出したい情報をui.js経由しています。
直接コンソール出力できなかった原因はわからないけど強く生きてます。

ui.js のほうはちょっとごちゃごちゃしています。
はじめにローカルストレージからコレ専用の保存済み情報を取得してmodeVal変数に。

つぎに、ちょっと前後しちゃってるけどラジオボタンのクリックイベント。
アロー関数まったく身についてないくせにwebからコピペで実装したやつ。
RGB/HSBの切り替え結果をmodeVal変数にしまって、ローカルストレージを上書きして、
sendMode関数でjsxに送っています。

と、最初に取り出したmodeVal変数があればUIのラジオボタンに反映。
ない時というのは、初回起動時や、キャッシュを削除したときにあたります。
modeVal変数がundefinedのときはラジオボタンの状態を変数に反映するようにしてます。あんまり意味がない気もする。

ついでに、jsxからコンソール出力したいときはこのui.jsで受け取って渡しています。

ExtendScript

最後にjsxです。
冒頭3行のローカル変数のうちcurrentなになには、無駄な処理をおさえるために前回の状態をとっておくためのもの。
あ、でも1こはもうどこでも使ってないや、しまった…
panelModeはUIのRGB/HSBを覚えておくもの。初期値として”RGB”を定義してあります。
最初のリリース時はui.jsからの送信があるまでundefinedのままだったミスがあり、
UIを一度でも表示させないうちは全体がうまく動かないという不具合に見舞われてしまってましたすみませんー。

changePanelMode関数は、ui.jsのラジオボタンの名前を受け取ってpanelMode変数を上書きするもの。
ついでにパネル表示を変更するswitchColorPanel関数も実行しちゃってますかっこいい。

switchColorPanel関数が実行部分です。
ドキュメントのカラースペースを調査して、変える必要があればカラーパネルの表示を変えるもの。
カラーパネル表示の変更には、アクションファイルを作成、読み込み、削除、アクションを実行、削除ということをやっています。

addActionSet関数がアクションの中身で、この内容でファイルを作成して、アプリに読ませたら即削除してますね。
見た目にアクションパネルがせわしなくちゃかっと動くので、「いいよアクション消さなくても残しといてくれても」という人のためにそういうオプションも実装しようと思ったけど、アクションがあるかないかを調べる手段がちょっと厳しいのでやめておきました。

cp関数は、うちがいつも用意する関数でcheck pointの頭文字。変数の値をみる用。
ふだんjsx単体を書くときは$.writeln か alert を出しているんだけど、これはコンソールに出すべくui.jsに送信するやつです。Ten A師匠から授かりました。

以上ですー。全体を眺めてみると、自分にしては無駄な部分が少なめにまとまった印象があります。
自分にしてはだからね。
何かあれば教えてください。
んじゃでは。