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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FileExitsについて
-
ファイルやフォルダの有無、他...
-
拡張子が.txtのファイルに将来...
-
複数のテキストファイルをexcel...
-
Excelでdatファイルを作成??
-
Microsoft Access エラー 3051
-
OpenTextFile で書き込みできま...
-
ファイル名の特定文字だけ削除...
-
エクセルVBA フォームを開く時...
-
VBAでファイルパスが長すぎてコ...
-
バッチによるショートカットの...
-
フォルダ作成用バッチファイル...
-
エクセルVBA ファイルOPEN時の...
-
テキストファイルの文字色に色...
-
Thunderbird ローカルフォルダ...
-
"ダウンロード"のフォルダを消...
-
Refreshで落ちる
-
バッチファイルが作成できない
-
FFFTPでサーバに新規フォルダが...
-
カスタムコントロールのOCAファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access2003で「オブジェクト'○○...
-
FileExitsについて
-
ファイルやフォルダの有無、他...
-
BASP21を使わないファイルアッ...
-
ASPが動かない
-
【VB6.0】DictionaryのAddが遅い
-
delphiネットワークドライブフ...
-
複数のテキストファイルをexcel...
-
フォルダ作成用バッチファイル...
-
Excelでdatファイルを作成??
-
バッチによるショートカットの...
-
VBAでファイルパスが長すぎてコ...
-
Microsoft Access エラー 3051
-
バッチファイルが作成できない
-
batファイル処理でのテキストフ...
-
Lubuntuでフォントをインストー...
-
【Excel VBA】PDFを作成して,...
-
1フォルダに保存できるファイル...
-
テキストファイルの文字色に色...
-
ダウンロード不可PDFファイルは...
おすすめ情報