Q7. 다른 워크시트에 셀 값을 복사하는 방법? ①

8704 단어 VBAExcelExcelVBA
이번에는 다른 워크 시트에 정보를 복사하는 기술을 생각해 봅시다.

아래와 같이 각 개인의 시트가 작성되어 국어, 수학, 영어 점수가 기재되어 있습니다.
이것을 하나의 시트에 집약해 나가는 매크로입니다.







최종적으로 집약시키는 시트는 이쪽입니다.



■ 포인트



이번 작성의 포인트는, 다른 시트의 정보를 어떻게 참조할까가 됩니다.
예를 들어 Range("C3").value라는 설명은 활성 워크시트에 대한 정보를 가져옵니다.

Worksheets("다나카").Range("C3").value 하면, 타나카 시트에 있는 C3 셀의 값을,
얻을 수 있습니다.
워크시트는 이대로 직접 이름을 지정할 수 있으며,
Worksheets(1) 같은 인덱스 번호로 지정할 수도 있습니다.
인덱스는 왼쪽에서 1부터 순서대로 할당됩니다.

다나카 시트는 왼쪽에서 세 번째로 있으므로,
Worksheets(3).Range("C3").value 라고 기술해도 같은 것이 됩니다.

다만, 인덱스 번호로 지정하는 경우는, 시트의 순서가 바뀌면
번호도 바뀌므로, 그 점은 주의를.

■답변


Sub Q7_Answer()
    Worksheets("全体").Range("B3").Value = Worksheets("田中").Range("B3").Value
    Worksheets("全体").Range("B4").Value = Worksheets("高橋").Range("B3").Value
    Worksheets("全体").Range("B5").Value = Worksheets("山田").Range("B3").Value
    Worksheets("全体").Range("C3").Value = Worksheets("田中").Range("C3").Value
    Worksheets("全体").Range("C4").Value = Worksheets("高橋").Range("C3").Value
    Worksheets("全体").Range("C5").Value = Worksheets("山田").Range("C3").Value
    Worksheets("全体").Range("D3").Value = Worksheets("田中").Range("D3").Value
    Worksheets("全体").Range("D4").Value = Worksheets("高橋").Range("D3").Value
    Worksheets("全体").Range("D5").Value = Worksheets("山田").Range("D3").Value
    Worksheets("全体").Range("E3").Value = Worksheets("田中").Range("E3").Value
    Worksheets("全体").Range("E4").Value = Worksheets("高橋").Range("E3").Value
    Worksheets("全体").Range("E5").Value = Worksheets("山田").Range("E3").Value
End Sub

■해설



해설도 빌어 먹도 없습니다. 단, 단순히 복사한 것만의 매크로입니다.

물론 이것은 좋은 예가 아닙니다.
다만, 이것으로도 이번 목적은 달성되고 있는 것입니다.

그래서 다음에 생각해야 할 것은 확장 성입니다.
마찬가지로 100인분의 데이터가 있을 때 효율의 차이가 여실히 나타납니다.
다만, 이렇게 적은 데이터의 경우는, 행수로서는 거기까지 변하지 않네요.

루프 처리를 도입함으로써, 보다 효율적으로 기술할 수 있게 됩니다.
효율적으로 기술할 수 있으면, 3명이라면, 100명이라면 행수는 거기까지 변하지 않습니다.

다음 번에 그들을 취급하겠습니다.

그러면 마지막 이번 결과를 올려 둡니다.

좋은 웹페이지 즐겨찾기