以下に、オブジェクトの配列の配列があります。オブジェクトを探して、それがどの配列にあるかを見つけたら、その配列の名前を文字列として取得して操作したいと思います。私の推測では、Array.name
(以下で実行されるように)のようなものでしたが、それは機能しません。
ActiveDocument.gaShapesTab1 = new Array(ActiveDocument.Sections["Dashboard"].Shapes["Shape1"],ActiveDocument.Sections["Dashboard"].Shapes["Shape2"]);
ActiveDocument.gaShapesTab2 = new Array(ActiveDocument.Sections["Dashboard"].Shapes["Shape3"],ActiveDocument.Sections["Dashboard"].Shapes["Shape4"]);
ActiveDocument.gaShapesTab3 = new Array(ActiveDocument.Sections["Dashboard"].Shapes["Shape5"],ActiveDocument.Sections["Dashboard"].Shapes["Shape6"]);
ActiveDocument.gaShapeArrays = new Array(gaShapesTab1, gaShapesTab2, gaShapesTab3);
// go through an array of arrays
for(var x=0; x<gaShapeArrays.length; x++)
{
// and go through the objects of each one
for(var y=0; y<gaShapeArrays[x].length; y++)
{
// if "object" is in the array
if(object == gaShapeArrays[x][y])
{
// get "sidetab" from object's array's name
var sidetab = gaShapeArrays[x].name.replace('gaShapes',''); // assumes that shapearrays will have naming convention gaShapesSidetab
// we found it, we can stop now
break;
}
}
}
私は Hyperion Intelligence で作業しているため、すべての Javascript が適用されるわけではありません。たとえば、ウィンドウやドキュメントにアクセスできません。
各配列には、ビジュアル タブに関連する一連の形状オブジェクトが含まれています。これにより、図形の配列を呼び出すだけで、各タブにあるものを表示または非表示にしたり、より複雑な操作を実行したりできます。しかし、図形自体を操作するときは、図形がどのタブにあるかを知る必要があります。それらがどの配列にあるかを見つけることで、逆方向に作業しようとしています。