DTPab

DTPにまつわるあれこれ

もくもく会#9 開催報告

先月22日、DTPerのスクリプトもくもく会#9を開催しました。仕事がべらぼうに忙しく、なかなかブログを更新できずにおりました。というわけで開催報告です。 今回はまたコワーキングスペースによる有料開催ということで、最初から6名と少なめの募集にしまし…

Googleシートに用意した内容をGASで自動ツイートしたい

まずは宣伝 本題 やりたいこと かかった時間 ツイートする内容の用意 コード コードの解説 指定した分類の内容をツイートする スプレッドシートのツイート内容を抽出し、ランダムにひとつ返す Twitter用ライブラリを利用したツイートする関数 定期的に動作さ…

表組の列幅をまとめて変更したい

先日、同僚から「表組の列幅をポチポチ手動で決まったサイズに変えていかなきゃいけないんだけど、表組がぶつ切りになっていて辛い。スクリプトでなんとかできないの?」と相談されました。 そのときは適当に5分くらいで書いたスクリプトを渡して事なきを得…

インデントのある行頭字下げを全角スペースに変換するGAS

WORDでテキストを処理するより*1、Googleドキュメントでやったほうが精神衛生上よろしいのではないか…とGASでテキスト処理してみた。 初めてGoogleドキュメント用のスクリプトを書いたけど、DOMの理解が進んでいたからかすんなり書けた(調べながらだけど10…

InDesignの合成フォント関係スクリプト3件

Twitterで意外に反響があってびっくりしました。InDesignの合成フォントまわり、本当に面倒なんですよね。やっぱりみんな苦労するところは同じなのか…w さて、合成フォント関係のスクリプトを3つ紹介します。 すべての合成フォントに特例文字セットをまとめ…

ScriptUIを少しだけ簡単に利用するモジュール

随分前のもくもく会で、ScriptUIを楽に生成するモジュールを公開しました。 実はそのモジュールを知っている方が前回のもくもく会にいらしてくださり、使い方について改めて説明しました。 説明していて思ったのですが、コードが、その、なんというか、気持…

1if-1for(3):特定の文字スタイルの次の文字

職場で「ある文字スタイルが当たっている文字の、次の文字をスクリプトで処理したいが可能か?」と聞かれたので、試しに書いてみました。 そしたら結果的に1if-1forで収まったのでここに書いておきます。 この画像は、スクリプトで色が青くなる文字スタイル…

ボタンを横並びにしたカスタムダイアログ

ScriptUIでダイアログを作るのが面倒くさいと思いません? かといってconfirmメソッドの「はい・いいえ」とか「Yes・No」って内容じゃないんだよな…というときありますよね? そういうときのためにちょっとしたカスタムボタンのダイアログです。 コードの最…

1if-1for(2):フレームを線幅分小さくする

前回の記事で合成フォントの削除について書くとか書きましたが、諸事情により、選択したオブジェクトを線幅分小さくするスクリプトになりました。楽しみにされていた方(いるのか?)、申し訳ありません。 なぜかって? 急に欲しくなったからです!! さて、…

IDJS教室のテキストが販売されました

すでにお〜まちさんのTwitterやブログでご存知のかたもいらっしゃると思いますが、IDJS教室で使われたテキストが加筆修正されてBOOTHにて販売されました。 cs5.xyz この機会にぜひお手にとってみてください。 初歩の初歩から、こんなことできる?という細か…

1if-1for:書き捨ての小さなスクリプトたち

最近自分が手がけるスクリプトが、1000行を超える中〜大規模なスクリプトか、こまごまと5分くらいで書いて捨てる30行以内くらいのごく小規模のスクリプトのどちらかになりつつあります。というのも、同僚たちから依頼されたスクリプトに細やかに対応する時間…

DTPerのスクリプトもくもく会#8開催報告

いただいた質問など 縦組みで奇数ページの最終行の見出しを判別したい ページの左右 テキストフレームの最終行 まとめ SUIのIconButtonがCCのいくつかから表示がおかしい InDesignの検索置換パネルを利用した検索のしかた SUI生成関数 次回告知 先日、DTPer…

withPropertiesとJSON

はじめに withPropertiesに渡す引数の書き方 オブジェクトリテラルとJSON まとめ おまけ はじめに 先日終了したInDesign JavaScript教室(以下、IDJS教室)の参加者の方と、オブジェクトモデルビューアにある「withProperties」という引数の渡し方がわかりに…

スクリプトを開発・運用する際に気をつけていること

はじめに 環境的な前提 OSによらないスクリプト バージョンに限定されないスクリプト ユーザーフレンドリー スクリプト開発・運用の際に気をつけていること 誰が開発した責任を負うのか明確にする 最小限の労力で最大の効果を目指す 動作条件を細かく想定す…

InDesign JavaScript教室が終わりました

お〜まちさん主催のInDesign JavaScript教室(第一期)が、6/30をもって終了しました。参加された皆さま、本当にお疲れさまでした。 cs5.xyz 打ち上げの最後でお〜まちさんが挨拶中に感極まっているところが印象的で、本当に優しい方なのだな〜と^^;;

InDesign JavaScript教室、いよいよ明日が最終日です

プログラムの勉強の難しいところ プログラム的な考え方 モチベーションの維持 変数という概念とオブジェクトモデル 次で最後です もくもく会の宣伝 かねてよりお伝えしていた通り、お〜まち(大間知聡)さんが主催されている標題の教室にスタッフとして参加…

第24期クロスメディアエキスパート検定試験論述試験の模範解答に選ばれました

以前ツイートしましたが、昨年(2017年)受験したクロスメディアエキスパート検定試験の論述試験の成績が良かったそうで、JAGATから模範解答としてサイトに掲載したいと打診がありました。 ちなみに、受験の経緯と感想などはこちらの記事に書いています。 us…

ESTKのインターフェイスを今風にアレンジ

ふと思い立って、ESTKのインターフェイスを今風にカスタマイズしてみました。 ちょっとBracketsっぽくなりました? まぁ基本的にBrackets使ってるのでESTKは割とどうでもいいんですが(ひどい 一応、こんなふうな(見た目だけ)モダンな感じにしたい方は以下…

【告知】DTPerのスクリプトもくもく会#8を開催します

本日14:00よりconnpassにて、DTPerのスクリプトもくもく会#8の受付を開始します。 dtpmkmk.connpass.com 今回は、#6と同じYUIDEAさんの会議室をお借りしました。 ですので前回と違って無料での開催です。 詳細はconnpassのイベントページに記述してあります…

GoogleAppsScript メモ書き

いつも探しに行くのが面倒くさくて自分用メモ書き。メッセージダイアログ関係の処理。 promptメソッド サンプルコード confirmメソッド サンプルコード gsファイルへの記述

ES3で使うためのArray.filter

【追記 5/30 13:06】 コードに不具合があったため修正しました。あるふぁ(仮)さん、いつもありがとうございます(記事末尾にも追記あり)。 【追記 5/30 15:30】 コードに不具合があったため修正しました。またまたあるふぁ(仮)さん、そして(-z)さん、あ…

ExtendScriptの単位付き計算

【追記 5/28 15:00】 重大な不具合をあるふぁ(仮)さんが見つけてくださったのと、最初に書いたスクリプト(単位付き計算を行う関数)が加算以外に対応していなかったことに気づいたのでここに追記して訂正いたします。 まずあるふぁ(仮)さんからのありが…

ESTKのtargetengineの挙動

ESTKのプリプロセッサディレクティブ、#targetengineについて少し調べたのでメモ。当然すべてInDesignでの検証です。 動的にエンジンを変更できるか 以下のコードをテスト。 #targetengine hoge alert($.engineName); var a = "Hello"; #targetengine fuga a…

DTPerのスクリプトもくもく会#7を開催しました

謝辞 雑感 もくもく成果 想定した処理フロー 実際の処理フロー 変数の定義 同名メニューアクションの絞込み getAreaIndex関数 getMenuAction関数 カラーラベル名の定義 メニューアクションの特定とリスト化 ScriptUIの生成 スクリプト処理 スクリプトコード…

JavaScriptでブラックジャックのコード

先日、JavaScriptでブラックジャックを作る記事を書きました。 uske-s.hatenablog.com もうすぐもくもく会#7ということで、コードを掲載しておきます。 //カードデッキ var deck = deck || [ {value: 1, name: "◆A"}, {value: 2, name: "◆2"}, {value: 3, na…

Illustratorのスクリプト勉強中④

前回までのあらすじ 前回のコード このスクリプトの最終型 今日の目標 前回の補足 値を入力させてそれを受け取る 文字列型から数値型への型変換 水平方向に隙間なく並べる 座標値からソートする 左から順に隙間なく並べる 今日のコード ちょっと間が空いてし…

Illustratorのスクリプト勉強中③

前回までのあらすじ 紆余曲折を経て、選択しているオブジェクトをなんとか整列させるところまでできました。オブジェクトの移動だけならObject.positionプロパティに配列を渡すだけでいいんですね。 また、geometricBounds、controlBounds、visibleBoundsの…

Illustratorのスクリプト勉強中②

前回までのあらすじ 前回のコード 今日の目標 座標を取得する 3つのBounds オブジェクトを整列しよう で、結局どうやって移動するの 0番目のオブジェクトにあわせて整列する 前回までのあらすじ ちゃんと続きましたw 選択しているオブジェクトがどんな順番で…

Illustratorのスクリプト勉強中①

はじめに どんなスクリプトを作るか オブジェクトを捕まえる どういう順番で並んでいるのか 色成分って…? 色成分を配列に取得する関数 選択したオブジェクトの順番がわかった はじめに 職場でスクリプトの制作依頼をもらわない限り、僕は基本的にIllustrato…

JavaScriptでFizz Buzz

お遊びついでということで、Fizz Buzzもやってみました。 普通にやってもつまらないので、Fizz Buzzだけで3種類です。 普通にFizz Buzz for (var i=1; i<=100; i++){ if (i%3 === 0 && i%5 === 0) $.writeln("Fizz Buzz"); else if (i%3 === 0) $.writeln("F…