3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

エラーメッセージ「プロシージャーが大きすぎます」

2012年7月31日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

Excelマクロ・VBA達人養成塾 小川です。

7月29日のエクセルマクロ・VBA基礎講座のあとの懇親会で撮った写真。
エクセルマクロ達人養成塾塾長ブログ-エクセルマクロ・VBA達人養成塾 基礎コース7月29日懇親会

さいきん、こんな質問を受講生からもらいました。

以下のようなマクロを書いていたら、
5000行くらいになってしまって

「プロシージャーが大きすぎます」

というエラーが出てしまい、作動しませんでした。

とのこと。

If shTo.Range(“c9”).Value >= 40 And shTo.Range(“c9”).Value < 65 Then If shTo.Range("c9").Value < 63000 Then shTo.Range("E9").Value = 2891.3 ElseIf shTo.Range("c9").Value < 73000 Then shTo.Range("E9").Value = 3389.8 ElseIf shTo.Range("c9").Value < 83000 Then shTo.Range("E9").Value = 3888.3 ElseIf shTo.Range("c9").Value < 93000 Then shTo.Range("E9").Value = 4386.8 ElseIf shTo.Range("c9").Value < 101000 Then shTo.Range("E9").Value = 4885.3 ElseIf shTo.Range("c9").Value < 107000 Then shTo.Range("E9").Value = 5184.4 ElseIf shTo.Range("c9").Value < 114000 Then shTo.Range("E9").Value = 5483.5 ElseIf shTo.Range("c9").Value < 122000 Then shTo.Range("E9").Value = 5882.3 ElseIf shTo.Range("c9").Value < 130000 Then shTo.Range("E9").Value = 6281.1 ... End If If shTo.Range("c19").Value < 63000 Then shTo.Range("E19").Value = 2891.3 ElseIf shTo.Range("c19").Value < 73000 Then shTo.Range("E19").Value = 3389.8 ElseIf shTo.Range("c19").Value < 83000 Then shTo.Range("E19").Value = 3888.3 ElseIf shTo.Range("c19").Value < 93000 Then shTo.Range("E19").Value = 4386.8 ElseIf shTo.Range("c19").Value < 101000 Then shTo.Range("E19").Value = 4885.3 ElseIf shTo.Range("c19").Value < 107000 Then shTo.Range("E19").Value = 5184.4 ElseIf shTo.Range("c19").Value < 114000 Then shTo.Range("E19").Value = 5483.5 ElseIf shTo.Range("c19").Value < 122000 Then shTo.Range("E19").Value = 5882.3 ElseIf shTo.Range("c19").Value < 130000 Then shTo.Range("E19").Value = 6281.1 ... End If If shTo.Range("c27").Value < 63000 Then shTo.Range("e29").Value = 2891.3 ElseIf shTo.Range("c27").Value < 73000 Then shTo.Range("e29").Value = 3389.8 ElseIf shTo.Range("c27").Value < 83000 Then shTo.Range("e29").Value = 3888.3 ElseIf shTo.Range("c27").Value < 93000 Then shTo.Range("e29").Value = 4386.8 ElseIf shTo.Range("c27").Value < 101000 Then shTo.Range("e29").Value = 4885.3 ElseIf shTo.Range("c27").Value < 107000 Then shTo.Range("e29").Value = 5184.4 ElseIf shTo.Range("c27").Value < 114000 Then shTo.Range("e29").Value = 5483.5 ElseIf shTo.Range("c27").Value < 122000 Then shTo.Range("e29").Value = 5882.3 ElseIf shTo.Range("c27").Value < 130000 Then shTo.Range("e29").Value = 6281.1 ... End If ... End If[/vb] こんな相談をもらったら、あなたなら、どうしますか?
それにしても、すごいですね。。

プログラムの長さが5000行までいったという人、はじめて聞きました (@_@;

こういう、「目にとまった道具を使って、トコトンやってみる」という姿勢、大好きです ヾ(´ー`)ノ

とはいえ、このように、書いたプログラムが長すぎるという状況を作ってしまったところで、
根本的なところで、データ処理の考え方の基本をはずしてしまっている可能性があります。

では、それはどこなのか。

以下のFacebookグループページで、コメントしています。
達人養成塾のほかの受講生の意見も含めて見ることができます。参考にしてください。

http://www.facebook.com/groups/302276216464523/permalink/502813619744114/

キーワード

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド