ここから本文です

Excelに関する質問です。 デスクトップ内のtestというフォルダにある大量のファ...

rii********さん

2018/5/1614:00:36

Excelに関する質問です。

デスクトップ内のtestというフォルダにある大量のファイルに以下のような処理をしたいです。
(1つのデータが多すぎるため分割されたのだと思います。

8つのファイルで1つ分のデータです)

【フォルダ内の1つ目~8つ目のファイル】
C列に列を挿入。挿入した列に =(A-1+480001*0)*0.015*1.5

【9つ目~16つ目】
C列に列を挿入。挿入した列に =(A-1+480001*1)*0.015*1.5

【17つ目~24つ目】
C列に列を挿入。挿入した列に =(A-1+480001*2)*0.015*1.5

・・・

わかりづらいと思いますが、こんな感じです。480001にかける数字が8個毎に1ずつ増える感じです。
こんな作業が行えるのかどうかだけでもいいので教えていただけると助かります。

補足ファイル数は24ではなく、1500くらいあります。

閲覧数:
211
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

lgk********さん

2018/5/2008:46:32

できますが、危険です。
すべてのファイルが8個に分かれていればいいのですが、物によって、7個だったり、9個だったりすると狂います。
また、関係ないファイルが紛れていても狂います。
ファイル名の付け方によっても狂います。
A_1
A_2

A_8
B_1
のような付け方ならいいのですが、
A_1
A_2

A_10
のような付け方だと、VBA では、文字の順、つまり、
A_1
A_10
A_2
の順で処理するので、狂います。
以上の点に注意して下さい。
上記の点で問題があれば、ファイル名の付け方の規則を返信して下さい。
それで判断するようにしたほうがいいと思います。
C列を挿入後、A列が数字なら、C列に式を入れています。
'
Option Explicit
'
Sub Macro1()
'
    Dim VData As Variant
    Dim Row As Long
    Dim Count As Integer
'
    Set VData = CreateObject("WScript.Shell")
    VData = VData.SpecialFolders("Desktop") & "\test"
    ChDrive VData
    ChDir VData
    VData = Dir("*.xls*")
'
    While VData > ""
        Workbooks.Open VData, 0
        [C:C].Insert
'
        For Row = 1 To Cells(Rows.Count, "A").End(xlUp).Row
            VData = Cells(Row, "A")
'
            If IsNumeric(VData) Then
                Cells(Row, "C").FormulaR1C1 = _
                   "=(RC[-2]-1+480001*" & Count \ 8 & ")*0.015*1.5"
            End If
        Next Row
        ActiveWorkbook.Save
        ActiveWindow.Close
        VData = Dir
        Count = Count + 1
    Wend
    Close
End Sub

  • 質問者

    rii********さん

    2018/5/2016:16:05

    返信ありがとうございます。
    ファイルは全て8分割されています。
    ファイル名はその時記録した時間になっています。
    例えば2018年5月4日22時50分に記録したものですと、201805042250_1のようになっています。8分割ですので、201805042250-8まで続いています。

  • その他の返信を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問は投票によってベストアンサーに選ばれました!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる