いつもお世話になっております。
以下のようなスクリプトを書いて、
Illustratorの図形の面積を求めようと思っています。
レイヤごとに、中にあるパスアイテムの面積を総計したものを、
エクセルのシートに書き出すスクリプトです。
一応、動作はするのですが、以下の2点について、
よくわからない挙動をします。
1. 面積が約2倍になってでてくる。
テストで、10 mm × 10 mm の四角形を作り、
その面積を測ったのですが、約200になりました。
何故か、約2倍になってしまいます。
2. 多角形の面積がマイナスで出てくる。
面積を測りたい実際の図形が多角形です。
スクリプティング・ガイドは読んだのですが、
PathItem の Area の「四角形~」というのがよくわかりません。
上の、2点について、回答頂けますよう、
よろしくお願い致します。
Sub レイヤごとのパスアイテムの面積_作成中()
Dim illApp As New Illustrator.Application
Dim myDoc As Illustrator.Document
Dim mm As Single, areaVal As Single
Dim i As Integer
Dim p As PathItem
Dim l As Layer
Set myDoc = illApp.ActiveDocument
mm = 2.834645
i = 1
For Each l In myDoc.Layers
areaVal = 0
If l.PathItems.Count <> 0 Then
For Each p In l.PathItems
areaVal = areaVal + p.Area
Next p
Range("A" & i).Value = l.Name
Range("B" & i).Value = areaVal / mm / mm
i = i + 1
End If
Next l
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
だいぶ時間が空いてしまいましたが……
ご使用のIllustratorのバージョンは何でしょうか?
私の場合は、Windows の 9 と 10 で試していて、やはり PathItem.Area が期待の2倍の値になってしまってました。ところが、最近機会があって Windows の CS2 で試したところ、全く同じコードで期待通りの値が返ってきました。
バージョンによって返る値が違うことについての情報・文献が見つからないので、中途半端ですみませんが、参考までに。
No.1
- 回答日時:
この辺りは参考になりませんか?
上記回答ではPathItemsの個数にCountでなくLengthを使っているけど、その辺りの問題は?
非表示のレイヤをスキップしていないけど、非表示レイヤに何か残ってませんか?
ありがとうございます。
上記回答を参考に、スクリプトを組みました。
(最初から明記するべきでした、すいません。)
Countについては、関係ないと思います。
レイヤについては、一つだけですし、存在するパスアイテムもひとつだけです。
(テスト用に、レイヤがひとつ、パスアイテムもひとつというファイルをつくって試してみています。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
このQ&Aを見た人はこんなQ&Aも見ています
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
photoshop でつなぎ目をなめら...
-
Photohopの「ガイド」はコピー...
-
Illustratorの面積測定スクリプ...
-
設計用語の意味を教えてください。
-
フォトショ、または、イラレで...
-
Illustratorで作成した画像の面...
-
【Photoshop】レイヤー1枚1枚を...
-
マルチキャストが使えるスイッ...
-
jw-cadのレイヤバーについて
-
写真の色を薄くする方法
-
トレース機能のあるお絵描きソ...
-
PhotoshopCSで全透過のアルファ...
-
google earth pro をPCで使って...
-
写真をトリミング&ぼかしする...
-
フォトショップ エレメンツで...
-
【画像つき再度投稿】photoshop...
-
イラストレーターのレイヤー
-
APPLE iMacを使っているのです...
-
MAC/IPアドレスとARPで送信デー...
-
クォーク4.0の印刷設定について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jww レイヤーグループバーの「...
-
フォトショ、または、イラレで...
-
GIMP2で作成した凹み文字を移動...
-
google earth pro をPCで使って...
-
Photohopの「ガイド」はコピー...
-
Illustratorで作成した画像の面...
-
写真の色を薄くする方法
-
Google Earthで写真マークを消...
-
再質問です。グーグルアースで...
-
2.5Dがイマイチ使いこなせません
-
マルチキャストが使えるスイッ...
-
Illustratorの面積測定スクリプ...
-
APPLE iMacを使っているのです...
-
vectorworksでの印刷方法
-
グーグル地図での南極大陸の表示
-
【Illustrator】ファイルを開い...
-
Vector Works グレー表示を濃く...
-
photoshop でつなぎ目をなめら...
-
グーグルアースで線がいっぱい...
-
GoogleEarthの地形レイヤの表示...
おすすめ情報