私は大きなxmlファイル(600mb)を読んでいて、Excelファイルで値をチェックしています。そこで私はいくつかのループを使用しており、実行に時間がかかります。いくつかのループを条件文に置き換えることを考えました
このように:
この関数は、ワークシート名を文字列として受け取り、シートを見つけようとします (すべての xml ノードに対して)
function searchValue( val, rng, worksheet )
set objWorksheet = nothing
For Iter = 1 To objWorkbook.Worksheets.Count
If objWorkbook.Worksheets(Iter).Name = worksheet then
Set objWorksheet = objWorkbook.Worksheets(Iter)
exit for
end if
next
選択ケースを使用して、以下のようにシート名の代わりにシート番号を渡すとどうなりますか
sub getSheetNumber( worksheet)
select case worksheet
case "A"
getSheetNumber = 1
case "B"
getSheetNumber = 2
case "C"
getSheetNumber = 3
case "D"
getSheetNumber = 4
case "E"
getSheetNumber = 5
case "F"
getSheetNumber = 6
case else
getSheetNumber = worksheet
それは良い考えですか、それともループを回避する他の方法はありますか