タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

vbaに関するaritekuのブックマーク (2)

  • Collectionオブジェクト(VBサンプル)

    Addメソッド CollectionクラスのAddメソッドを使って、任意のオブジェクトをCollectionに追加することができます。 メンバは、インデックス1から格納されます。インデックス0には格納されません。たとえば、フォーム上のコントロールをコレクションに格納する場合には、まず、Collectionオブジェクトのインスタンスを生成します。 Dim objCtlColl As New Collection() メンバの追加は、Addメソッドを使います。引数には、オブジェクトとキー値(String型で一意にする)を指定します。既にフォームで定義済のテキストボックスコントロ-ル(TextBox1,TextBox2,TextBox3)を追加するには、一意のキー値と共に、次のようにします。 objCtlColl.Add(TextBox1, "txt1") objCtlColl.Add(Tex

  • VBAでCollectionのループ方法をFor Eachに書き換えるだけで100倍高速になった

    今、ExcelVBAでちょっとしたものを作ってるのですが、コーディング中に急にパフォーマンスが悪くなるという現象が発生したので、原因を調べてみたらCollectionの各要素を処理する場面が問題のようだった。CollectionをFor Eachで周すようにしただけで、さっきの遅さが嘘のように解決してしまった。 当にFor i = … のループを For Eachに書き換えただけで速くなるのか確信持てなかったし、他の原因も重なった結果かも、という疑惑も拭いきれない状態だったので、ExcelXPでベンチマークを取ってみました。 主要部分 下のLoop_for_indexとLoop_for_eachを比較しました。 'For i = ...版。 各要素を添字指定でアクセスする Public Sub Loop_for_index() Dim dummy As Long Dim i As Lo

    ariteku
    ariteku 2011/07/27
  • 1