Redimを使用して配列データ型を設定する

グリード

配列を最初に作成するときは、データ型を設定するのが最善であることがわかっています。デフォルトのVariant型は遅いため、VBAでは回避するのが最善です。

私はそれに気づきます

Redim t(1 To 10) As String

と同じ効果があるようです

Dim t() As String
Redim t(1 To 10)

しかし、私は疑問に思います。最初のオプションは最初にキャストさt()れてVariantから変換されString、二重書き込みでメモリを浪費しますか?または、2行目のため、2番目のオプションは実際には遅くなります。Dimサイズを指定せずに配列を作成するメモリ内で実際に何が起こりますか?

もちろん

Dim t(1 To 10) As String

最も効率的なものとして出くわしRedim Preserveますが、とにかく後でそれをする必要があるので、それを行うことはできません。

マシュー・ギンドン

Dimサイズを指定せずに配列を作成するメモリ内で実際に何が起こりますか?

初期化されていない動的なサイズの配列を取得します。VBAはメモリ内に「スポットを予約」します。それがどのように機能するかは、Microsoftだけが答えを持っている内部配管です-Pコードをリバースエンジニアリングできない限り(最初にコンパイルされたPコードを抽出できると仮定して)。

両方DimReDim することができ、宣言文として機能すること-彼らの両方を意味するものではありませんべき-からのMSDN(強調鉱山):

ReDimステートメントは、宣言する変数がモジュールレベルまたはプロシージャレベルに存在しない場合、宣言ステートメントとして機能します。同じ名前の別の変数が後で作成された場合、より広い範囲であっても、ReDimは後の変数を参照し、Option Explicitが有効であっても、必ずしもコンパイルエラーを引き起こすとは限りません。このような競合を回避するには、ReDimを宣言型ステートメントとして使用するのではなく、単に配列のサイズを変更するために使用する必要があります


あなたが言う時:

または、2行目のため、2番目のオプションは実際には遅くなります。

それDimが実行可能ステートメントはないことを忘れています(ステートメントを中断することはできませんDim)。ReDimしかしです。したがって、両方の「オプション」は、ランタイムに関する限り、基本的に同じです。ただし、最初の「オプション」(ReDim宣言型ステートメントとして使用)がベストプラクティスに反している点が異なります。

したがって、動的配列が必要な場合は、次のように動的配列を宣言してDimください。

Dim foo() As String

そして、サイズを変更する必要がある場合は、次のように使用ReDimします。

ReDim foo(1 To bar)

経験則として、Dimより効率的かどうかReDim、またはその逆かどうかを心配する必要はありません-コードにパフォーマンスの問題がある場合、問題はVBAの方法ではなく、アルゴリズムにある可能性が99.9999999997%あります。変数と配列の割り当てを実装しました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Polymerを使用してFirebaseデータ配列の値を設定する

分類Dev

SparkScalaでデータセットを使用して配列のタイプを設定する方法

分類Dev

配列を使用してパラメーターを設定する-初心者

分類Dev

Firestore内のオブジェクトを使用してデータを配列に設定する方法

分類Dev

Firestore内のオブジェクトを使用してデータを配列に設定する方法

分類Dev

Highchartsファネルで配列データ形式を使用して色を設定する

分類Dev

複数のデータの配列を状態として設定する方法

分類Dev

Javaでforループを使用して配列を設定する

分類Dev

csvを使用して列にデータを設定します

分類Dev

データの配列をmobx配列に設定するshowproxyobjects

分類Dev

各配列の最初の要素をインデックスとして設定し、残りを配列の配列のデータとして設定します

分類Dev

各配列の最初の要素をインデックスとして設定し、残りを配列の配列のデータとして設定します

分類Dev

パラメータ式として配列型を使用する

分類Dev

行データ型を交互に使用してグリッドビュー行の背景色を設定する

分類Dev

DataSetAPIを使用してデータ属性を設定する

分類Dev

DocuSign RESTAPIを使用してデータ検証を設定する

分類Dev

Android で Firebase データを使用して ListView を設定する

分類Dev

配列を使用してPostgresユーザー定義型を作成する方法

分類Dev

pysparkを使用して列のデータ型を取得する

分類Dev

pysparkを使用して列のデータ型を取得する

分類Dev

pysparkを使用して列のデータ型を取得する

分類Dev

MPI派生データ型を使用して「構造体の配列」を作成して伝達する

分類Dev

C#で配列を作成してデータを設定する機能的な方法

分類Dev

データベースからのPHP配列、配列タイトルとして行を設定します

分類Dev

Angular5で配列データ型を定義する方法

分類Dev

TypeScriptで配列の必須データ型を定義する

分類Dev

PyTorch:GRU / LSTMのnumpy配列を使用して重みパラメーターを手動で設定する

分類Dev

Typescriptを使用してVueデータオブジェクトにデータ型を設定します

分類Dev

logstashを使用してmongodbからelasticsearchに配列データ型のインデックスを作成する方法

Related 関連記事

  1. 1

    Polymerを使用してFirebaseデータ配列の値を設定する

  2. 2

    SparkScalaでデータセットを使用して配列のタイプを設定する方法

  3. 3

    配列を使用してパラメーターを設定する-初心者

  4. 4

    Firestore内のオブジェクトを使用してデータを配列に設定する方法

  5. 5

    Firestore内のオブジェクトを使用してデータを配列に設定する方法

  6. 6

    Highchartsファネルで配列データ形式を使用して色を設定する

  7. 7

    複数のデータの配列を状態として設定する方法

  8. 8

    Javaでforループを使用して配列を設定する

  9. 9

    csvを使用して列にデータを設定します

  10. 10

    データの配列をmobx配列に設定するshowproxyobjects

  11. 11

    各配列の最初の要素をインデックスとして設定し、残りを配列の配列のデータとして設定します

  12. 12

    各配列の最初の要素をインデックスとして設定し、残りを配列の配列のデータとして設定します

  13. 13

    パラメータ式として配列型を使用する

  14. 14

    行データ型を交互に使用してグリッドビュー行の背景色を設定する

  15. 15

    DataSetAPIを使用してデータ属性を設定する

  16. 16

    DocuSign RESTAPIを使用してデータ検証を設定する

  17. 17

    Android で Firebase データを使用して ListView を設定する

  18. 18

    配列を使用してPostgresユーザー定義型を作成する方法

  19. 19

    pysparkを使用して列のデータ型を取得する

  20. 20

    pysparkを使用して列のデータ型を取得する

  21. 21

    pysparkを使用して列のデータ型を取得する

  22. 22

    MPI派生データ型を使用して「構造体の配列」を作成して伝達する

  23. 23

    C#で配列を作成してデータを設定する機能的な方法

  24. 24

    データベースからのPHP配列、配列タイトルとして行を設定します

  25. 25

    Angular5で配列データ型を定義する方法

  26. 26

    TypeScriptで配列の必須データ型を定義する

  27. 27

    PyTorch:GRU / LSTMのnumpy配列を使用して重みパラメーターを手動で設定する

  28. 28

    Typescriptを使用してVueデータオブジェクトにデータ型を設定します

  29. 29

    logstashを使用してmongodbからelasticsearchに配列データ型のインデックスを作成する方法

ホットタグ

アーカイブ