2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

AppleScript アップルスクリプト 質問、発表 6

1 :名称未設定:2013/12/21(土) 21:50:45.07 ID:1PJJFexL0.net
質問、発表どっちでもスレ。

■注意
安直なスクリプト作成依頼、丸投げ、「こういうの作ってください!」はお断り。
わからない点、エラーが解決できない点についてはスクリプト片を添えて質問すること。
OSバージョンも忘れずに。

■参考
AppleScript Language Guide
https://developer.apple.com/library/mac/documentation/AppleScript/Conceptual/AppleScriptLangGuide/
TN2065: do shell script
https://developer.apple.com/library/mac/technotes/tn2065/
AppleScript: The Language of Automation
http://www.macosxautomation.com/applescript/
MacWiki - AppleScript
http://macwiki.sourceforge.jp/wiki/index.php/AppleScript
鳶嶋工房 / AppleScript
http://tonbi.jp/AppleScript/
AS Hole(AppleScriptの穴)
http://piyocast.com/as/
■過去スレ
1 http://pc11.2ch.net/test/read.cgi/mac/1174045850/
2 http://pc11.2ch.net/test/read.cgi/mac/1197443062/
3 http://pc11.2ch.net/test/read.cgi/mac/1223026902/
4 http://anago.2ch.net/test/read.cgi/mac/1256127156/
5 http://anago.2ch.net/test/read.cgi/mac/1330350325/

2 :名称未設定:2013/12/22(日) 05:43:56.73 ID:5PKBbx/h0.net
('仄')パイパイ

3 :名称未設定:2013/12/22(日) 22:55:07.58 ID:+aPbluVJ0.net
ここ数年まったく書いてないなAS

4 :名称未設定:2013/12/27(金) 19:35:53.59 ID:9xzAYkXqi.net
マベにてosascriptをセキュリティープライバシーに登録するのはどうやるのでしょう?

MLではできるkeystroke呼び出しが、マベでは動かないです。

5 :名称未設定:2013/12/27(金) 20:51:21.16 ID:HgE/UmENi.net
>>4
一度試行すると実行するアプリが勝手にリストに出現するので、
そのチェックを入れる感じだったと思うが

ターミナルだったらまんまターミナルだし、
スクリプトメニューだとSystemUIServer

たまに何故かosascriptそのものが出てくることもあったがよくわからん

6 :名称未設定:2013/12/30(月) 22:59:41.07 ID:9WnN6qsy0.net
イベントログの履歴をテキストファイルに書き出すコマンドって存在しますか。

とある事情で完全にスクリプトを流したというエビデンスにしたいのです。

7 :名称未設定:2013/12/31(火) 03:05:43.24 ID:A6/iRGot0.net
イベントログってdo shell scriptとかしか表示されないよね
エビデンスが欲しいなら
動作ごとに各成功フラグを追加して最後にそれをテキストに書き出せば

8 :名称未設定:2013/12/31(火) 10:06:45.81 ID:w3RedxCD0.net
>>7
レスありがとう。

質問の仕方が悪かったのだが、実行するスクリプトは、とある文字列をユーザに入力させる。

その入力された文字列が履歴に残っているようなので、丸ごとテキストで書き出すことが出来ればと考えた。

9 :名称未設定:2014/01/02(木) 08:33:24.40 ID:yEVH1Y6SP.net
osascriptで動かすとき、標準出力に文字出力するにはどうするのでしょうか?

10 :名称未設定:2014/01/02(木) 09:51:11.72 ID:lE+LzJk20.net
実行ステータスとしてなら return (reutrn無しでまんまでもだけど)
実行中に逐一ならdo shell scriptでかなあ

11 :名称未設定:2014/01/02(木) 09:56:49.83 ID:lE+LzJk20.net
/dev/stdoutをファイルとして開いてそれに書き込むってのもあるな

12 :名称未設定:2014/01/02(木) 10:31:11.84 ID:sFgAgMLA0.net
script初めだ

display dialg "Happy New Year!!!"

今年もAppleScriptにとって良い年でありますように。

13 :名称未設定:2014/01/02(木) 10:33:47.47 ID:sFgAgMLA0.net
× dialg
○ dialog

なんてこったorz デバッグ初めもやっちまった。

14 :名称未設定:2014/01/02(木) 12:10:19.86 ID:ipDSuQZK0.net
直前のスペースも全角だから注意w

15 :名称未設定:2014/01/06(月) 19:04:31.61 ID:7CI/xVnp0.net
今年もよろしくお願いします。
applescriptでillustratorの行間を変更しようと試みていますが
以下たけうちさんのを参考にと思いillustratorライブラリをみていますがなかなか難しいですね。
ちなみにscriptは
tell application "Adobe Illustrator"
tell document 1
tell text frame 1
tell paragraph 1
set justification to full justify last line left

--right以外にも下記の種類がある
--center/full justify/full justify last line center/
--full justify last line left/full justify last line right
--/left/right
end tell
end tell
end tell
end tell

これって行間の解説をみてみるとleadingというのに当てはまるようですがleadingに
leading (real) : the amount of space between two lines of text (in points)
とあります
(行間をつめたいけどできない)でやりたいのだがどなたかご教授ください。

16 :名称未設定:2014/01/06(月) 23:03:17.53 ID:OUsnDFhy0.net
>>15
tell application "Adobe Illustrator"
tell document 1
tell text frame 1
tell paragraph 1
set auto leading to false
set leading to 10 --単位はpt
end tell
end tell
end tell
end tell

とかになるよ。
数値適用する前に改行の自動をオフにしないとダメ。
paragraphを対象にしていると最終行が改行で終わっているとleadingに数値適用するとエラーとなるので
text frame全体に適用するにはevery paragraph(paragraphs)ではなくevery line(lines)で

tell text frame 1
set auto leading of lines to false
set leading of lines to 10
end tell

↑tell text frame外省略

17 :名称未設定:2014/01/06(月) 23:49:20.98 ID:7CI/xVnp0.net
>>16
どうもありがとうございました。m(_ _)m
set auto leading of lines to false
set leading of lines to 10

この辺りのやり方(文法みたいのがどこかにあると思いますが)がどうもわかりません。
leading (real) : the amount of space between two lines of text (in points)

から
auto leading こういう風な lines to false とか どう学べばそういう答えがでるのか不思議です。
applescriptは中学英語なみとかいわれているけどライブラリをみる限りチンプンカンプンですね。

set leading of lines to 10 なんか どうひねっても浮かんできませんね。(^^;)

でも行間の操作ができましたのでとても助かりました。本当にありがとうございました。感謝です!

18 :名称未設定:2014/01/07(火) 00:25:10.25 ID:WILu6W1O0.net
>>17
>>16の最後の部分は
tell text frame 1
tell lines
set auto leading to false
set leading to 10
end tell
end tell
これと同じ。
ちょっと値代入するだけなのにtellでくくるのはめんどくさいので
set auto leading of lines to false
set leading of lines to 10
とした。
set leading of lines to 10
は優先される部分をあえてカッコでくくると
set (leading of lines) to 10
カッコ内の△△ of □□ってのは「□□の△△」って意味なので
lines(全ての行)のleading(行間)を10にするってこと。
実は↓これでもOK
set lines's leading to 10

auto leading
は最初スクリプト組んで実行してみたら行間変わらなかったので、
Illustratorの書類見たら改行が自動のままだった。
それから解説のlinesとかparagraphの項目みたら
PROPERTIESにauto leadingって項目があったからfalseにしてみたらうまくいったよ。

用語解説の
(real)は実数
(boolean)はtrueかfalse
他にも色々あるけどそれぞれのプロパティの値は形式が決まっているから代入出来る値もそれに合わせないといけない。
r/oって書いてあるのはread onlyの略で値を見ることは出来るけどスクリプト側で設定することは出来ないって事だよ。

19 :名称未設定:2014/01/07(火) 03:56:23.30 ID:A9XxL9bQ0.net
あけましておめでとうございます。
早速質問なんですが。
変数名を出力する事は可能でしょうか?

例えばこうすると、
property test1 : {"x", "y", "z"}
property testItem : {{test1}, {2}, {3}}

set tmp1 to item 1 of item 1 of testItem
set tmp2 to item 2 of item 1 of item 1 of testItem

log tmp1 & "_" & tmp2 as text

出力は、
xyz_y
となりますが。
これを
test1_y
としたいです。

以下のようにリストの中に"test1"を追加する以外に方法はありますか?
property test1 : {"x", "y", "z"}
property testItem : {{test1, "test1"}, {2}, {3}}

set tmp1 to item 2 of item 1 of testItem
set tmp2 to item 2 of item 1 of item 1 of testItem

log tmp1 & "_" & tmp2 as text

20 :名称未設定:2014/01/07(火) 04:19:36.79 ID:A9XxL9bQ0.net
失礼 アンパサンドの文字参照がダメなようで全角で
log tmp1 & "_" & tmp2 as text

log tmp1 & "_" & tmp2 as text
&を全角にしてます

21 :名称未設定:2014/01/07(火) 12:17:10.13 ID:pSl4+Q4s0.net
それってtestItemにtest1そのものではなくtest1の値を代入してるだけなんで、
変数名どーこー以前の問題ですわ

22 :名称未設定:2014/01/07(火) 12:37:03.68 ID:EjQxpbCu0.net
>>18
>用語解説の
>(real)は実数
>(boolean)はtrueかfalse
>他にも色々あるけどそれぞれのプロパティの値は形式が決まっているから代入出来る値もそれに合わせないといけない。
>r/oって書いてあるのはread onlyの略で値を見ることは出来るけどスクリプト側で設定することは出来ないって事だよ。


解説ありがとうございます。m(_ _)m
なるほどそういうことですか。

どころで全体の文章で行間を変えるには別な記述でしょうか?
現況の
>set auto leading of lines to false
>set leading of lines to 10
では
行間変更では改行がある前は行間ポイントが変更できますが
それ以降の行間は変更がなされないのは他に書き方があるのでしょうか?
>every line(lines)
と変更しても改行後の文には行間は及ぼしません。

どのような記述がよろしいでしょうか?

23 :名称未設定:2014/01/07(火) 12:38:02.99 ID:EjQxpbCu0.net
>>18
>用語解説の
>(real)は実数
>(boolean)はtrueかfalse
>他にも色々あるけどそれぞれのプロパティの値は形式が決まっているから代入出来る値もそれに合わせないといけない。
>r/oって書いてあるのはread onlyの略で値を見ることは出来るけどスクリプト側で設定することは出来ないって事だよ。


解説ありがとうございます。m(_ _)m
なるほどそういうことですか。

どころで全体の文章で行間を変えるには別な記述でしょうか?
現況の
>set auto leading of lines to false
>set leading of lines to 10
では
行間変更では改行がある前は行間ポイントが変更できますが
それ以降の行間は変更がなされないのは他に書き方があるのでしょうか?
>every line(lines)
と変更しても改行後の文には行間は及ぼしません。

どのような記述がよろしいでしょうか?

24 :名称未設定:2014/01/07(火) 13:21:10.16 ID:EjQxpbCu0.net
>23
自己解決しました。すみません m(_ _)m

>text frame全体に適用するにはevery paragraph(paragraphs)ではなくevery line(lines)で

text frame ←これの意味が分かりました。

ありがとうございました。

25 :名称未設定:2014/01/07(火) 18:27:44.74 ID:DaJojQA60.net
>>21
いやそれは、分かってるんです
変数の名前を取得する方法があれば教えてほしいのです。
分からなかったので、変数名と同じ名前をテキストでリストに入れて呼び出してたのですが、
それをしないでも、変数名が取得できれば楽だと思ったので、
無いのですかね?

26 :名称未設定:2014/01/08(水) 20:23:55.36 ID:99yykXTN0.net
>>25
変数には名前はないよ。

27 :名称未設定:2014/01/10(金) 19:08:15.63 ID:+KoAXPC/0.net
Illustratorのオーバーフローの検出をしたいのですがネットで色々探ってみると

IllustratorのテキストフレームにはIndesignのようにoverflowプロパティがありません。
...paragraphとlineのキャラクタ数を比較すると表示されていないキャラクタの数を把握できる...
らしいのです。
で、たけうちとおるさんの「オーバーフローを調べる」を元に行間を自由に変更できないかと思い
色々模索しておりますがどうも詰まってしまいました。下記URL参照...頭にhを入れてください
ttp://www.adg7.com/takenote_b/2009/03/12.html

最初の行に
property i : 24   とりあえずトップに挿入する。行間24ptで固定
....
....
....display dialog "オーバーフロー:" のところに下記スクリプトを挿入した
....
tell application "Adobe Illustrator"
tell document 1
tell every text frame
tell every line
set auto leading of lines to false
repeat with i from 20 to i
set leading of lines to i
end repeat
end tell
end tell
end tell

のような感じに行間をテキストボックス内で自動的に収まるようにしたのだが思うようにいきません。

テキストボックスは固定してテキストが少なくても全体が均一になるよう自動行間、自動調整できないかと思案しています。
どなたかご教授よろしくお願いします。

28 :名称未設定:2014/01/11(土) 01:25:24.03 ID:bFFRZv4H0.net
repeat with i from 20 to i
普通こんな記述はしない。
行間の初期値は該当するtext frameから読み取った方が良いし
目的のtext frameがtext frame 1で全行同じ行間であれば
tell document 1の後に
set defLeading to leading of character 1 of text frame 1
1文字目の行間を取得で十分
オーバーフローしてるテキストボックスをの行間を詰めるにしても
行間を少しずつ(例えば0.1ptずつとか)「減らす」記述にしないとダメ。
repeat with i from defLeading to 0 by -0.1
減らす毎に文字がオーバーフローしていないかチェックして
文字が収まったらexit repeatっていう処理が必要
tell every text frame
の辺りも全部のテキストフレームに一括で同じ処理する場合のみ使う。


というかあなたにそのスクリプトはちょっと難しすぎる。このまま進むのは危ない。
ハンドラ(サブルーチン・関数)の使い方も分からないでしょ?
on overflow(tFrame)

end overflow
の部分

まずAppleScriptの基本というか
スクリプトそのものの基本から(Web用のJavascriptでも良いので)勉強した方が良い。
どうしてもApplescriptでって事なら入門書をどうにかして入手して
最初から本の通りにスクリプト入力して実行してはちょっといじって確認して…
みたいなことを繰り返しながら全部通しでやるのが良い。

29 :名称未設定:2014/01/11(土) 10:18:55.69 ID:kmKDcWFPP.net
初心者にイラレほかアドビの主戦級ってけっこう厳しいと思うですの。本当に必要性があれば書くけれど、
私の戦場ではいまだにその需要がない。たぶんイラレで自由自在にスクリプト書ければ黒帯でしょう。

松の内明けちゃいましたが、今年もともに戦いましょう。

30 :名称未設定:2014/01/11(土) 11:54:53.96 ID:QDclpEY40.net
>28
ご教授ありがとうございました。m(_ _)m
>ハンドラ(サブルーチン・関数)の使い方も分からないでしょ?
おっしゃる通りです。使い方がわかりません。
でもillustratorでの行間を自由に変更できないかを模索しています。
勉強不足はわかっているつもりですがAppleScriptをネットなどで調べたりしています。
また、こばやしゆたかさんのAppleScriptリファレンスを持っていますが今のillustrator対応ではありません。
勉強するしか方法はないのでしょうがその方法が多分的外れであるのは承知しています。
それでプロの方からみるとチンプンカンプンだというのも承知の上で恥をしのいで投稿させてもらっています。

仕事上同じ繰り返しなどが多く変更もいちいち手で修正がありすぎてなんとか自動化できるところは自動化したい
そういう思いです。

31 :名称未設定:2014/01/11(土) 17:47:10.22 ID:kmKDcWFPP.net
>>30
ハンドラ

パラメーターは違うけど似たような処理を何度もすることがプログラムにはよくある。
そういうとき、毎回コードを書いてもいいけど、コードがぐちゃぐちゃになる。
だからそういう部分をサブルーチンとしてくくり出して何度も再利用する。これがハンドラ。
そうやってハンドラを部品として沢山作って組み合わせる、というのが基本です。

いきなり核兵器作ろうと思っても作れないの。石つぶての投げ方、ナイフ、弓、銃、ロケット、原子力。
、、、、、いろいろ分かってやっと目的のものが作れるのね。ハンドラはそう、黒曜石で作った
弓矢のやじりくらいではないかと。たぶんあなたが作りたいのは銃くらいのレベルでしょう。
一生懸命やって2か月コースかな。あたしゃそこまでいくのに2年くらいかかってる気がする。

一歩ずつ進むには問題の切り分けが大切。
なにを言ってるかわかんねーと思いますが、ご武運を祈ります。
初心者が一発書きでコードが動いたら、その人すごすぎるよ。
お金払うからいろいろコード書いて欲しいです。

32 :名称未設定:2014/01/11(土) 19:29:50.94 ID:QDclpEY40.net
>31
励ましていただき感謝です。

>一歩ずつ進むには問題の切り分けが大切。

今いろいろなスクリプトを見ています。
その中の働きを自分ながら勉強しています。
的外れ的な質問も多々あるかもしれません
そうのような私に救いの手を差し伸べてくださる皆様には感謝いたしております。m(_ _)m

33 :名称未設定:2014/01/11(土) 23:12:54.53 ID:QDclpEY40.net
なんとか本文を自動行間にする事はできました。皆様ありがとうございました。m(_ _)m

たけうちとおるさんのハンドラを利用してオーバーフローしたテキストに行間を計算させて
必要なテキストボックスのオーバーフローの分を自動計算させる事にこぎ着けました。
まだ改善の余地はありますがなんとか思惑通りになりほっとしています。
今のところ別textframeの行間も一緒に動いているようなので指定したtext frameだけの行間を調整できるようにしたいと思います。
アドバイスありがとうございました。引き続きご教授賜りますようお願いいたします。

34 :名称未設定:2014/01/11(土) 23:13:33.10 ID:QDclpEY40.net
tell application "Adobe Illustrator"
tell document 1 -- ← every document にすると全体のテキストにスクリプトが動くのであえてDocument1にしています
--set defLeading to leading of character 1 of text frame 1
set defLeading to "20" -- ←本文の行間を固定しています。ここは書類に応じて変更したりします。
repeat with tFrame in every text frame
if kind of tFrame is {area text} then
if my overflow(tFrame) then
--display dialog "オーバーフロー:" & contents of tFrame ←ここでオーバーフローしたテキストが抽出されますのでこれを利用しました。
tell every text frame
tell every line
repeat with i from defLeading to 0 by -1 ←ここで行間を縮めています
set auto leading of lines to false
set leading of lines to defLeading
end repeat
end tell
end tell
end if
end if
end repeat
end tell
end tell

35 :名称未設定:2014/01/11(土) 23:14:36.55 ID:QDclpEY40.net
ハンドラはたけうちとおるさんのを参照しています
on overflow(tFrame)
set OriginalDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to ""
tell application "Adobe Illustrator"
set myLastP to (contents of every paragraph of tFrame) as string
set myLastL to (contents of every line of tFrame) as string
set AppleScript's text item delimiters to OriginalDelimiters
if myLastP is not myLastL then
set AppleScript's text item delimiters to OriginalDelimiters
return true
else
set AppleScript's text item delimiters to OriginalDelimiters
return false
end if
end tell
end overflow

36 :名称未設定:2014/01/11(土) 23:27:23.61 ID:bFFRZv4H0.net
とりあえずユーザー定義ハンドラの使い方の例

set theText to "あいうえお"
set startCount to 1
set endCount to 2
my textMask(theText, startCount, endCount)

set aaa to "かきくけこ"
set bbb to 2
set ccc to 4
my textMask(aaa, bbb, ccc)

my textMask("さしすせそたちつてと", 5, -1)


on textMask(theText, startCount, endCount)
set resultText to text startCount thru endCount of theText
set startCountText to my minusCheck(startCount)
set endCountText to my minusCheck(endCount)
display dialog "テキスト「" & theText & "」の" & startCountText & "文字目〜" & endCountText & "文字目までは「" & resultText & "」です"
end textMask

on minusCheck(theCount)
if theCount < 0 then
return "最後から" & (-theCount as Unicode text)
else
return theCount as Unicode text
end if
end minusCheck

あー何か勉強し始めた頃を思い出したよ。
最初ハンドラ内の変数名と呼び出し側の変数名が違って大丈夫なの?とか思ってた。

37 :名称未設定:2014/01/11(土) 23:30:57.28 ID:bFFRZv4H0.net
>>34
>if my overflow(tFrame) then
の後の
>tell every text frame

>tell tFrame
で良いよ

38 :名称未設定:2014/01/11(土) 23:33:03.24 ID:QDclpEY40.net
追伸
tell text frame 1~18ぐらいの範囲でtext frameが指定できるようです。

ありがとうございます。m(_ _)m

39 :名称未設定:2014/01/11(土) 23:34:54.02 ID:QDclpEY40.net
>34
>>tell tFrame
>で良いよ

ありがとうございます。m(_ _)m

40 :名称未設定:2014/01/11(土) 23:37:42.10 ID:QDclpEY40.net
>36
>ユーザー定義ハンドラの使い方の例
ありがとうございます。m(__)m

参考にさせていただきます。

41 :名称未設定:2014/01/11(土) 23:39:53.28 ID:bFFRZv4H0.net
>>34
>set defLeading to "20"
set defLeading to 20
にしないと数値として扱えないんじゃないかな?

>repeat with i from defLeading to 0 by -1 ←ここで行間を縮めています
>set auto leading of lines to false
>set leading of lines to defLeading
>end repeat
これだと行間0になるまで止まらない気がするよ。(実際は0になったとこでIllustrator側でエラー返すと思うけど)

repeat with i from defLeading to 0 by -1 ←ここで行間を縮めています
set auto leading of lines to false
set leading of lines to defLeading
if not my overflow(tFrame) then
exit repeat
end if
end repeat

42 :名称未設定:2014/01/11(土) 23:54:58.99 ID:QDclpEY40.net
>41
ありがとうございます。m(_ _)m

>数値として扱えないんじゃないかな?

なんとなく動いているようです。(^^;)

>これだと行間0になるまで止まらない気がするよ。(実際は0になったとこでIllustrator側でエラー返すと思うけど)

------返された値
計算が続いて......
set auto leading of every line of every line of every text frame of document 1 to false
set leading of every line of every line of every text frame of document 1 to "22"
get kind of item 7 of every text frame of document 1
--> {point text}
計算が続いて......
get kind of item 18 of every text frame of document 1
--> {point text}
end tell

で、終了してます。エラーは出ていません。

43 :名称未設定:2014/01/11(土) 23:59:00.58 ID:QDclpEY40.net
ちなみに環境は
osx 10.9.1
Applescript 2.6
illustrator CC
です

44 :名称未設定:2014/01/12(日) 00:04:37.80 ID:4upz722c0.net
>41

>repeat with i from defLeading to 0 by -1 ←ここで行間を縮めています
>set auto leading of lines to false
>set leading of lines to defLeading
>if not my overflow(tFrame) then
>exit repeat
>end if
>end repeat

これだと以下の部分がなくなりました
ーーーーーーー返された値
set auto leading of every line of every line of every text frame of document 1 to false
set leading of every line of every line of every text frame of document 1 to "22"
get kind of item 7 of every text frame of document 1
--> {point text}

------------------返された値  この部分が残りました
get kind of item 18 of every text frame of document 1
--> {point text}
end tell

45 :名称未設定:2014/01/12(日) 00:23:03.89 ID:yPrbZhDQ0.net
>>44
>>37の部分は修正してる?
18番目のテキストフレームの種類が{point text}(エリアテキストではなく普通に打ち込んだテキスト)って事だけど

あと
set auto leading of lines to false
は1回実行すれば大丈夫なのでrepeatの外でOKだったのと
さらに一つ見逃してた。
repeatでiを変動させて行間変えないと行けないのにdefLeading設定しちゃってる。
>set leading of lines to defLeading

set leading of lines to i


set auto leading of lines to false
repeat with i from defLeading to 0 by -1 ←ここで行間を縮めています
set leading of lines to i
if not my overflow(tFrame) then
exit repeat
end if
end repeat

46 :名称未設定:2014/01/12(日) 01:14:51.44 ID:yPrbZhDQ0.net
あー何度もごめん。
set leading of lines to i
だとエリアに収まってる部分しか行間変えてくれないから
paragraph指定するしかないのか。
set auto leading to falseとか
最後が改行で終わってるとエラーになるからIllustratorの書類側で気を使わないといけないかも。
最初から自動行間になっていない事前提なのと最後が改行で終わっていないというのが条件

tell tFrame
tell every paragraph
repeat with i from defLeading to 0 by -1
set leading to i
if not my overflow(tFrame) then
exit repeat
end if
end repeat
end tell
end tell

47 :名称未設定:2014/01/12(日) 01:20:17.06 ID:yPrbZhDQ0.net
あ、やっぱダメだ…
エリア外のparagraphに対してleadingの設定ができなさそう。

48 :名称未設定:2014/01/12(日) 10:47:12.63 ID:od5l1ettP.net
ウザすぎ。ここは手取り足取り教える場所じゃねーんだよ。よそでやれ。

49 :名称未設定:2014/01/12(日) 10:49:19.47 ID:od5l1ettP.net
書き忘れた。やるならここ見てるいろんな人に還元しながらやれ。それなら歓迎。

50 :名称未設定:2014/01/12(日) 22:23:31.18 ID:4upz722c0.net
>46さん
いろいろありがとうございます。m(_ _)m

結局下記のような記述で自動行間を整える事にしました。
ご指摘の
>set leading of lines to i
に変更して起動したところとりあえずエラーもなくできています。


>48さん
ご立腹されているようで申し訳ありませんね。気にお障りならお詫びいたします。m(_ _)m
それから
>やるならここ見てるいろんな人に還元しながらやれ。

おっしゃる通りです。皆様とともに学びを通してapplescriptでの可能性を見てみたいと思っています。今後ともよろしくお願いします。

51 :名称未設定:2014/01/12(日) 22:26:26.36 ID:4upz722c0.net
行間を自動にてつめるスクリプトですが改良の余地がまだたくさんあるようです。
個人的にはこのスクリプトで自分が自分が目指していたのができとても喜んでいます。
下記に教えてくださった皆様のscriptを元に利用しているapplescriptです。
tell application "Adobe Illustrator"
tell document 1 -- ← every document にすると全体のテキストにかかるようであえてDocument1にします
--set defLeading to leading of character 1 of text frame 1
set defLeading to "24" -- ←本文の行間を固定しています
repeat with tFrame in every text frame
if kind of tFrame is {area text} then
if my overflow(tFrame) then
--display dialog "オーバーフロー:" & contents of tFrame
tell text frame 6
tell every line
repeat with i from defLeading to 0 by -1
set auto leading of lines to false
set leading of lines to i
if not my overflow(tFrame) then
exit repeat
end if
end repeat
end tell
end tell
end if
end if
end repeat
end tell
end tell

52 :名称未設定:2014/01/12(日) 22:27:20.26 ID:4upz722c0.net
たけうちとおるさんのハンドラをそのまま利用しています。
on overflow(tFrame)
set OriginalDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to ""
tell application "Adobe Illustrator"
set myLastP to (contents of every paragraph of tFrame) as string
set myLastL to (contents of every line of tFrame) as string
set AppleScript's text item delimiters to OriginalDelimiters
if myLastP is not myLastL then
set AppleScript's text item delimiters to OriginalDelimiters
return true
else
set AppleScript's text item delimiters to OriginalDelimiters
return false
end if
end tell
end overflow

53 :名称未設定:2014/01/13(月) 03:11:37.98 ID:Sx62P48w0.net
do shell scriptを何度も繰り返しているのだけど、shellコマンドを入力する度に別のターミナルが開いてしまう。

tell application "Terminal"
do script with command "hoge"
do script with command "hoge2"
end tell

hogeとhoge2のコマンドを一つのターミナルウィンドウで処理させる事ってできますか?

54 :名称未設定:2014/01/13(月) 03:29:47.81 ID:XwnsQAAS0.net
コピペで動くんじゃないか

55 :名称未設定:2014/01/13(月) 04:10:03.05 ID:VPcx8yeO0.net
>>53
--ただ続けて実行したいだけなら
tell application "Terminal"
do script "hoge; hoge2"
end tell

--do scriptの戻りが実行されたtabなのでそれを使うパターン
tell application "Terminal"
do script "hoge"
do script "hoge2" in result
end tell

とりあえずdo shell scriptとTerminalのdo scriptが別物ってのは覚えとけ
ちなみに前者はdo shell scriptでも使える方法

56 :名称未設定:2014/01/13(月) 08:43:43.11 ID:Wpl4bEnlP.net
>>53
どういう理屈でアプリケーションを操作する仕組みか考えるといい。
Terminalはshellコマンドを実行するアプリではなく、PCをターミナルウインドウで
操作するアプリ。だからillustratorでパスとかオブジェクトを操作するのと同様、
操作する対象を「tell」などで明確にして実行することが大切。
その例だとアプリ本体に実行を指示しているだけなのでそんな結果になる。
過去にもその話、あったよ。

57 :名称未設定:2014/01/14(火) 16:18:00.69 ID:VipRDOQb0.net
Illustratorのテキスト書体変更でエラーがでました。
どなたかご教授ください。

tell application "Adobe Illustrator"
tell document 1
tell text frame 1
set properties of every paragraph of text frame 1 in document 1 to {text font:"Osaka"}
end tell
end tell
end tell

58 :名称未設定:2014/01/14(火) 21:10:07.61 ID:ZXykgTnJ0.net
>>57
ここで散々質問してきた人?
だとしたら成長の跡が見られない。
tellとはなんぞやからやり直した方が良い。

59 :名称未設定:2014/01/14(火) 22:03:45.56 ID:VipRDOQb0.net
>58
これでいいの?
set setStr to "サンプルテキスト"
set X to 10
set Y to 10
set setStr to setStr as string
set X to X as real
set Y to Y as real
set pt to 2.83
set X to X * pt
set Y to Y * pt
tell application "Adobe Illustrator"
set placedRef to make new text frame in document 1 with properties {contents:setStr, position:{X, Y}}
set properties of every paragraph of text frame 1 in document 1 to {size:8.5, fill color:{class:CMYK color info, black:100, cyan:0, magenta:0, yellow:0}, text font:"ShinGo-Bold-83pv-RKSJ-H"}
end tell

60 :名称未設定:2014/01/14(火) 22:57:38.60 ID:VipRDOQb0.net
>58
それともこれかな?
tell application "Adobe Illustrator"
set docRef to make new document with properties {color space:CMYK}
set romanText to "日本語書体変換"
set newText to romanText
set textRef to make new text frame in docRef with properties {position:{100, 200}, contents:newText}
set charStyle to make new character style in docRef with properties {name:"ヒラギノ明朝 Pro-W3"}
set kerning method of charStyle to metricsromanonly
set properties of every paragraph of text frame 1 in document 1 to {size:48}
set cmykColor to {cyan:50, magenta:20, yellow:10, black:5}
set fill color of charStyle to cmykColor
apply character style charStyle to text of textRef
end tell

61 :名称未設定:2014/01/14(火) 23:30:19.11 ID:VipRDOQb0.net
>58
>だとしたら成長の跡が見られない。

あんたはどれだけえらい人なんだね。はじめはみんな素人ではないの?
ほんとはプログラムも大してくめないのではないの? ちょっとだけプログラムが組めるっていう人は鼻が偉〜い高くなるのさ。
本当のプログラマーは相手に教えるだけの力量と親切丁寧に教える人をさすんだ。

そういう玉の小さい人からは教えを請いたいとは思わなんだ。あとで偉い請求書まわされてしまうからね。(笑
馬鹿にするのは大概にしなさい。あ〜出し惜しみかいな。そうだね肝っ玉の小ささに笑ってしまいますね。
もっとおおらかに教える事はできないのですか? まぁあなたの勝手ですけどね。

素人が玄人に追いつくのに何年という時間をかけるのは昔の話だよ
今頃
>tellとはなんぞやからやり直した方が良い。
とは時代遅れの考え方だね。
AppleScriptで何ができてどういう使い方ができるか。ただ単にパソコンの前で自己満足するのが自慢なようだな58さん。
もっと大きく物事はみないとな。アリが這いつくばって餌を集めるより鳥になって自由に飛ぶ事を教え合うのがいいってものよ。(笑

62 :名称未設定:2014/01/15(水) 00:17:20.17 ID:BLw1nVYH0.net
凄いね

63 :名称未設定:2014/01/15(水) 00:25:21.78 ID:a7YA5/rX0.net
なんだかよくわからないなあw

64 :名称未設定:2014/01/15(水) 11:16:06.94 ID:/LtsrHqK0.net
技術があってもリストラされ能力はあっていも生かしきれない。
そこは貧乏人の集まるところ。
お互い牽制し合って生きているところ。
あ〜さもしい生き方に疲れていませんか。
ドングリの背比べで自分が大将だと思っている。
出る杭は今のうちに叩きのめそう。
村社会を保持しよう。
時代遅れを感じていない。
なんだかよくわからないと宣う輩。
あなたの未来はモグラの生き方。一生日の目を見ない。う〜ん 残念。

65 :名称未設定:2014/01/15(水) 11:35:17.84 ID:/LtsrHqK0.net
人工頭脳をApplescriptで作れるなら認めてあげよう。
ゲーマーがゲームを作った人に俺が偉いんだよという人に似ている。
所詮、AppleScriptは日本人が作ってはいないが日本人は「おれはあんたよりうまくプログラムが組めるよ」という
ならAppleScriptでつくった自動ロボットを作った方がよい。マックではそれができるんだよ。Windowsでのだきるさ
だがマックの環境はwinよりもっと簡単に仕上がる。

君らの頭脳で受付から製品製造までAppleScriptで組めるか? むりだろうな。
Illustratorで版下を作成できるか? 無理だろう。仕事の内容を理解してないからな。
できた版下を相手にPDFで校正する機能を作れるか? 手動ならできるような。だが全て自動化では無理だね。
作業効率を重視した流れを作れるか? 仕事が何なのかわからんから無理だね。
最後に納品書を自動で書き出せるか それは経理がわからんから無理だね。
業務の流れを全て把握しているのか それは社長のする仕事だからわからんでもいいと云うかもね.


一つだけしかできないようなプログラマーなんて社会では必要性がないいんだよ。

66 :名称未設定:2014/01/15(水) 11:52:18.37 ID:/LtsrHqK0.net
世の中には親切にする人もいる。そういう人は多くの恵みを受ける。
それはこの世界が多く与えたものは多く得ると云われる世界だからだ。相対理論なのさ。陰陽の世界観。朱に染まれば赤くなる。類は類を呼ぶ。
相手をけなす人は自分で自分をけなしているのと同じ。韓国の仕様と中国の仕様が一緒だと日本人は感じているのと同じ。

人の可能性を育てるのもこの世界だ。なんらかの縁でここに来ているならそれこそ大事にしなさいな。
わからん人には何倍でも説明したら説明するほど自分の理解度が増していく。それはあらゆるところから情報を
得ようと自分が勉強することになるからね。
それが社会勉強なんだよ。プログラムを訪ねにここへ来る人はそれが本来の目的ではないと思う。
最終的に誰かにきちんと説明だできるまでになるようになるための勉強でもあるんだよ。
だから人が困っているなら自分が勉強したのが役立つときなのだ。
58さんわかったかね。

67 :名称未設定:2014/01/15(水) 11:54:31.85 ID:UeMn6f2J0.net
見えないレス多すぎ

68 :名称未設定:2014/01/15(水) 12:03:57.04 ID:/LtsrHqK0.net
あたまのわるいやつおおすぎ

69 :名称未設定:2014/01/15(水) 12:43:41.67 ID:/LtsrHqK0.net
tell application "Adobe Illustrator"
set docRef to make new document with properties {color space:CMYK}
set romanText to "日本語書体変換"
set newText to romanText
set textRef to make new text frame in docRef with properties {position:{100, 200}, contents:newText}
set charStyle to make new character style in docRef with properties {name:"ヒラギノ明朝 Pro-W3"}
set kerning method of charStyle to metricsromanonly
set properties of every paragraph of text frame 1 in document 1 to {size:48}
set cmykColor to {cyan:50, magenta:20, yellow:10, black:5}
set fill color of charStyle to cmykColor
apply character style charStyle to text of textRef
end tell


書体変換ができないのだが
set charStyle to make new character style in docRef with properties {name:"ヒラギノ明朝 Pro-W3"}
これってどうだろうか

70 :名称未設定:2014/01/15(水) 12:56:37.57 ID:rX7GSZ3z0.net
58もしょーもないけどあんたもぶちまけ過ぎ

71 :名称未設定:2014/01/15(水) 13:32:40.20 ID:NM6x1RRT0.net
だな。てか、やっぱり教えてほしい方が教えてくれる人を定義しているのか?
だったらダメダメだなあ。連投で超ダメダメ具合を晒して病んでるなと思うな。黙って質問だけしてりゃいいのに

72 :名称未設定:2014/01/15(水) 14:38:35.33 ID:/LtsrHqK0.net
>70
>71
>あんたもぶちまけ過ぎ
本音で語らないといけないと教わっているもんでね。
>やっぱり教えてほしい方が教えてくれる人を定義しているのか?
定義も何もしてないし、ごく普通の感覚だよ。
技術者の前に人であってほしいという思いだけです。
>連投で超ダメダメ具合を晒して病んでるなと思うな。
連投ではだめですか?
枯れ木も山のにぎわいというではないかね。
盛り上げたいだけですよ。(笑
>黙って質問だけしてりゃいいのに
何かを恐れながら聞き出しているって感じだね。
牽制しながら質問しているようだが....お互い成長期ですかね。幼少期か。
すごいプログラム例えば自動化をしている人がいますか?
印刷業界で第一人者、デジタルでばりばりapplescriptを利用していますか?
それも自動化にして楽してお仕事してますか?
applescriptで日本を代表する人がここにいますか?
applescriptの執筆活動家はいますか?
もしそういう人がここにいたなら日本のapplescriptのベースを引き上げてほしいな。
まぁ諸先輩方の考え方はよく知らないけどこの程度でだめだしならしょうがないね。
もう少し太っ腹かと期待したが無理だったということか。
まあせいぜい牽制しながらぼちぼちやりなよ。(笑
また質問などさせてもらうけどね。

73 :名称未設定:2014/01/15(水) 14:58:13.51 ID:NM6x1RRT0.net
>本音で語らないといけないと教わっているもんでね
教わっているなら、>>58のもそのままとればいい。自分が語るのだけ?他人が語るのは許さないの?
全くAppleScriptと関係無いのにうんざりだぜ

あんたが教える立場であってもあんたのような態度ではあんたは教えないだろ?それは、あんたの>>58の異常な反応から明らかだと思うのだが
まあ、見物だなあ。質問する時も現在の態度でどうかよろしくw

74 :名称未設定:2014/01/15(水) 15:05:27.12 ID:/LtsrHqK0.net
>73
>まあ、見物だなあ。質問する時も現在の態度でどうかよろしくw
よろしくねw
まぁせいぜい腕を磨いて貢献してねw
どんどん質問するからねw

75 :名称未設定:2014/01/15(水) 15:07:18.04 ID:NM6x1RRT0.net
本気で言っているの?それ。他人を自分の都合の良い人としか見てないってことだよ?

76 :名称未設定:2014/01/15(水) 15:14:28.03 ID:/LtsrHqK0.net
>75
冗談さ

77 :名称未設定:2014/01/15(水) 15:17:00.22 ID:NM6x1RRT0.net
冗談では済まない。済まないので「すみません」という言うべきだなw
あんだけ饒舌であーだこーだ言うのだからそのくらいは言うべきだろう

78 :名称未設定:2014/01/15(水) 15:21:21.85 ID:/LtsrHqK0.net
>77
>冗談では済まない。済まないので「すみません」という言うべきだなw
すみませんw

79 :名称未設定:2014/01/15(水) 15:25:42.76 ID:NM6x1RRT0.net
なぜ、w をつける。言っている事とやっている事が乖離しているぞ
まあ、なんかまムカついている、また、変なプライドwだけはすごいというのは既知のことなので、それで許してやろう、俺はw
全くAppleScriptと関係無いのにうんざりだぜなのにいw長くなったがおしまい

80 :名称未設定:2014/01/15(水) 16:16:23.79 ID:/LtsrHqK0.net
>全くAppleScriptと関係無いのにうんざりだぜなのにいw
じゃあさ。
書体変換ができないのだが
set charStyle to make new character style in docRef with properties {name:"ヒラギノ明朝 Pro-W3"}
これってどうだろうかね知っている?
変換ができないんだよ。
Marvericksでさ、Illustrator CC 使ってんだ。
だが書体変更がきかんのだよそちらならすぐ解けるんでしょ。ちょっと難しいかな?

81 :名称未設定:2014/01/15(水) 17:01:36.69 ID:NM6x1RRT0.net
その調子でいいよw
「ちょっと難しいかな?」と煽ってる(&できれば答えが欲しい)のだろうが、わからないお前が何を言うー、ってことだけにしかならないに
まあ、飽きれたけど考えてみればば調子が変わっていないのでよろしいw

82 :名称未設定:2014/01/15(水) 17:14:15.46 ID:/LtsrHqK0.net
まぁ知らない人にきいちゃだめ!ってことだよ。w
幼児期な人には解答できないのはわかっているさw
ただ君の力量がどれだけあるか試しただけさ。w

83 :名称未設定:2014/01/15(水) 17:35:06.21 ID:/LtsrHqK0.net
>81
知らないお前に教えてあげるよw
ヒントはここにw
tell application "Adobe Illustrator"
tell document 1
tell text frame 1
tell character 2
get properties
end tell
end tell
end tell
end tell

84 :名称未設定:2014/01/15(水) 18:20:21.61 ID:NM6x1RRT0.net
笑った。なに続いてレスしてんの

んな、試しているのはわかってるっての、そういうのをわかってないって、とことんめんどくせーやつだなーということで

Adobe Illustrator なんてちょっとしか触った事が無いぼくちんがデモ版をインストールしてやってみたよ
https://www.dropbox.com/s/9f565hvd5fxcyso/ScreenFlow.mov
なんで、こんなことを ID:/LtsrHqK0 が必死に続けているのかわからないなw

いじょーっ!

85 :名称未設定:2014/01/15(水) 20:40:15.79 ID:/LtsrHqK0.net
ご足労なこった。そらそうでしょw
どうしてバックを見せないんだw
10.8なら動くんだよw 10.9.1にしてみなw
今までのappleScriptが動かなくなるよw
Mavericksでは動かんよw
怖くてバージョンアップができんかもなwww

もう一回動画を取り直せ ガンバレ!!  www

86 :名称未設定:2014/01/15(水) 21:17:59.97 ID:/LtsrHqK0.net
ちなみにテキスト全体への書体変更は下記のようです。書体ポイント変更はsizeで変更。
Marvericksでも動きます。
tell application "Adobe Illustrator"
set atype to every text frame of document 1
set myatype to count of every text frame of document 1
repeat with i in atype
set the text font of text of i to text font "ShinseiKaiPro-CBSK1"
end repeat
repeat with n from 1 to myatype
tell document 1
tell text frame n
tell text range
tell every line
set size to 40
end tell
end tell
end tell
end tell
end repeat
end tell

87 :名称未設定:2014/01/15(水) 21:21:26.30 ID:/LtsrHqK0.net
まとめしたのは。
tell application "Adobe Illustrator"
set atype to every text frame of document 1
set myatype to count of every text frame of document 1
repeat with i in atype
set the text font of text of i to text font "ShinseiKaiPro-CBSK1"
end repeat
repeat with n from 1 to myatype
tell every line of text range of text frame n of document 1
set size to 40
end tell
end repeat
end tell

88 :名称未設定:2014/01/15(水) 21:29:51.48 ID:NM6x1RRT0.net
そのうにゃうにゃしているのを、シンプル(余計なものを削っているだけ)にしているだけなのだがな
やっとわかってよかったねw

89 :名称未設定:2014/01/15(水) 21:32:17.24 ID:rKJergxG0.net
うざ

90 :名称未設定:2014/01/15(水) 21:48:55.51 ID:/LtsrHqK0.net
幼稚園児w

91 :名称未設定:2014/01/15(水) 21:49:44.11 ID:NM6x1RRT0.net
>>85
>どうしてバックを見せないんだw
そりゃ素直に教えるわけがないからに決まっているだろう。んなこと最初から言っているのに

わかったようだから、あの2行はねえ、
-- get text font of text of text frame 1 of document 1
set text font of text of text frame 1 of document 1 to text font gFontName
だよ。Adobe Illustrator も スクリプトファイルも消したので、ちょっとは間違っているかもしれないけど

Mavericksでは動かかないのか。へーw

92 :名称未設定:2014/01/15(水) 21:56:38.02 ID:/LtsrHqK0.net
>88
教え方をもっと研究した方がええかもな。
マスク入りとは恐れ入ったよw
だれがもわかるようなscriptを目隠しまでしてw 馬鹿丸出しw
どんだけ上からの目線かねw

93 :名称未設定:2014/01/15(水) 22:00:10.29 ID:NM6x1RRT0.net
すげーなー、これだ自己中も珍しい。珍しいもの発見できただけでもよしとしようw

94 :名称未設定:2014/01/15(水) 22:03:38.31 ID:IW429DUw0.net
お前が育ててんじゃねーか

95 :名称未設定:2014/01/15(水) 22:07:00.00 ID:NM6x1RRT0.net
うっ
いやあ>>81でわかったかなあと思ったんだけど、変わらないので育てたんではなくて、あぶり出したと言っていただきたいっw
いや、ごめんちゃい、もとい、ごめんなさい

96 :名称未設定:2014/01/16(木) 10:27:42.18 ID:8b6e8W/P0.net
二人でよそいってやってくれ
前にも出てたAdobe関係禁止はやっぱり必要みたいだな
Adobe使わない人にとってまったく参考にならない話を延々やられてもうざいし

97 :名称未設定:2014/01/22(水) 22:59:09.72 ID:eRTOmbtnP.net
昔作った子供が水浴びしてるDVDをisoイメージにしたんだけど、
面倒なく視聴できるソフトってないのね。
今年初めてのAppleScriptはこれだった。
Automatorで開くファイルを自作アプリに関連付けてやったら
ダブルクリックで視聴できるようになった。

98 :名称未設定:2014/01/22(水) 23:06:55.85 ID:Lh31v/xG0.net
>>97
VLCでISOマウントしてみれるけど、、、

99 :名称未設定:2014/01/22(水) 23:27:39.24 ID:LlN2JipJ0.net
DVDプレーヤーで普通に見られるけど

100 :名称未設定:2014/01/23(木) 09:11:56.66 ID:iJWTvZ5CP.net
>>98
本当に「面倒なく」視聴できてるの? ちゃんとチャプター再生もばっちり?
そもそもマウントするとウインドウが開きません? うちが変なのかもしれんが。
DVDのディスクをスロットに挿入すると自動再生するのと同じように
isoをダブルクリックするだけで普通のDVDと同じように再生できます?
世の中にはすごい人がいて、アイコンをダブルクリック以上のことが「難しい」人
もいるんです(田舎のじーちゃんとかね)。そういう人たちでも簡単にできる?

総レス数 1008
389 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★