質問: パワーポイント:スライドにドキュメントプロパティ(別名「フィールド」)を挿入する方法 powerpoint 2007のスライドにドキュメントプロパティ(作成者の名前など)を挿入するにはどうすればよいですか?これはmicrosoft wordで実行できることはわかっていますが、powerpointで実行する方法がわかりません。(ドキュメントのプロパティを使用すると、異なるマスターページを使用している場合でも、たとえばすべてのスライドのフッターのコンテンツを簡単に変更できるという考え方です。別のソリューションがある場合も問題ありません。)
回答: 自分でユースケースを処理できるようにサブルーチンを少し更新しました。同じテキストボックスにいくつかのカスタムプロパティを挿入する必要があり、プロパティごとに1つのテキストボックスが機能しませんでした。誰かが必要に応じて更新したコードを次に示します。sub updateproperties() dim page as slide dim propname, propvalue as string ' parse all slides in the active presentation (document) for each processpage in application.activepresentation.slides ' scan all elements of page for textbox with tagged "alttext/title" field with "[customproperty]" for each shapeobj in processpage.shapes if shapeobj.alternativetext = "[customproperty]" then dim sstart, send, test as integer dim before, after as string sstart = 1 do while true ' look for properties in text sstart = instr(sstart, shapeobj.textframe.textrange.text, "[") ' exit loop when no more properties if sstart = 0 then exit do end if send = instr(sstart, shapeobj.textframe.textrange.text, "]") ' if there is no end, then exit loop if send = 0 then exit do end if ' save text before and after property before = mid(shapeobj.textframe.textrange.text, 1, sstart - 1) after = mid(shapeobj.textframe.textrange.text, send + 1) ' get property name propname = mid(shapeobj.textframe.textrange.text, sstart + 1, send - sstart - 1) ' retrieve the value if it exists propvalue = getproperty(propname) ' if property doesn't exist or we increment sstart to skip this property on next loop if propvalue = "" then sstart = sstart + 1 else ' replace text shapeobj.textframe.textrange.text = before + getproperty(propname, shapeobj.textframe.textrange.text) + after end if loop end if next ' obj next ' page end sub これを使用するには、alttextを "[customproperty]"に変更します。その後、サブルーチンは、テキストボックス内のすべての[プロパティ]をその値に置き換えます。これはおそらく正規表現を使用してよりよくコーディングできます...