OSはVista/メモリ2ギガ(ただし、XP/メモリ250メガでもまったく同じ症状が起こりました)、エクセル2003です。
エクセルのシートに品名一覧データを作り、ユーザーフォームから追加、変更等できるマクロを組んでいます。
ユーザーフォーム(名前は「設定」)にはコンボボックスが1つとテキストボックスが3つ、シート(名前は「一覧」)の項目数は4つ、品名数は50程度です。
シート上にユーザーフォームを開くボタンがあり、コンボボックスのソースは、それを押したときに以下のように取得しています。
設定.ComboBox1.Clear
Range("A2").Activate
設定.ComboBox1.RowSource = Worksheets("一覧").Range(ActiveCell, ActiveCell.End(xlDown)).Address
本体のコードは以下のとおりです。
Private Sub CommandButton1_Click()
Dim a As Integer
Dim c, d, e, f As String
Dim k As Range
Sheets("一覧").Activate
c = 設定.ComboBox1.Value
d = 設定.TextBox1.Value
e = 設定.TextBox2.Value
f = 設定.TextBox3.Value
Columns("A:A").Select
Set k = Selection.Find(c)
If Not k Is Nothing Then
If MsgBox("その品名はすでに存在します。" & vbCrLf & "置き換えますか?", vbOKCancel) = vbCancel Then Exit Sub
a = k.Row
Cells(a, 1).Value = c
Cells(a, 2).Value = d
Cells(a, 3).Value = e
Cells(a, 4).Value = f
Set k = Nothing
Range("A1").Activate
Else
a = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(a, 1).Value = c
Cells(a, 2).Value = d
Cells(a, 3).Value = e
Cells(a, 4).Value = f
Rows("2:" & a).Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending
Range("A1").Activate
End If
Me.Hide
End Sub
新規追加(Else以降の部分)はスムーズに行くのですが、すでにデータがあって置き換える場合(Else以前の部分)、作動はするのですが、3回くらい同じことを繰り返すと「リソース不足のため、このタスクを完了することができません。選択するデータを少なくするか、ほかのアプリケーションを終了して再度試してください。」というエラーが出てエクセルが自動終了してしまいます。
最初、「Set k = Nothing」が入っていなかったのでそのせいかと思ったのですが、入れてみても事態は変わりません。
もちろん、ほかのアプリケーションは作動していません。
お解りの方がいらっしゃいましたら、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんにちは。
>設定.ComboBox1.RowSource = Worksheets("一覧").Range(ActiveCell, ActiveCell.End(xlDown)).Address
ここで、少し無理が生じていますが、とりあえず、これはそのままにしておきます。
残る部分としては、
>Me.Hide
この部分がちょっと問題かもしれませんね。以下に変えてみたらいかがですか?
Unload Me
なお、Excelの使用するメモリは、物理的メモリではなく、仮想メモリ側です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
gpeditの設定変更をバッチで実...
-
エクセルのツール-オプション...
-
アダルトサイト?のプロキシ設...
-
任意のIPアドレスを端末に割り...
-
ドライブレーダーの時計合わせ
-
DNSサーバとADサーバの設置につ...
-
ローカルセキュリティポリシー...
-
Jpg4が開けない
-
【Windows10】自動構成IPv4 ア...
-
「ドメイン」とは何ですか?
-
ネットカフェにキーロガーなどを
-
CMOSクリアとBIOS初期化の違い
-
ローカルアドミンにドメインユ...
-
pcにps4のコントローラーを接続...
-
ドメイン参加PCのコンピュータ...
-
Active Directoryでの兼務設定
-
ネットワークドライブが勝手に...
-
ネットワークドライブ
-
Windows Server2008 スリープモ...
-
USB接続のマイクについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
gpeditの設定変更をバッチで実...
-
IEで自動構成スクリプトが元に戻る
-
Yahoo知恵袋が不正なユーザーに...
-
Oracleの数値型で1以下の値をセ...
-
Arduino PWM周波数を20kHzにしたい
-
javamailのダウンロード
-
エクセルのツール-オプション...
-
Mac使用のoffice2011 エクセル...
-
プリンタドライバ設定
-
intel10100F GTX1080の構成でPC...
-
Excel ユーザーの設定ビ...
-
benq EW3270Uモニター
-
ブラウザのプロキシ設定の取得...
-
HP-UX システム言語環境の確認方法
-
プロクシ切り替えソフトについて
-
ユーザ環境変数とシステム環境...
-
OUTLOOKで自動的に迷惑フォルダ...
-
秀丸メールを複数立ち上げる
-
ニキシー管時計の自作について
-
グラブル(グランブルーファン...
おすすめ情報