• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:枠線・・・・)

エクセルで複数のシートの特定のデータを抽出し、表の書式を変更する方法は?

このQ&Aのポイント
  • エクセルで複数のシートの特定のデータを抽出し、指定のシートにコピーする方法について教えてください。また、特定の条件に応じて表の書式を変更する方法も知りたいです。
  • エクセルのシート間でデータをコピーする方法と、表の書式を自動的に変更する方法について教えてください。
  • エクセルで特定のデータを他のシートにコピーし、表の書式を自動的に変更する方法を教えてください。マクロの知識が限られているので、簡単な方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.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

kennta111
質問者

お礼

回答 ありがとうございます

関連するQ&A