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

我需要帮助将VB.Net代码转换为VBA,vb.net,vba,powerpoint,Vb.net,Vba,Powerpoint,我在幻灯片中插入了listview控件。在下一步中,我尝试使用以下代码显示所有文件和文件夹+图标: For Each fileName In IO.Directory.GetFiles("C:\") ImageList21.Images.Add (Icon.ExtractAssociatedIcon(fileName)) ListView31.Items.Add (system.IO.Path.GetFileName(fileName)) , _ ImageLis

我在幻灯片中插入了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)上,我会收到大量错误,例如:

对于每个控制变量,必须是变量或对象

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

ListView31.Items.Add (system.IO.Path.GetFileName(fileName)) , ImageList21.Images.Count - 1)
预期:声明结束


有人能解释如何将代码转换为VB6/VBA吗?

尝试使用FileSystemObject。

这是与VB.NET代码等价的VBA(使用FSO):


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

您需要添加对“Microsoft脚本运行时”的引用。我相信,你可以在VB编辑器中实现这一点(已经有一段时间了)


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

但我下面的代码有什么问题?谢谢。还有这个错误:“运行时错误424。需要对象。”。。。我不明白,为什么?您的错误可能发生在以下行:ImageList21.Images.addicon。。。该行引用了VBA中不存在的一些dotnet库。注释掉它,错误就会消失。VB.net(您似乎在代码中使用)和VBA是完全不同的语言(尽管看起来很相似)。您不能将在VB.net中开发的代码直接放入像powerpoint这样的VBA主机中。如果要将代码作为powerpoint宏运行,则需要在VBA中进行开发。能否帮助我将代码转换为VBA?欢迎使用StackOverflow。虽然这对你来说是个好问题,我认为它或任何答案都不会对任何其他可以找到它的人有用,因此我将投票关闭它,因为它太本地化了。也没有理由在它上挂VB6标记。tgolisch的代码不需要设置任何引用:如果使用后期绑定,则不需要设置引用。如果要设置引用(用于早期绑定)您可以使用“工具/参考”菜单选项执行此操作。
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