我需要帮助将VB.Net代码转换为VBA

时间:2012-09-18 18:45:37

标签: vb.net vba powerpoint-vba

我在幻灯片中插入了listview控件。在下一步中,我尝试使用以下代码显示所有文件和文件夹+图标:

For Each fileName In IO.Directory.GetFiles("C:\")
    ImageList21.Images.Add (Icon.ExtractAssociatedIcon(fileName))
    ListView31.Items.Add (system.IO.Path.GetFileName(fileName)) , _
        ImageList21.Images.Count - 1)
Next fileName

它在Visual Studio 2008上完美运行,但在VBA(使用VB6)上,我遇到了大量错误,例如:

  

对于每个Control变量必须是变量或对象

此外,这行代码变为红色并报告错误

ListView31.Items.Add (system.IO.Path.GetFileName(fileName)) , ImageList21.Images.Count - 1)
  

预期:声明结束

任何人都可以解释如何将代码转换为VB6 / VBA吗?

2 个答案:

答案 0 :(得分:1)

尝试使用FileSystemObject。 On MSDN

这是VBA等同于您的VB.NET代码(使用FSO):

Dim fso, objFolder, objFile, strTemp
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.GetFolder("c:\")
For Each objFile in objFolder.Files
    'might need some other VBA call to extract an icon from these files
    'ImageList21.Images.Add Icon.ExtractAssociatedIcon(objFile.Name)
    ListView31.Items.Add objFile.Name, ImageList21.Images.Count - 1)
Next

答案 1 :(得分:-2)

看起来像VB.NET代码。 VBA文件处理例程非常简单,但您可以通过添加对VBA的引用来调用VBA中的FileSystemObject。

您需要添加对“Microsoft Scripting Runtime”的引用。你可以在VB编辑器中做到这一点我相信(已经有一段时间了)。

tgolisch的代码示例应该是一个很好的起点。只需确保您有参考集。