アプリ版:「スタンプのみでお礼する」機能のリリースについて

皆様
Excelについて、お知恵をお貸しください。
内容は次のような内容です。

条件
毎日作成されるExcelのファイルがあります。
20161128.xls(ファイル名はその日の日付になります。)で、シートは5つあります。シート名は1~5で固定です。
各シートはA3:E100まで数字と空欄が入っています。

実施したいこと
別のExcelのファイルの1つのシートに集約したい。
また、集約するシートのExcelファイルを開くときに集約を実行したい。
 例えば
  ①20161128.xleのシート1の内容を取り込み先のシートのA1:E100までコピー
  ②20161128.xleのシート2の内容を取り込み先のシートのF1:J100までコピー
  ③20161128.xleのシート3の内容を取り込み先のシートのH1:L100までコピー
   これをシート5までくりかえしたい

単純な内容ですが、できなくて困っています。
ぜひお知恵をお貸しください。また、同様の質問を探したのですが、見付けきれませんでした。
こちらを参照のような回答でもかまいません。
お手間をとらせますが、よろしくお願いします。

A 回答 (2件)

集計用のブックを開く時に集計したいとのことですが、集計対象のブック(日付のブック)は、どのように指定するのでしょうか?とりあえず、「当日日付のブックを集計する」で良ければ、こんな感じです。



集計用ブックのThisWorkbookモジュールのWorkbook_Openイベントプロシジャに次のVBAを張り付けて保存してください。集計用ブックを開くと集計結果が表示されます。
ちなみに、日付のブックと集計用のブックと同じフォルダにあるものとします。

Private Sub Workbook_Open()
Dim myRng As String
Dim ShNo As Long
Dim r As Long
Cells.Clear
For ShNo = 1 To 5
myRng = "'" & ThisWorkbook.Path & "\[" & Format(Now(), "yyyymmdd") & ".xlsx]" & ShNo & "'!A1"
r = (ShNo - 1) * 5 + 1
Range(Cells(1, r), Cells(100, r + 4)).Formula = "=IF(" & myRng & "="""",""""," & myRng & ")"
Next ShNo
Cells.Copy
Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range("A1").Select
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
試してみます。

お礼日時:2016/11/29 14:39

①「20161128.xle」は「20161128.xls」ですよね?


②「集約するシート」の名前は、何ですか?
③ 毎回同じファイルだとしたら毎回上書きしてしまってよいのですか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご質問ですが、次のように考えています。
 ① 打ち間違えでした。Excelなので.xslでした。
 ② ファイル名はまだ決めていませんでした。
 ③ ファイルを上書きではなくシートのみを上書きしたいです。
以上になります。
よろしくお願いします。

お礼日時:2016/11/29 14:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!