あるメーカーでは・・そうあのメーカーです、回答納期が変更になった場合、その内容が私宛にメールが届くようになっています、それをそのまま社員に転送していました。
いくつかのメーカーの納期回答をEDIから引っ張って整形して印刷しそれを毎朝回覧しています、冒頭の回答納期の変更もそのように出来ないかと考えたのが以下のマクロ。
Sub データ整形()
With Application
.ScreenUpdating = False
ClpBrd.GetFromClipboard'クリップボードからDataObjectにデータを取得する
ActiveSheet.PasteSpecial _
Format:="Unicode テキスト" 'Unicode テキストで貼り付ける
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
For n = 最終行 To 1 Step -1 '不要なデータを削除
If Left(Cells(n, 1), 1) = " " Then
Rows(n).EntireRow.Delete
ElseIf Left(Cells(n, 1), 1) = "" Then
Rows(n).EntireRow.Delete
ElseIf Left(Cells(n, 1), 1) = "-" Then
Rows(n).EntireRow.Delete
ElseIf Left(Cells(n, 1), 1) = "春" Then
Rows(n).EntireRow.Delete
ElseIf Left(Cells(n, 1), 1) = "注" Then
Rows(n).EntireRow.Delete
End If
Next n
'データを区切る
Columns(1).TextToColumns _
Destination:=Range("A1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, _
Space:=True, _
FieldInfo:= _
Array(Array(1, 1), Array(2, 1), _
Array(3, 1), Array(4, 5), Array(5, 5), _
Array(6, 5), Array(7, 5), Array(8, 1))
Rows(1).Insert
Cells(1) = "注文NO"
Cells(1, 2) = "品目"
Cells(1, 3) = "受注数"
Cells(1, 4) = "要求日"
Cells(1, 5) = "今回納期"
Cells(1, 6) = "前回納期"
Cells(1, 7) = "受注日"
Cells(1, 8) = "受注番号"
With Cells(1).CurrentRegion
行 = .Rows.Count
列 = .Columns.Count
End With
Set ソート範囲 = Range(Cells(1), Cells(行, 列))
ソート範囲.Sort _
Key1:=Range("A1"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin
For h = 2 To 行 '受注番号に"001"を付加する
Cells(h, 8) = Cells(h, 8) & "001"
Next h
Cells.EntireColumn.AutoFit
Columns("B").ColumnWidth = 30.63
Range("A1:H1").HorizontalAlignment = xlCenter
Columns("D:G").EntireColumn.NumberFormat = "yyyy/mm/dd"
Columns("I").Delete
'-------印刷--------
・・・・
・・・
End Sub
本来これもEDIから引っ張れればすごく楽なのですが発想が硬直しているメーカーだからそれは無理な話。