0

リストビュー コントロールをスライドに挿入しました。次のステップでは、次のコードを使用して、すべてのファイルとフォルダー + アイコンを表示しようとしました。

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 を使用) では次のようなエラーが大量に発生します。

For Each Control 変数はバリアントまたはオブジェクトでなければなりません

また、このコード行は赤くなり、エラーを報告しています

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

予想: 文の終わり

コードをVB6/VBAに変換する方法を誰か説明できますか?

4

2 に答える 2

1

FileSystemObjectを使用してみてください。 MSDNで

これは、VB.NETコードと同等のVBAです(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
于 2012-09-18T18:54:42.100 に答える
-2

VB.NET コードのように見えます。VBA ファイル処理ルーチンはかなり簡単ですが、FileSystemObject への参照を追加することで、VBA から FileSystemObject を呼び出すことができます。

「Microsoft Scripting Runtime」への参照を追加する必要があります。これは VB エディターで実行できると思います (かなり時間がかかりました)。

tgolisch によるコード例は、良い出発点になるはずです。参照セットがあることを確認してください。

于 2012-09-18T20:12:40.330 に答える