別ファイルへのデータ出力とタスクへマクロ登録
大変お世話になっております。
ホルダーに保存した複数データ(Excel形式)の指定した列のデータを1つの出力ファイルへ追記する為に、EXCELのマクロを使用しております。マクロは手動で起動させています。
今回、ご教示を頂きたい事は、以下の2点になります。
①出力データは、マクロファイル内のシートへ保存する設定にしていますが、別ホルダーの別ファイルの別シートへデータを出力出来るようにし、出力は1行おきに色を付けたい。
②更に、マクロは手動で起動させていますが、タスクマネージャーに入れてマクロファイルを登録し、決められた時間に出力ファイルを作成したい。
マクロは全くの初心者で、どの部分を修正すれば、
①が実行出来るようになるのか、色々とネットで検索しながら、
スクリプトを変更して見ましたが、できませんでした。
先ずは、①についてご教示頂けないでしょうか。
下記コードはマクロ内のシートへデータ出力である事はわかるのですが、どのように変更すべきなのかわからず大変困っております。
Set O = ThisWorkbook.ActiveSheet
以下に、現在使用しているマクロを記載させて頂きました。
Sub Macro1()
Dim O As Worksheet
Dim FileName As String
Dim ROut As Long
Dim REnd As Long
Cells(1, "A") = "個人番号"
Cells(1, "A").EntireColumn.ColumnWidth = 15
Cells(1, "B") = "職員番号"
Cells(1, "B").EntireColumn.ColumnWidth = 15
Cells(1, "C") = "氏名"
Cells(1, "C").EntireColumn.ColumnWidth = 15
Cells(1, "D") = "所属/拠点"
Cells(1, "D").EntireColumn.ColumnWidth = 15
Cells(1, "E") = "所属/グループ"
Cells(1, "E").EntireColumn.ColumnWidth = 15
Cells(1, "F") = "役職"
Cells(1, "F").EntireColumn.ColumnWidth = 15
Cells(1, "G") = "開始年月日"
Cells(1, "G").EntireColumn.ColumnWidth = 15
Cells(1, "H") = "終了年月日"
Cells(1, "H").EntireColumn.ColumnWidth = 15
Cells(1, "I") = "申告"
Cells(1, "I").EntireColumn.ColumnWidth = 15
Cells(1, "J") = "判定1"
Cells(1, "J").EntireColumn.ColumnWidth = 15
Cells(1, "K") = "判定2"
Cells(1, "K").EntireColumn.ColumnWidth = 15
Cells(1, "L") = "判定3"
Cells(1, "L").EntireColumn.ColumnWidth = 15
Cells(1, "M") = "判定4"
Cells(1, "M").EntireColumn.ColumnWidth = 15
Cells(1, "N") = "判定5"
Cells(1, "N").EntireColumn.ColumnWidth = 15
'
Set O = ThisWorkbook.ActiveSheet
FileName = Dir(ThisWorkbook.Path & "\参加者_*.xlsx")
Range("A2:N" & Rows.Count).ClearContents
ActiveSheet.CheckBoxes.Delete
ROut = 2
Application.ScreenUpdating = False
'
Do While FileName > ""
Workbooks.Open ThisWorkbook.Path & "\" & FileName, False, True
FileName = Replace(FileName, ".xlsx", "")
'
If ROut < 8 Then
Rows("1:" & 8 - ROut).Delete
ElseIf ROut > 8 Then
Rows("8:" & ROut - 1).Insert
End If
REnd = Cells(Rows.Count, "C").End(xlUp).Row
O.Range("A" & ROut, "A" & REnd) = Mid(FileName, 7)
Range("B" & ROut, "H" & REnd).Copy O.Range("B" & ROut)
Range("N" & ROut, "N" & REnd).Copy O.Range("I" & ROut)
Range("Q" & ROut, "U" & REnd).Copy O.Range("J" & ROut)
ROut = REnd + 1
ActiveWorkbook.Close False
FileName = Dir
Loop
' Range("A1").Select
' Range("A1").CurrentRegion.ClearFormats
' ActiveSheet.ListObjects.Add SourceType:=xlSrcRange, Source:=ActiveSheet.Range("A1").CurrentRegion
'数値へ変換
Range("B:B").Value = Range("B:B").Value
Range("B:B").Replace What:=vbTab, Replacement:=""
MsgBox ("完了です")
End Sub
お礼
回答ありがとうございます。 教えていただいた内容が参考になりデータ追加できました。 name2はテーブルの項目名になるので、対応としては、excel帳票の中で PEOPLE'S→PEOPLE''S と置換しました。 ’が使用されている文字列が多かったら、マクロで対応とも考えましたが、この文字列1ケだけが’付きだったので上記の様に置換で対応しました。 excelからoracleへのデータ追加マクロは他にもあり、そちらは'付きでもデータ追加できていたのですが、処理時間が遅いので、今回事例であげたマクロで対応出来て時間短縮となり、非常に助かりました。(^^)/