- ベストアンサー
エクセルで複数のシートの特定のデータを抽出し、表の書式を変更する方法は?
- エクセルで複数のシートの特定のデータを抽出し、指定のシートにコピーする方法について教えてください。また、特定の条件に応じて表の書式を変更する方法も知りたいです。
- エクセルのシート間でデータをコピーする方法と、表の書式を自動的に変更する方法について教えてください。
- エクセルで特定のデータを他のシートにコピーし、表の書式を自動的に変更する方法を教えてください。マクロの知識が限られているので、簡単な方法があれば教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
シート2のデータをシート1にコピーし、データにあわせた罫線を引きます。シート1に表を作りたいときに実行します。 >AとCだけをコピーしているのですが(もちろん例です) 下のマクロはA、C列のみのコピーです。実情に合うよう修正してください。参考に、コメントを入れておきました。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュールで 標準モジュールを挿入します。 そのコードウインドウに下記マクロをコピーして貼り付けます。 シートに戻り、ツール→マクロ→マクロで『LineDataCopy』を実行すれば、シート1に目的の表を作ります。 手でシート2のデータをシート1にコピーしたりしません。ご参考に。 ここから ↓ Sub LineDataCopy() Dim ws1 As Worksheet, ws2 As Worksheet 'ワークシート Set ws1 = Worksheets("Sheet1") 'シート1 Set ws2 = Worksheets("Sheet2") 'シート2 Application.ScreenUpdating = False ws1.Activate Range("A:B").Clear 'シート1のA、B列をクリア(値、罫線) Dim maxRow As Long '最大行 'シート2の最大行を求める ws2.Activate: maxRow = ws2.Range("A65536").End(xlUp).Row 'シート2のA列をシート1のA列にコピー ws2.Range("A1:A" & maxRow).Copy Destination:=ws1.Range("A1") 'シート2のC列をシート1のB列にコピー ws2.Range("C1:C" & maxRow).Copy Destination:=ws1.Range("B1") '罫線を引く範囲を選択 ws1.Activate: Range("A1:B" & maxRow).Select '細い罫線を引く LineSet xlEdgeLeft, xlContinuous, xlMedium, xlAutomatic LineSet xlEdgeTop, xlContinuous, xlMedium, xlAutomatic LineSet xlEdgeBottom, xlContinuous, xlMedium, xlAutomatic LineSet xlEdgeRight, xlContinuous, xlMedium, xlAutomatic '太い罫線を引く LineSet xlInsideVertical, xlContinuous, xlThin, xlAutomatic LineSet xlInsideHorizontal, xlContinuous, xlThin, xlAutomatic Range("A1").Select Application.ScreenUpdating = True End Sub '罫線を引く(Sub) Sub LineSet(Pot, Sty, Wei, Col) On Error Resume Next With Selection.Borders(Pot) .LineStyle = Sty .Weight = Wei .ColorIndex = Col End With End Sub
お礼
回答 ありがとうございます