0
Set dir = CreateObject("Scripting.Dictionary")
dir.Add "12", "layout1" 
dir.Add "29", "layout2"
dir.Add "35", "layout3"

For Each slide In presentation.Slides
  xyz = slide.Layout
  msgBox dir.Item(xyz)
next

ここで xyz は数値を提供し、同じ値をディレクトリオブジェクトに渡してそのキーの値を取得したいと考えています。しかし、ここで問題は dir.Item(xyz) にあります。xyz への二重引用符が保持されていない場合、キーのアイテムを取得できません。これは systax の問題であるためです。二重引用符を保持すると、xyz として取得されます。 xyz の値だけではありません。これを解決する方法

4

1 に答える 1

1

slide.Layout数字を返すので、辞書の数字のキーも作成します。

Set dir = CreateObject("Scripting.Dictionary")
dir.Add 12, "layout1" 
dir.Add 29, "layout2"
dir.Add 35, "layout3"

For Each slide In presentation.Slides
  MsgBox dir.Item(slide.Layout)
Next

数値を文字列に変換することもできます。

Set dir = CreateObject("Scripting.Dictionary")
dir.Add "12", "layout1" 
dir.Add "29", "layout2"
dir.Add "35", "layout3"

For Each slide In presentation.Slides
  MsgBox dir.Item(CStr(slide.Layout))
Next

しかし、それはコードの複雑さを増すだけで、何も得られません。

于 2013-06-25T12:08:06.063 に答える