- 締切済み
vba excelを自動取り込み
(1)win_xp ram_1g ex_03 (2)exブックを画面に出し⇒5秒後 にenter押す⇒次のブックを画面に出し⇒容量エラーが出る前に一括保存⇒ の繰り返しをvbaで 出来ませんかね?サンプル作成を----。 (3)ルートディレクトリ= ブックのルートディレクトリは a1⇒ b1⇒ c1に入っている。 (4)ブックの数は今現在166 今後増えるpc hddの許す限り (5)ブックの名称 A1~A?? (pc hdd容量の許す限り) (6)ブック 1にシート1 今現在1シートで容量が約2メガですので10から15処理しています pcのメモリーの関係で容量のエラーの出る前に一旦画面だしを止めて、一括保存を処理、再度繰り返しをしています。 ***あほな事を試しました--ツール--マクロ--新しいマクロの記録 Sub goo() Application.WindowState = xlMaximized End Sub でした。***こんな程度です。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 前回、回答した者です。 ずっと気になってはいたのですが、今の段階では、とても本格的に回答を書けるレベルではない状態なのです。私は、ある程度は分かっているつもりだから、逆に、これは難しいと感じます。 私も、RSSの質問は、何度も受けてはいるのですが、ここの掲示板では、それを専門とする方の回答を見たことがありません。他の掲示板で、VBA専門で、古くから株価のデータ取得を専門の方がおり、そういう人なら可能だとは思います。(ただし、無料で教えるかは分かりません) それで、 >pcのメモリーの関係で容量のエラーの出る前に一旦画面だしを止めて、一括保存を処理、再度繰り返しをしています。 この部分で、おそらくRSS関数が、一斉に値を取得し始めているのではないか、と思ったのです。そうなると、常識的には、手がつけられないような気がします。Excelというのは、一般的な物理的なメモリの範囲外のところで動いていますが、この際は、本当に「PCのメモリ」に関わってくるようですね。(私の想定範囲) haro-goo さんは、今までの方よりも、きちんと書いていただいているので話が進むわけですが、実際に、私のここ2年の掲示板をみて、あまり、RSS関係の質問が解決に向かったことは少ないのと、まったく未知な質問が次から次と出てくるので、私は、最近は、このような質問は、様子見させていただいている状態です。私自身、前回は、きちんと試すことができましたが、ここのカテゴリの回答で唯一に近いほど、この種の質問は、失敗を繰り返しています。 一応、私の別のパソコンには、RSS はインストールしていますが、実際に、RSSで、インターネットにはつないではいません。楽天証券には、最初の数ヶ月は無料とは聞きますが、こういうExcelを教えるためという目的では、本格的にするには至らないのです。 この手の専門書は探してみませんでしたか?私のVBAのレベルは、そんなに低くはないと思っていますが、それでも、未知の部分が多すぎて、荷が重過ぎます。 >今現在1シートで容量が約2メガですので10から15処理しています 問題は、ここですね。それぞれの会社があるということですね。 理屈では、以下のようなスタイルですが、 '開いて Workbooks.Open Filename:="C:\08\5\9\133マ2.xls" 'データを取得し '****画面ストップ Application.ScreenUpdate = False '*OLE リンクの更新のコントロール を考える Appliation.Calculate '**これ以降に、RSS の割り込みが入るはず Application.ScreenUpdate = True ActiveWorkbook.Save ActiveWorkbook.Close False スムーズには通らないような気がしているのです。 それから、制御用のブックも作らなくてはなりませんしね。 おそらく、以下の部分でコントロールすればよいかなって思います。 (オブジェクト.)UpdateLinks:=xlUpdateLinksAlways '3 最初に、2 して、安定したと同時に、更新させて、そして、また、閉じてしまう方法があるのかもしれません。 取得サイクルは、たぶん、1分以内ですか?かなり厳しいのです。 一応、マクロなら、前回のように、Interrupt して、Excelを処理するしかないような気がしますが、値をとり始めたとたんに、マクロが途切れる可能性があるので、それを、OnTime で、時間を計測して間を取り、保存処理部に進むようにしなければならないかもしれません。 実際には、ひとつずつ実験するということをしなければ、こういうものは、完成の目処が立ちません。
- hallo-2007
- ベストアンサー率41% (888/2115)
マクロの記録の際に、 Windowsのデスクトップの画面で、ファイル操作しませんでしたか? マクロの記録 エクセルのツールバーで、「ファイル」「開く」開くファイルをクリック 「ファイル」「名前を付けて保存」指定したフォルダを選択して保存する 「ファイル」「閉じる」 記録の終了 で、記述されるVBA確認してみてください。 ただ、やりたい事が、ファイルのバックアップのようですが、 であれば、エクセルVBA以外の方法が良いと思います。 質問の方法を、やりたいことに変えて新たに質問してみませんか。
補足
hallo-2007さん お世話になります。 はいそのトウリデシタ。 マクロを保存する為にexを開いて其れからツール--マクロ--新しいマクロの記録--開く--"C:\08\5\9\133マ2.xls--で同じ事の繰り返し ブックの名が数字が1~2000の予定但し数字は通しではありません。 日本語は?文字数の予定 *** ここで(2)の繰り返しのマクロが欲しいのです。 Workbooks.Open Filename:="C:\08\5\9\133マ2.xls" , UpdateLinks:=3 Workbooks.Open Filename:="C:\08\5\9\172東2.xls" , UpdateLinks:=3 Workbooks.Open Filename:="C:\08\5\9\220森2.xls" , UpdateLinks:=3 Workbooks.Open Filename:="C:\08\5\9\277越2.xls" , UpdateLinks:=3 中略 *** ここでも繰り返しのマクロが欲しいのです。 ActiveWorkbook.Save ActiveWindow.Close ActiveWorkbook.Save ActiveWindow.Close ActiveWorkbook.Save ActiveWindow.Close ActiveWorkbook.Save ActiveWindow.Close End Sub 遅くなりまして。
補足
Wendy02さん、こんにちは と言いたかったのですが今晩は 私自信の質問に対して直ぐに返事を出さずにすみませんーーーーー。 さて 余談から入ります。 プロは、この様な窓には入らないと思います、何故ならプロはブラック、ボックスで稼いでいますから でも 覗いているかも? さて 本題に入ります。 考えとして 専用機をセットしてみます何故ならpcを日本語に直すとパーソナルです、それと返事の内容で改めて感じとつた事はそもそもexを動かしている間は殆どのソフトが使えない事ですね?????。 ひとつのデレクトリーに 13マ2 14ヤ2 ーー 幾つも入れといて 一つ呼び込み⇒更新のマークが出ますがカーソルを当てずにエンターを押すだけでよし⇒ oooooooooooooooooooooo For i = 0 To 999 (1)此処にデーターを入れる (2)if then またわ EXACT 等で 比較判定させる 一箇所に設置それを参照変化したら次に進む Next i oooooooooooooooooooooo カウンターでグルグルまわし判定終了後⇒保存⇒呼び出し⇒最初に戻る と言うすじみちです、-----と考えています、只残念なことにvba専門書読む能力無しです 理解が出来ません SARANI Wendy02さんのコードの流れが読めないレベルですが考え方としては自信有り????本当かな~。 是しともテストをさせて下さい。