トップページ > プログラム > 2019年07月23日 > LmcM+lna0

書き込み順位&時間帯一覧

20 位/165 ID中時間01234567891011121314151617181920212223Total
書き込み数0000011000000000000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん (ワッチョイ 4fad-9k8E)
Excel VBA 質問スレ Part62

書き込みレス一覧

Excel VBA 質問スレ Part62
445 :デフォルトの名無しさん (ワッチョイ 4fad-9k8E)[sage]:2019/07/23(火) 05:29:57.32 ID:LmcM+lna0
意外と記憶にないコレクションからの連結
追加時にサイズを記録しといて、最後にぴったりサイズでメモリ確保してMid

(クラス想定)
Public Item As New Collection, Length As Long

Sub Add(Text As String)
 Item.Add Text
 Length = Length + Len(Text)
End Sub

Function Text() As String
 Dim Pos As Long, Var As Variant

 Text = Space(Length)
 Pos = 1
 For Each Var In Item
  Mid(Text, Pos) = Var
  Pos = Pos + Len(Var)
 Next
End Function

配列のJoinは実装のシンプルさがいいんだけど、100字+10万回で0.3秒
こっちは0.15秒という倍の速さで、そこそこシンプル、可変
普通と言えば普通な発想だけど力業のイメージがあって、やってみようと思わなかったのかも

ちなみにFor Eachを番号方式にすると、80秒ぐらいかかってびっくりした
そんな違うんだね
Excel VBA 質問スレ Part62
446 :デフォルトの名無しさん (ワッチョイ 4fad-9k8E)[sage]:2019/07/23(火) 06:30:29.98 ID:LmcM+lna0
>>441
Excelの強みはむしろシートだと思う
ただしデータ処理用ではなく、表示・操作用のグリッドコントロールとして
VSにこんな高速高機能なグリッドコントロールはない、はず(知る限り)

特に CopyFromRecordset の異様な速さ
大量に表示した状態での動きも速い
DBの表示媒体として実は最強だと思う
(他の言語からExcelを呼び出してもいいので、VBA限定ではないけど)


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。