- 締切済み
エクセルマクロでこれを簡単に出来ますか?
部材関係の仕事に携わっている者ですが、日々変る納品リストの整理が長引き、もっと簡単にしたいと思いますが、次のことをエクセルマクロで瞬時にできるのでしょうか?私はエクセル初心者な者で詳しいことが分かりません。 1.エクセルワークシートが15部の構成のブック 2.その内、自分が必要とするのが5部のシート 3.その各シートには2005.6.○○と日付が付与され ている 4.その5部のワークシートに記載されている部材うち、自分に関係する物だけをフィルタオプションを使って抽出、抜き出している。 5.フィルタオプションの抽出条件は別ファイルを開き、コピー、貼付けして検索している。 6.各シート検索後、抽出データーを1枚のシートにまとめるために統合機能を使い、1つのリストにしている。 7.日付により、項目が増減、変動するので多くなると1ページに印刷すると、文字が小さくなるので、目一杯縦横の余白を最小にして印刷している。 以上のような流れなのですが、元になるワークシートのシート名に日付が付与されているせいか、マクロを記録してもエラーが出ます。やはり単純なマクロの記録では1~7の操作実行は無理なのでしょうか? 手順はいつもと同じなのですが、シート日付名をそのまま記録してしまうからでしょうか? 現状1~5までの操作を各シート毎に繰り返しているので非常に時間が係ります。VBAじゃないと無理なのでしょうか?個人用マクロに保存しています。アドバイスお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- jgkmm554
- ベストアンサー率11% (7/62)
まず、手順をマクロで記録してください。それはできたようですね。 次に、ツールメニュー - マクロ... を選び、記録したマクロを選んで「編集」をクリックします。プログラムがいっぱい出てきましたか? それが記録したマクロです。 その中で、「2005.6.○○」と書かれている部分がシート名でしょうから、それを書き直してプログラムのウィンドウを閉じ、実行してみてください。 それでもエラーが出るようなら、もうちょっと状況を教えてもらわないと、うまい答えがないですね。ブックごと公開してくれれば良いかも。
補足
Range("A2:B2").Select Range("A2:B230").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Range("セル"), Unique:=False ActiveWindow.ScrollRow = 1 With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .ShrinkToFit = False .MergeCells = False End With Columns("B:D").Select Selection.Delete Shift:=xlToLeft Rows("1:250").Select Selection.Copy Range("A251").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveWindow.SmallScroll Down:=40 Application.CutCopyMode = False Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Selection.CurrentRegion.Select With Selection.Interior .ColorIndex = 36 .Pattern = xlSolid End With ActiveWindow.SmallScroll Down:=-10 Range("A251").Select ActiveWindow.SmallScroll Down:=-150 Rows("1:250").Select Selection.Delete Shift:=xlUp Range("A200").Select End Sub こんなプログラムです。セルという名前がフィルタオプション検索条件です。手順を記録したものですが、私は各コードが読めないので分かりません。 これを各シート毎に抽出し、抽出項目セル範囲に色付けし、後の統合は手動でしています。いい方法はありますかね。