- 締切済み
excel vba 作成について教えて下さい。
excel VBAを使ってあるブックのセル範囲を別のブック(日報.XLS)のシートへコピー貼り付けをしたいのですが、コピーする側のブックがランダムに取り込まれ(例 8時間ピッチにて自動的にブックが作成される)そのブックを日にちごとに集計し、一か月ごとにまとめるということをやらなければなりません。 例)8時間ごとにフォルダが作成されます。 000001.XLS 000002.XLS 00000F.XLS ・・・・・・・・16進数にて 上記ブックのSheet1のA2:A11までの数値を別のブック(日報月報集計)のに貼り付ける。 別のブック(日報月報集計)は項目ごとに10個のシートがあり 8時間ごとのファイルのセルA2は別ブックのSheet1の日付けに対応するセルへ貼り付け B2は Sheet2 上記操作を8時間ごと(可変可能)に自動的にコピー貼り付けをやりたいのですが ブック間のコピー貼り付け等わからないことが(初心者です。)多々あり、いろいろ調べてはいるのですが、STOPした状態です。 出来れば、初心者にも理解しやすい解説等あれば宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hallo-2007
- ベストアンサー率41% (888/2115)
いくつもクリアしなければならない箇所が沢山あります。 1、所定のファイル(仮に 一つのフォルダにある000001.XLS を開き 指定したセルの値を 月報.xlsの指定した場所へ入れていく VBAのコード 2、1が出来たら、000001.XLSから00000F.XLS まで繰り返して実行するコード 3、2が出来たら、次のフォルダーのパスを取得して、2を実行するコード 4、8時間ごとに、3を実行させるコード と順番にかんがえましょう。 とにかく、1が出来なければ、前へ進めません。 すべてを考えるとSTOPしてしまいそうですが、とりあえず 1の段階をクリアしてください。 一案ですが、データ取り込みのシート以外に、添付のようなファイル名とパスをいれたシートを準備しておきます。 データ取り込みのシートから Sub ボタン1_Click() GYOU = Range("A" & Rows.Count).End(xlUp).Row + 1 Myfile = Sheets("ファイル一覧").Range("A2").Value & "\" & Sheets("ファイル一覧").Range("A6").Value Workbooks.Open Filename:=Myfile ThisWorkbook.Sheets("データシート").Range("A" & GYOU).Value = Range("A5").Value ThisWorkbook.Sheets("データシート").Range("B" & GYOU).Value = Range("G6").Value ・・・・・・取り込みたいセルの数だけ ThisWorkbook.Sheets("データシート").Range("Z" & GYOU).Value = Range("H2").Value ActiveWorkbook.Close SaveChanges:=False End Sub を実行せすれば、指定したフォルダの指定したファイルを開いて、それぞれのセルの値が 1行づつ追加されていくと思います。 とりあえず、ここまで十分に理解して、次の 2のステップへ進みましょう
- MSZ006
- ベストアンサー率38% (390/1011)
初心者の方にはちょっと難しい処理ですね。 まず、できるだけ具体的に、何をどうするのかを明確にしていく必要があります。 1)1日ごとの集計は、自動作成されるエクセルブック(000001.xlsなど)の「作成日時」をみて判断する?ブック内に日時の入っているセルがある?(月ごとの集計も同様) 2)上記ブックを日報.xlsに「どのように」集計するのか?(単にシートを貼付けるのか(どのように)、何らかの計算があるのか。) 日別の集計ブックは毎日作られていくので「日報.xls」という固定名ではダメではないのか?(日報yymmdd.xlsのような名前にする?それともすぐに月報集計に転記?だったら日報の存在意義は?) などなど、仕様を固めるところから考えてみてください。 >上記操作を8時間ごと(可変可能)に自動的にコピー貼り付けをやりたい エクセルのVBA、というよりもWindowsアプリケーションの作成になってくるかもしれません。
お礼
遅くなりました、一応解決致しましたのでありがとうございます。
お礼
遅くなりましたが、一応解決致しましたのでありがとうございます。