[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『メモリ不足って出てしまいます』(arai)
こんばんは何時もお世話になります
会社のパソコン(NT、97、セレロン700、メモリ192です)でやると メモリ不足ですって出てしまうのですが、何処がいけないのか是非ご教授ください 宜しく御願い致します。
番号 品名 形状 特徴 日付 取扱場所 123 ゴム 黒 11月2日 A支店 564 鉛筆 11月3日 A支店 758 ゴム 11月2日 A支店 1236 ノート 縦書き 11月4日 A支店 11 下敷き 11月2日 A支店 15639 コンパス 11月3日 A支店
上記のような表になっています。(反映フォーム) この表を規則性を持たせるために 1 日付順 2 番号順 に並べていきます。 日付で区切り表題を入力し以下のように修正していきます。
品名 形状 特徴 日付 取扱場所 11 下敷き 11月2日 A支店 123 ゴム 黒 11月2日 A支店 758 ゴム 11月2日 A支店 品名 形状 特徴 日付 取扱場所 564 鉛筆 11月3日 A支店 15639 コンパス 11月3日 A支店 品名 形状 特徴 日付 取扱場所 1236 ノート 縦書き 11月4日 A支店
自分なりに考えこのようなお恥ずかしいものが出来上がりました
Sub 修正()
Sheets("反映フォーム").Select Range("A2:F100").Select
Selection.Sort Key1:=Range("E2"), Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin
Selection.AutoFilter Field:=6, Criteria1:="A支店" Columns("F:F").Select Selection.EntireColumn.Hidden = True
Range("A2").Select
qaz = Range("D105").Value wsx = Range("D104").Value
Rows(qaz).Select Selection.Insert Shift:=xlDown
Rows(wsx).Select Selection.Insert Shift:=xlDown
Rows("1:1").Select Selection.Copy
Range("a" & qaz).Select ActiveSheet.Paste
Range("a" & wsx).Select ActiveSheet.Paste
Range("A2").Select Application.CutCopyMode = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Sheets("反映フォーム").Select Range("A1").Select
End Sub
恥じらいもなく載せてしまいました
どうぞ宜しく御願い致します (arai)
何がいけないのかはわかりません。。。 σ(^o^;)の勉強のため作ってみました。 (久々にエクセルを触って、忘れてる&緊張している・・・) Sub test() Dim MyAry As Variant, MyA As Variant Dim i As Long With Sheets("反映フォーム") MyAry = .Range("B1:F1").Value .Range("A1").CurrentRegion.Sort Key1:=Range("E2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal MyA = .Range("A1", .Range("F" & Rows.Count).End(xlUp)).Value For i = UBound(MyA, 1) To 3 Step -1 If MyA(i, 5) <> MyA(i - 1, 5) Then .Rows(i).Insert Shift:=xlDown .Range("B" & i).Resize(, 5) = MyAry End If Next i .Range("A1") = "" End With Erase MyAry, MyA End Sub んでもって、これで解決するのかもわかりません(汗 (キリキ)(〃⌒o⌒)b
とてつもない式で理解が、、、 明後日会社で検証させていただきます 有難う御座いました 失礼させて頂きます (arai)
バッチリでした。 大変すばらしい解答、勉強になります。 今後とも勉強させてください。 宜しくお願いいたします。 (shota)
この前にペーストを手動でする作業があったのですが その作業にメモリをとられていたようです。 その数式を変更したら大丈夫でした しかしながら、教えていただいたモジュールは 97だからなのか、フォーマットが違うのか 自分には判りかねますが動きませんでした。 今日はフォーマットを持ち帰れなかったので 後日相談に伺わせていただきます どうぞ宜しく御願い致します (arai)
97の場合確か
Dim myAry() As Variant, MyA() As Variant
と宣言すればよいかと... (seiya)
seiyaさん、フォローありがとうございます^^ そうなんですか。。。 97 の場合は、()が必要なんですね? 勉強になりました^^ (キリキ)(〃⌒o⌒)b
セル範囲を変数にいれる場合、97だとこれが正解です。 なまじ配列宣言するとエラーになったと思います。 >Dim MyAry As Variant, MyA As Variant > With Sheets("反映フォーム") > MyAry = .Range("B1:F1").Value
Range("A1:D20").Value = 配列() は、ダメだった記憶があります。
>97だからなのか、フォーマットが違うのか >自分には判りかねますが動きませんでした。 動かないとはどういう意味でしょうか? 意味が解りません。 実行エラー? コンパイルエラー? 実行結果が違う?(これは動いています。落ちた可能性もありますが。) BJ
>DataOption1:=xlSortNormal これはExcel2002で追加されたっぽい。 (アカギ)
こんなにも沢山の書き込み有難う御座いました
お恥ずかしいコードを載せたにもかかわらず 本当に有難う御座います。 明日出勤し、もう一度試してみます そして、この場に持ち帰り改めて お礼をさせていただきます どうぞ宜しく御願い致します。失礼させて頂きます。 (arai)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.