• 締切済み

エクセルVBAでセルにリストを作成すると、長文の場合「メモリ不足」でエラーになってしまいます。

お世話になっております。 Excel 2000 VBA でツールを作成しているのですが、セルにリストを作成する際、522文字以上あたりで 「メモリー不足です。」または「アプリケーション定義エラーです」 で異常終了となってしまいます。 VBAでなく、キーボード操作で同様のリストの作成は可能です。 VBAでリストを作成する場合、文字列長の制限等あるのでしょうか? お時間ありましたら、どなたか情報をお願い致します。

  • sho_ta
  • お礼率68% (221/322)

みんなの回答

  • venzou
  • ベストアンサー率71% (311/435)
回答No.3

まず、セルに入力できる文字数ですが http://office.microsoft.com/assistance/hfws.aspx?AssetID=HP051992911041&CTT=1&Origin=EC010229841041&QueryID=xRc7w5slG&respos=1 セルの内容の長さ (文字列) 32,767 文字 数式の長さ 1,024 文字 との情報があります。 VBAでセルへ代入する時「リスト」の内容が数式と解釈され、1024の制限に引っかかっていると思います。 セルへ代入する時に、先頭に "'" を付けてみてください。 例: Range("A1").Value = "'" & String(30000, "+") 'エラーなし Range("A1").Value = String(30000, "+") 'エラー

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

リストって何のことですか? コードと処理の目的を補足してください。 これらの情報は必要最小限だと思いますよ。

回答No.1

文字数の問題ではなくて、処理の過程で作成しているオブジェクトの扱いに問題があるとか。 例えば 大量に何かを作成している。 大量に何かを開いたり閉じたりしている。

関連するQ&A

  • アクセスのフォーム作成でVBAがメモリー不足で開けない

    アクセスのフォーム作成でVBAがメモリー不足で開けない。 2000MEでモメリー増設もしたのですが 他のアプリケーションが動いているわけでも ないのに 何かうまい方法はないですか

  • (初心者)Excelで連動するドロップダウンリストを作成しています。

    他に同じ質問があったらすいません。 探したのですが見つからなかったため、質問させていただきます。 Excelで多項目の連動するドロップダウンリストを作成しています。 名前の定義で「○○&□□」 (例えば「メニュー&ツール」) と定義したいのですが、「&」を使用するとエラーが出てしまいます。 「&」は使用不可文字なのでしょうか。 また、作成しようとしているリストは、 (1)A1のセルで○、もしくは△、□がリストから選択できる。 (2)(1)で○を選択した場合はB1のセルでA、もしくはB、Cが選択できる。 (3)(2)でAを選択した場合、C1のセルで1、もしくは2、3が選択できる。 上記のような3階層に渡る連動したリストです。 このようなリスト作成の質問は多数ありましたが、 どれが私の求めているリスト作成に近いのか判断ができませんでした。 恐れ入りますが、参考になるURLや作成方法など、 教えていただけませんでしょうか。 初心者のくだらない質問だとは思いますが、数日悩んでいます。 どうぞよろしくお願いします。

  • エクセルVBAでセル選択

    エクセル2000でリストを作成し、VBAで編集しようとしています。 A列に入力されているコードの先頭に「’」をつけて文字列とするための関数をB2のセルからA列のデータが入力されている最後のセルの隣までコピーしたいと思っています。 A列の最終セルを取得するVBAは分かったのですが、その値をB列の選択範囲として使用する方法がわかりません。 エクセルVBAは全くの初心者です。 どなたか教えてください!

  • エクセルでのドロップダウンリスト作成について

    エクセルで、3つの項目(A,B,Cとします)をドロップダウンリストから選択する場合、A,B,Cを『名前の定義』で関連付けることはできました。しかし、A,B,Cが同じ文字列の場合、同シート上で同じ名前の定義にできないため、ドロップダウンリストが作成できずにいます。 このようなドロップダウンリストを作成するにはどのようにすれば良いか教えてください。 VBAなどが必要になるのでしょうか? 宜しくお願いします。

  • VBA セルにドロップダウンリスト 作成

    Access VBAについてお尋ねいたします。 Access VBA にてExcelファイルを操作するプログラムを作成しています。 Excelの指定した範囲のセルにドロップダウンリストを作成しようとしてコードを入力したらエラーが発生しました。 エラー内容:実行時エラー'1004'アプリケーション定義かオブジェクト定義エラーです エラーとなった処理コード Dim Exf as string Dim AppObj As Object 'Excel.Applicationオブジェクトの宣言 Dim WBObj As Object 'Excel.Workbookオブジェクトの宣言 Dim WsObj As Object 'Excel.WorkSheetオブジェクトの宣言 '実行時バインディング Set AppObj = CreateObject("Excel.Application") '編集を実施するワークブックを開く Set WBObj = AppObj.WorkBooks.Open(Path & Exf) '編集を実施するワークシートを設定する Set WsObj = WBObj.Worksheets(1) 'Excelアプリケーションを表示する AppObj.Visible = True col = 5:Count(i) = 15 '2行目からデータが存在する最後の行までドロップダウンリストを作成する With WsObj.Range(WsObj.cells(2, Col), WsObj.cells(Count(i) + 1, Col)).Validation .Add Type:=xlValidateList, _ AlertStyle:=xlValidAlertStop, _ Formula1:=Join(Li, ",") End With 処理の解説 1:Accessと同じファイルパス内のExcelファイルを開く 2:先頭のシートにて処理を実行する 3:E列の2行目からデータがある最後の行までをドロップダウンリスト化する 4:ドロップダウンリストにするデータは各Excelファイルの先頭から2番目のシートのA列にデータがあり、Liという配列に格納してあります。 ※A列のデータの範囲【行数】が処理するたびに異なるため、Liという配列を使用し、配列の全データをドロップダウンリスト化するという方法を採用いたしました。 エラーの修正方法がお分かりの方がいらっしゃいましたら回答のほどよろしくお願いいたします。

  • VBAでマクロ実行中はExcelのマウスやキーボードを使ってセル選択などを無効にしたい

    お世話になります。 VBAで作成しております。 VBAでマクロ実行中は、Excelのマウスやキーボードを使ってセル選択などを無効にしたいのですが、どのようにすればよいでしょうか? ※Application.ScreenUpdatingはただ、画面の更新は止まっているのですが、セル選択などは裏で実行されているみたいで。。。 以上よろしくお願いします。

  • VBAで「メモリが不足しています」

    VBAツールを作成しました。それぞれ3000行位のデータの1列を取得して、テキストファイルに書き出すツールです。 それが5シート分あり、ボタンを押して実行させます。 標準モジュールに関数が6個 各シートモジュールは関数7個×4シート分 極端に多いモジュールではないと思います。 「メモリが不足しています」と表示されるようになり、 これ以上記入もできない状態です…。 エクセル自体は18MBあります。 PCのCドライブには8GB空きがあります。 PCを変えてエクセルを開いてみても、開いた途端に「メモリが不足しています」と出ます。 どの関数の実行ボタンを押しても、実行はされず、メッセージが出るだけです…。 助けてください!!!

  • エクセル:入力規則のリストとセルの関数は同居できますか?

    エクセル:入力規則のリストとセルの関数は同居できますか? 普通にやるとセルの計算式はリストを選んだ時点でリストの文字に上書きされてしまうので困っています。 (例)   A              B         C 1 2008/08/02        =TODAY 2 ▽リスト           OK 3                NG 4 A2のセルにに =IF(A1>B1,"")と書いたとします。 で、さらにA2のセルに入力規則>リストで範囲B2:B4と設定したとします。 要は、A1に記入した日付が未来の場合は、 A2でリストで選択した文字を空白にしたいのです。 が、どうしてもリストの文字に上書きされてしまうので困っています。 やはり、関数を書いてあるセルに文字を書くと上書きされるのと同じですかね? なるべくVBA以外でなんとかしたいのですが、、、。(でもVBAでも可です)

  • EXCEL 該当セルの入力値によってリストを変更

    MICROSOFT OFFICE 2003を使っています。 セルAに"りんご"と入力されたら、 セルBフォーカス時に"青森,岩手,長野"というリストを作成します。 セルAに"みかん"と入力されたら、 セルBフォーカス時に"愛媛,香川,高知"というリストを作成します。 フォーカス時に該当セルの値によって、作成するリストを変えるということが可能でしょうか? エクセルでのVBAは初心者です。 できれば簡単な方法がありがたいのですが、 どなたがご存知の方がいらっしゃいましたら、 ご教授お願いいたします。

  • エクセル VBA ある条件でセルに色をつけたいのですが、

    エクセル VBA ある条件でセルに色をつけたいのですが、 例えば、A2からA50に文字列が入っていて、ある処理を終えると、空白を除くセルに薄い水色(33)をつけます。ここまでは、VBAで作成できました。 次に、空白を除くセルが、すべて薄い水色になったら、A1を薄い黄(36)にしたいのです。 教えてください。よろしくお願いします。

専門家に質問してみよう