2017-09-26 1 views
0

一般化されたPowerPointマクロを使用して、特定のシェイプをまとめてグループ化します。問題は、私のスライデックが毎回微妙に変化するので、あらかじめ特定の形状の名前を知らないということです。ここに私の状況があります:私は名前が接頭辞 "rc"で始まるPowerPointの図形のコレクションを持っています。例えば、「rc48」、「rc49」、「rc50」、「rc51」とすることができる。それらは常に数字の昇順になり、スライド上の唯一の "rc"という名前の図形になります。これらの形に続いて、私は接頭辞 "tx"を持つ形のコレクションを持っています(スライドの唯一の "tx"形ではありませんが、常に "rc"形に従います) "" rc "オブジェクトに続くオブジェクト。ですから、この例では "tx52"、 "tx53"、 "tx54"、 "tx55"を持っていました。一般化されたシェイプグループ化マクロVBA PowerPoint

私がしたいのは、これらのペアのオブジェクトをグループ化することです。したがって、group1は( "rc48"、 "tx52")になります。 group2は( "rc49"、 "tx53")となります。

私はVBAでのコーディングについてはほとんど分かりませんが、他のプログラミング言語での私のアプローチは、シーケンシャルシェイプ名ベクトルの "rc"シェイプの位置を見つけ、 "rc"私が必要とする "tx"の形を見つけて、これらの対の上をループします。

私はこれが複雑な質問であることを認識していますが、どんな助けでも大歓迎です。

あなたはIf oShp.Type = msoTextBox Thenような形状のタイプを検証することができます:あなたは、このようなExcelのVBAなどの機能の多くを持っていないが、私は、次のアイデアはあなたを助けることができると思いますので、PowerPointでVBAコードを使用した作業

答えて

0

は本当に痛いですまたはIf oShp.Type = msoPicture Then

シェイプごとに、上部または左のプロパティを検証して、スライド内の位置を見つけることもできます。 あなたの図形にこれらの名前が付いていると思われる場合は、次のように試してみてください:

Dim oShp As Shape 
For Each oShp In ActivePresentation.Slides(SldNumber).Shapes 
    If oShp.Name = "rc49" Then 
     Do Something 
    End If 
next 
関連する問題