
No.3
- 回答日時:
こんばんは。
前に書いていた方たちと内容は重複しますが、2013になったところで、エラーが出て変わらないと思います。個々のメモリの割り振りは、そんなに変わらないと思います。
私のExcelで作ったシステムは、数万行あるはずですが、なんの支障もありません。
ただ、1プロシージャは、百行以内で留めるべきで、それを機能別に、モジュールに別けていくようにします。例えば、画面制御するとか、テキスト処理するとか、シート処理とか。構造化します。しかし、あまりモジュールをどんどん増やすのは良くありません。管理ができなくなるからです。
プログラム自体が、2000行では、そもそも修正も利かないはずです。
2000行というのは、記録マクロで作り上げたもののような気がしますが、それは、無駄が多いはずですから、本格的なプログラミングを学ばないとコンパクトにならないかもしれません。
#2さんの話、64K って、昔の初期のコンパイル後の制限だったような気がしますが、VBAは当時のままを残しているようですね。オプションの順次コンパイルにするか、しないかで多少は変わるかもしれませんが、2000行の、一つのプロシージャでは、あまり期待できませんね。
No.2
- 回答日時:
に、
The amount of code that can be loaded into a form, class, or standard module is limited to 65,534 lines. A single line of code can consist of up to 1023 bytes. Up to 256 blank spaces can precede the actual text on a single line, and no more than twenty-four line-continuation characters ( _) can be included in a single logical line.
フォーム、クラス、標準モジュールにロードすることができるコードの量は65534行に制限される。単一のコード行は1023バイトまで構成できる。
とある。
また、
There is no limit on the number of procedures per module. Each procedure can contain up to 64K of code. If a procedure or module exceeds this limit, Visual Basic generates a compile-time error. If you encounter this error, you can avoid it by breaking extremely large procedures into several smaller procedures, or by moving module-level declarations into another module.
モジュールあたりのプロシージャの数に制限はない。各プロシージャは、64Kまでコード含めることができる。プロシージャまたはモジュールがこの制限を超えた場合、Visual Basicは、コンパイル時エラーを生成する。このエラーが発生した場合は、極端に大きなプロシージャをいくつかの小さなプロシージャにを分けるか、またはモジュールレベルの宣言を別のモジュールに移すことによってそれを避けることができる。
とある。
プロシージャに行数の制限があるわけではない。全体のサイズに制限がある。サイズはコンパイル後のサイズか。64Kはセグメントといったっけ?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルにサムネイル画像組み込み 2 2022/09/02 17:13
- Excel(エクセル) エクセルのセル値に対応してマクロを実行する方法を教えてください セルA1が「1」の時にマクロ名「マク 2 2022/06/19 18:45
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 1 2022/06/18 21:20
- Visual Basic(VBA) エクセル VBA 条件によるセル点滅 お詳しい方 ご教授をお願いします。 Excelファイルにて 現 1 2022/11/03 15:53
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) エクセルの値を元に図形の色を変えたい 2 2022/05/11 01:37
- Visual Basic(VBA) エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ 5 2022/11/06 21:34
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Visual Basic(VBA) VBA言語プログラミング 1 2022/11/19 17:16
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
モジュールの最大数はいくつなのでしょうか?
Access(アクセス)
-
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
-
4
「コンパイルエラー:プロシージャが大きすぎます。」を回避するには。
Visual Basic(VBA)
-
5
VBA Shapes コピーと名前
Excel(エクセル)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
VBで構造体を使うさ際の64k制限の回避方法教えてください。
Visual Basic(VBA)
-
8
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
9
【VB.NET】 パワポ操作を非表示で
Visual Basic(VBA)
-
10
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
11
VBAの配列サイズとメモリに関して
Visual Basic(VBA)
-
12
Excel VBAで、実行時にsheet上のコマンドボタンのCaptionを変更する。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのマクロでモジュールを...
-
OutlookVBAで作成したマクロに...
-
エクセルVBAでUserFormを起動し...
-
Excel VBAで「プログラム実行」...
-
【Excel VBA】 WorksheetやRa...
-
Access VBAで行ラベルが定義さ...
-
ACCESS2007インポート時の空白...
-
或るプロシージャの呼び出し元判定
-
PL/SQLのエラーについて
-
callで順に実行されるプロシー...
-
エクセルVBAが対応できるプログ...
-
VBA プロシージャの名前の取得
-
ACCESS マクロをモジュールに変...
-
Statement ignored というエラー
-
sqlplusでヘッダーが付かない
-
likeとsubstrの使いわけについて
-
キャッシュを使わずにSELECTを...
-
ODBCリンクの際にACCESSでは読...
-
時間項目を60進数から10進数へ...
-
oracle 文字列 01:45 を時間に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
エクセルVBAでUserFormを起動し...
-
callで順に実行されるプロシー...
-
Excel VBAで「プログラム実行」...
-
【Excel VBA】 WorksheetやRa...
-
OutlookVBAで作成したマクロに...
-
Accessでグローバル変数を宣言...
-
或るプロシージャの呼び出し元判定
-
VBA プロシージャの名前の取得
-
DBMS_OUTPUT.PUT_LINEを実行し...
-
excel/vba/public変数
-
ACCESS2007インポート時の空白...
-
PL/SQLのエラーについて
-
ACCESS マクロをモジュールに変...
-
エクセルVBAが対応できるプログ...
-
DB2でのストアドプロシージャの...
-
エクセルVBAの次のコードの...
-
Excel:ThisWorkbookオブジェク...
-
アクセスのVBについて
おすすめ情報