1

PowerPoint で生成されたレポートがあり、多くのグラフの下に、読者に付録のページを参照するように指示するテキストがあります。これらのスライドを動的に参照できるようにしたいと考えています。

たとえば、グラフの下に「付録の 54 ページを参照してください」というテキストがある場合がありますが、別のスライドを挿入すると 55 と表示されるように、54 をスライドにリンクする必要があります。

これはVBAで可能ですか?誰かが私のコードを書いてくれるとは思っていません。何時間もかけてコードを作成しようとする前に、これが妥当なことかどうかを知りたいだけです。

補足: ここで MS Office について質問するのは恐ろしく感じますが、VBA で実装する必要があると思うので (この機能がデフォルトで組み込まれているとは思いません)、関連する質問だと思います。

4

1 に答える 1

4

ここでこれを尋ねるのは恐ろしいと感じる必要はありません。

これを行う方法:

PPTでは、図形、スライド、さらにはプレゼンテーション自体にもタグコレクションを関連付けることができます。名前付き文字列値。たとえば、oShの形状への参照を想定すると、次のことができます。

oSh.Tags.Add "AssociatedSlideId", "293"

この場合、このタグをグラフに適用します。293は、参照するスライドのSlideIDになります。各スライドには、作成時に割り当てられた一意のSlideIDがあります。スライドを移動したり、スライドを追加/削除したりしても、SlideIDは変更されません。

図形からタグを読み取るには:

Debug.Print oSh.Tags("AssociatedSlideId")

この場合、「293」が返されます。それをFindBySlideIDにフィードして、スライドのSlideIndex(つまり、プレゼンテーション内のスライドの序数位置)を取得します。または、数値プレースホルダーに表示されるスライドの番号が必要な場合は、SlideNumberを要求します(通常、スライドインデックスと同じであるとは限りません)。

Debug.Print ActivePresentation.Slides.FindBySlideID(clng("293")).SlideIndex

また、参照を保持するために使用するテキストボックスまたはその他の図形にタグを付けてから、次の行に沿って関数を記述します。

Function ShapeTaggedWith(oSl as Slide, sTagName as String, sTagValue as String) as Shape

これにより、スライドoSlの図形が繰り返され、sTagName、value = sTagValueという名前のタグが付いた図形が検索され、見つかった場合は呼び出し元に返されます。

これで、グラフのキャプションとして指定されている図形を見つけて呼び出し、グラフが参照するはずのスライドのSlideIndex(またはSlideNumber)に一致するようにテキストを変更できます。

それがすべて適度に明確であることを願っています。そうでない場合は、StackOverflowの神々が私たちにコメントを与えたのはそのためです。

于 2013-03-05T01:39:09.057 に答える