
VB6.0で次のようなコーディングをしています。
Dim FNmDic As Variant
Dim HelpFile As File
Set FNmDic = CreateObject("Scripting.Dictionary")
FNmDic.Add Left(HelpFile.Name, 3), HelpFile.Path
このFNmDic.Addに2秒もかかってしまいます。
HelpFileは、先頭3文字が数字のファイルを指しており、キーの役目をしています。
HelpFileがローカルにあるファイルをさしている場合は、遅くないのですが、
ほかの端末の共有フォルダにあるファイルを指すとAddが遅いです。
また、この現象はエンドユーザの環境で発生し、私の開発環境では発生していません。
Addを1秒以下にしたいのですが、何か解決の糸口はあるでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
「Dim HelpFile As File」 が FileSystemObject の File であるなら Microsoft Scripting Runtime への参照設定がされていると思うので
Dim FNmDic As Variant
Set FNmDic = CreateObject("Scripting.Dictionary")
を
Dim FNmDic As Scripting.Dictionary
Set FNmDic = New Scripting.Dictionary
とすることができる。
ここからが本題。
FNmDic.Add Left(HelpFile.Name, 3), HelpFile.Path
この 1行に時間が掛かっているとして、それが Scripting.Dictionary のせい (FNmDic.Add) なのか、Scripting.File のせい (HelpFile.Name や HelpFile.Path) のせいなのか、それとも両者をこの書き方にすると遅くなるのか、切り分けてみたらよいともいます。
Dim fso As Scripting.FileSystemObject
Set fso = New Scripting.FileSystemObject
Dim HelpFile As Scripting.File
Set HelpFile = fso.GetFile("ファイル パスの文字列")
Dim hKey As String
Dim hValue As String
hKey = Left(HelpFile.Name, 3)
hValue = HelpFile.Path
Dim FNmDic As Scripting.Dictionary
Set FNmDic = New Scripting.Dictionary
FNmDic.Add hKey, hValue
Add への引数に File オブジェクトを使わないようにしてみた。
hKey や hValue に値を入れる箇所が遅くなるのか、相変わらず Add が遅いのかが分かると思う。
回答ありがとうございます。お礼が遅れ、申し訳ありません。
おっしゃる通り、根本的に何が(どこが)原因なのか切り分ける必要がありますね。
いろいろ確認してみたいと思います。ソース、参考にさせていただきます。
ありがとうございました。
No.1
- 回答日時:
OS や IE のバージョンにも依存するかもしれませんが
http://windows.microsoft.com/ja-JP/windows-vista …
の
イントラネット セキュリティを使用するために、Internet Explorer で何か設定を行う必要がありますか。
で改善したことはあります。
あなたと他者の OS や IE のバージョンとそのセキュリティ設定あたりから
調べ始める必要があるかもです。
ご参考まで。
回答ありがとうございます。お礼が遅れ、申し訳ありません。
セキュリティあたりも怪しいですね。
確認したいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
BASP21を使わないファイルアッ...
-
Access2003で「オブジェクト'○○...
-
VBScriptでファイルアップロー...
-
初期化後の任意のアプリの復元
-
Microsoft Access エラー 3051
-
バッチファイルが作成できない
-
subversionからファイル取得時...
-
Windowsのメモ帳でジョークウイ...
-
【VC++6.0 MFC】画像表示について
-
バッチによるショートカットの...
-
ファイル名の特定文字だけ削除...
-
CSVファイルの出力に関して
-
仮想パスの意味
-
フォルダ階層が深いファイルの...
-
レーザープリンターのA4・5...
-
CDの曲名をテキストファイルで...
-
Excel-VBA 撮影日時の取得
-
FFFTPでサーバに新規フォルダが...
-
グーグルドライブからコピーし...
-
VBAでファイルを指定して印刷さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access2003で「オブジェクト'○○...
-
FileExitsについて
-
BASP21を使わないファイルアッ...
-
ファイルやフォルダの有無、他...
-
Excelでのデータ挿入が上手くで...
-
サーバー上のファイルアクセス...
-
LAN上のMDBをIIS(ASP)から開く
-
初期化後の任意のアプリの復元
-
Excelでdatファイルを作成??
-
Microsoft Access エラー 3051
-
バッチファイルが作成できない
-
複数のテキストファイルをexcel...
-
複数のファイルを同時検索し、...
-
エクセルVBA フォームを開く時...
-
【Excel VBA】PDFを作成して,...
-
OCXのライセンス
-
フォルダ作成用バッチファイル...
-
VBAでFTPファイル転送がうまく...
-
FFFTPでサーバに新規フォルダが...
-
VBAでファイルパスが長すぎてコ...
おすすめ情報