レッスン(1)...'(1)ワークシートどうしのやりとり...
Transcript of レッスン(1)...'(1)ワークシートどうしのやりとり...
![Page 1: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/1.jpg)
'(1)ワークシートどうしのやりとり'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub example01()
'請求書番号 (請求書1のE2からデータ収集のA2へ)Worksheets("データ収集").Range("A2").Value = Worksheets("請求書1").Range("E2").Value
'発行日 (請求書1のE1からデータ収集のB2へ)Worksheets("データ収集").Range("B2").Value = Worksheets("請求書1").Range("E1").Value
'会社名 (請求書1のB4からデータ収集のC2へ)Worksheets("データ収集").Range("C2").Value = Worksheets("請求書1").Range("B4").Value
'担当者名 (請求書1のB5からデータ収集のD2へ)Worksheets("データ収集").Range("D2").Value = Worksheets("請求書1").Range("B5").Value
'請求金額 (請求書1のE31からデータ収集のE2へ)Worksheets("データ収集").Range("E2").Value = Worksheets("請求書1").Range("E31").Value
End Sub
??
??
??
??
??
演習課題 レッスン(1)
![Page 2: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/2.jpg)
'(1)ワークシートどうしのやりとり'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub example01()
'請求書番号 (請求書1のE2からデータ収集のA2へ)Worksheets("データ収集").Range("A2").Value = Worksheets("請求書1").Range("E2").Value
'発行日 (請求書1のE1からデータ収集のB2へ)Worksheets("データ収集").Range("B2").Value = Worksheets("請求書1").Range("E1").Value
'会社名 (請求書1のB4からデータ収集のC2へ)Worksheets("データ収集").Range("C2").Value = Worksheets("請求書1").Range("B4").Value
'担当者名 (請求書1のB5からデータ収集のD2へ)Worksheets("データ収集").Range("D2").Value = Worksheets("請求書1").Range("B5").Value
'請求金額 (請求書1のE31からデータ収集のE2へ)Worksheets("データ収集").Range("E2").Value = Worksheets("請求書1").Range("E31").Value
End Sub
解答
![Page 3: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/3.jpg)
'(2)最終行に転記する'「データ収集」へデータを転記する際、必ず最終行へ転記するようにしましょう。Sub example02()
'「データ収集」の最終行を変数に取得Dim MaxRow As Integer
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するWorksheets("データ収集").Range("A2").Value = Worksheets("請求書1").Range("E2").ValueWorksheets("データ収集").Range("B2").Value = Worksheets("請求書1").Range("E1").ValueWorksheets("データ収集").Range("C2").Value = Worksheets("請求書1").Range("B4").ValueWorksheets("データ収集").Range("D2").Value = Worksheets("請求書1").Range("B5").ValueWorksheets("データ収集").Range("E2").Value = Worksheets("請求書1").Range("E31").Value
End Sub
??
演習課題 レッスン(2)
修正
![Page 4: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/4.jpg)
'(2)最終行に転記する'「データ収集」へデータを転記する際、必ず最終行へ転記するようにしましょう。Sub example02()
'「データ収集」の最終行を変数に取得Dim MaxRow As IntegerMaxRow = Worksheets("データ収集").Cells(Rows.Count, 1).End(xlUp).Row + 1
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するWorksheets("データ収集").Range("A" & MaxRow).Value = Worksheets("請求書1").Range("E2").ValueWorksheets("データ収集").Range("B" & MaxRow).Value = Worksheets("請求書1").Range("E1").ValueWorksheets("データ収集").Range("C" & MaxRow).Value = Worksheets("請求書1").Range("B4").ValueWorksheets("データ収集").Range("D" & MaxRow).Value = Worksheets("請求書1").Range("B5").ValueWorksheets("データ収集").Range("E" & MaxRow).Value = Worksheets("請求書1").Range("E31").Value
End Sub
解答
![Page 5: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/5.jpg)
'(3)データ収集結果を削除する'転記されたデータを削除するマクロを作っておきましょう。Sub clear03()
'最終行を変数に取得Dim MaxRow As IntegerMaxRow = Worksheets("データ収集").Cells(Rows.Count, 1).End(xlUp).Row + 1
'2行目から最終行までのデータを削除する
End Sub
??
演習課題 レッスン(3)
![Page 6: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/6.jpg)
'(3)データ収集結果を削除する'転記されたデータを削除するマクロを作っておきましょう。Sub clear03()
'最終行を変数に取得Dim MaxRow As IntegerMaxRow = Worksheets("データ収集").Cells(Rows.Count, 1).End(xlUp).Row + 1
'2行目から最終行までのデータを削除するWorksheets("データ収集").Range("2:" & MaxRow).Value = ""
End Sub
解答
![Page 7: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/7.jpg)
'(4)With構文を使って省略する'With構文を使って、ワークシート名を省略して入力しましょう。Sub example04()
'最終行を取得しておくDim MaxRow As IntegerMaxRow = Worksheets("データ収集").Cells(Rows.Count, 1).End(xlUp).Row + 1
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するWorksheets("データ収集").Range("A" & MaxRow).Value = Worksheets("請求書1").Range("E2").ValueWorksheets("データ収集").Range("B" & MaxRow).Value = Worksheets("請求書1").Range("E1").ValueWorksheets("データ収集").Range("C" & MaxRow).Value = Worksheets("請求書1").Range("B4").ValueWorksheets("データ収集").Range("D" & MaxRow).Value = Worksheets("請求書1").Range("B5").ValueWorksheets("データ収集").Range("E" & MaxRow).Value = Worksheets("請求書1").Range("E31").Value
End Sub
演習課題 レッスン(4)
修正
![Page 8: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/8.jpg)
'(4)With構文を使って省略する'With構文を使って、ワークシート名を省略して入力しましょう。Sub example04()
'最終行を取得しておくDim MaxRow As IntegerMaxRow = Worksheets("データ収集").Cells(Rows.Count, 1).End(xlUp).Row + 1
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するWith Worksheets("データ収集")
.Range("A" & MaxRow).Value = Worksheets("請求書1").Range("E2").Value
.Range("B" & MaxRow).Value = Worksheets("請求書1").Range("E1").Value
.Range("C" & MaxRow).Value = Worksheets("請求書1").Range("B4").Value
.Range("D" & MaxRow).Value = Worksheets("請求書1").Range("B5").Value
.Range("E" & MaxRow).Value = Worksheets("請求書1").Range("E31").ValueEnd With
End Sub
解答
![Page 9: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/9.jpg)
'(5)Worksheet変数を利用する'Worksheet変数を宣言して、ワークシートを格納して利用しましょう。Sub example05()
'Worksheet変数を宣言するDim wsTotal As WorksheetDim wsInv As Worksheet
'「データ収集」と「請求書1」を変数に格納する
'最終行を取得しておくDim MaxRow As IntegerMaxRow = Worksheets("データ収集").Cells(Rows.Count, 1).End(xlUp).Row + 1
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するWorksheets("データ収集").Range("A" & MaxRow).Value = Worksheets("請求書1").Range("E2").ValueWorksheets("データ収集").Range("B" & MaxRow).Value = Worksheets("請求書1").Range("E1").ValueWorksheets("データ収集").Range("C" & MaxRow).Value = Worksheets("請求書1").Range("B4").ValueWorksheets("データ収集").Range("D" & MaxRow).Value = Worksheets("請求書1").Range("B5").ValueWorksheets("データ収集").Range("E" & MaxRow).Value = Worksheets("請求書1").Range("E31").Value
End Sub
??
演習課題 レッスン(5)
修正
![Page 10: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/10.jpg)
'(5)Worksheet変数を利用する'Worksheet変数を宣言して、ワークシートを格納して利用しましょう。Sub example05()
'Worksheet変数を宣言するDim wsTotal As WorksheetDim wsInv As Worksheet
'「データ収集」と「請求書1」を変数に格納するSet wsTotal = Worksheets("データ収集")Set wsInv = Worksheets("請求書1")
'最終行を取得しておくDim MaxRow As IntegerMaxRow = Worksheets("データ収集").Cells(Rows.Count, 1).End(xlUp).Row + 1
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するwsTotal.Range("A" & MaxRow).Value = wsInv.Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = wsInv.Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = wsInv.Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = wsInv.Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = wsInv.Range("E31").Value
End Sub
解答
![Page 11: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/11.jpg)
'(6)3つのシートを順番に転記 (ループなし)'請求書1、請求書2、請求書3の順にデータを転記しましょう。Sub example06()
'変数にワークシートを格納するDim wsTotal As WorksheetDim wsInv As WorksheetSet wsTotal = Worksheets("データ収集")Set wsInv = Worksheets("請求書1")
'最終行を取得しておくDim MaxRow As IntegerMaxRow = Worksheets("データ収集").Cells(Rows.Count, 1).End(xlUp).Row + 1
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するwsTotal.Range("A" & MaxRow).Value = wsInv.Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = wsInv.Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = wsInv.Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = wsInv.Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = wsInv.Range("E31").Value
'次の処理のため、最終行を+1しておくMaxRow = MaxRow + 1??
演習課題 レッスン(6)
'(次のページへ)
![Page 12: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/12.jpg)
'---請求書2の処理----------------------------------
'請求書2を変数に代入Set wsInv = Worksheets("請求書2")
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するwsTotal.Range("A" & MaxRow).Value = wsInv.Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = wsInv.Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = wsInv.Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = wsInv.Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = wsInv.Range("E31").Value
'次の処理のため、最終行を+1しておくMaxRow = MaxRow + 1
??
??
演習課題 つづき
'(次のページへ)
![Page 13: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/13.jpg)
'---請求書3の処理----------------------------------
'請求書3を変数に代入Set wsInv = Worksheets("請求書3")
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するwsTotal.Range("A" & MaxRow).Value = wsInv.Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = wsInv.Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = wsInv.Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = wsInv.Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = wsInv.Range("E31").Value
End Sub
??
演習課題 つづき
![Page 14: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/14.jpg)
'(6)3つのシートを順番に転記 (ループなし)'請求書1、請求書2、請求書3の順にデータを転記しましょう。Sub example06()
'変数にワークシートを格納するDim wsTotal As WorksheetDim wsInv As WorksheetSet wsTotal = Worksheets("データ収集")Set wsInv = Worksheets("請求書1")
'最終行を取得しておくDim MaxRow As IntegerMaxRow = Worksheets("データ収集").Cells(Rows.Count, 1).End(xlUp).Row + 1
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するwsTotal.Range("A" & MaxRow).Value = wsInv.Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = wsInv.Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = wsInv.Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = wsInv.Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = wsInv.Range("E31").Value
'次の処理のため、最終行を+1しておくMaxRow = MaxRow + 1
解答
'(次のページへ)
![Page 15: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/15.jpg)
'---請求書2の処理----------------------------------
'請求書2を変数に代入Set wsInv = Worksheets("請求書2")
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するwsTotal.Range("A" & MaxRow).Value = wsInv.Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = wsInv.Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = wsInv.Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = wsInv.Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = wsInv.Range("E31").Value
'次の処理のため、最終行を+1しておくMaxRow = MaxRow + 1
つづき解答
'(次のページへ)
![Page 16: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/16.jpg)
'---請求書3の処理----------------------------------
'請求書3を変数に代入Set wsInv = Worksheets("請求書3")
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するwsTotal.Range("A" & MaxRow).Value = wsInv.Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = wsInv.Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = wsInv.Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = wsInv.Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = wsInv.Range("E31").Value
End Sub
つづき解答
![Page 17: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/17.jpg)
'(7)3つのシートを順番に転記(ループあり)'Forループを利用し、請求書1~3の順にデータを転記しましょう。Sub example07()
'ループ変数iを宣言Dim i As Integer
'Forループ(iが1~3まで繰り返す)For i = 1 To 3
'請求書iを変数に格納するSet wsInv = Worksheets("請求書" & i)
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するwsTotal.Range("A" & MaxRow).Value = wsInv.Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = wsInv.Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = wsInv.Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = wsInv.Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = wsInv.Range("E31").Value
'次のループのため、最終行を+1しておくMaxRow = MaxRow + 1
Next iEnd Sub
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
??
??
??
??
演習課題 レッスン(7)
![Page 18: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/18.jpg)
'(7)3つのシートを順番に転記(ループあり)'Forループを利用し、請求書1~3の順にデータを転記しましょう。Sub example07()
'ループ変数iを宣言Dim i As Integer
'Forループ(iが1~3まで繰り返す)For i = 1 To 3
'請求書iを変数に格納するSet wsInv = Worksheets("請求書" & i)
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するwsTotal.Range("A" & MaxRow).Value = wsInv.Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = wsInv.Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = wsInv.Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = wsInv.Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = wsInv.Range("E31").Value
'次のループのため、最終行を+1しておくMaxRow = MaxRow + 1
Next i
End Sub
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
解答
![Page 19: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/19.jpg)
'(8)For Eachを使い、全シートを扱う'For Eachループを使い、全シートのシート名を順番に出力してみましょう。Sub example08()
'ワークシート変数を宣言Dim wsInv As Worksheet
'すべてのワークシートから1つずつ取り出し、wsInvに格納
'ワークシート名をMsgBoxで出力するMsgBox wsInv.Name
End Sub
??
??
演習課題 レッスン(8)
![Page 20: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/20.jpg)
'(8)For Eachを使い、全シートを扱う'For Eachループを使い、全シートのシート名を順番に出力してみましょう。Sub example08()
'ワークシート変数を宣言Dim wsInv As Worksheet
'すべてのワークシートから1つずつ取り出し、wsInvに格納For Each wsInv In Worksheets
'ワークシート名をMsgBoxで出力するMsgBox wsInv.Name
Next wsInv
End Sub
解答
![Page 21: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/21.jpg)
'(9)For Eachを使い、全シートを順番に転記する'For Eachループを使い、全シートから順番にデータを転記しましょう。Sub example09()
'すべてのワークシートから1つずつ取り出し、wsInvに格納
'もしワークシート名が「データ収集」と一致しなければ
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するwsTotal.Range("A" & MaxRow).Value = wsInv.Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = wsInv.Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = wsInv.Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = wsInv.Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = wsInv.Range("E31").Value
'次のループのため、最終行を+1しておくMaxRow = MaxRow + 1
End Sub
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
??
??
??
??
演習課題 レッスン(9)
![Page 22: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/22.jpg)
'(9)For Eachを使い、全シートを順番に転記する'For Eachループを使い、全シートから順番にデータを転記しましょう。Sub example09()
'すべてのワークシートから1つずつ取り出し、wsInvに格納For Each wsInv In Worksheets
'もしワークシート名が「データ収集」と一致しなければIf wsInv.Name <> wsTotal.Name Then
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記するwsTotal.Range("A" & MaxRow).Value = wsInv.Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = wsInv.Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = wsInv.Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = wsInv.Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = wsInv.Range("E31").Value
'次のループのため、最終行を+1しておくMaxRow = MaxRow + 1
End IfNext wsInv
End Sub
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
解答
![Page 23: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/23.jpg)
'(10)Workbooks.Openでファイルを開く'特定のパスにあるExcelブックを開きましょう。Sub example10()
'特定のパスにあるExcelブックを開くWorkbooks.Open (" ")
End Sub
??
演習課題 レッスン(10)
解答
※特定のパスを自分で調べて入力してください。
![Page 24: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/24.jpg)
'(11)ダイアログで選んだブックを開く(単一)'ダイアログ画面で選んだExcelブックを開きましょう。Sub example11()
'パスを格納する変数を宣言Dim openPath As String
'ダイアログからブックを選び、そのパスを格納openPath =
'パスにあるブックを開くWorkbooks.Open (openPath)
End Sub
??
演習課題 レッスン(11)
![Page 25: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/25.jpg)
'(11)ダイアログで選んだブックを開く(単一)'ダイアログ画面で選んだExcelブックを開きましょう。Sub example11()
'パスを格納する変数を宣言Dim openPath As String
'ダイアログからブックを選び、そのパスを格納openPath = Application.GetOpenFilename("Microsoft Excelブック,*.xls?")
'パスにあるブックを開くWorkbooks.Open (openPath)
End Sub
解答
![Page 26: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/26.jpg)
'(12)ダイアログからブックを開き、操作する(単一)'開いたブックのプロパティやメソッドを利用してみましょう。Sub example12()
'ダイアログからブックを選び、パスを格納するDim openPath As StringopenPath = Application.GetOpenFilename("Microsoft Excelブック,*.xls?")
'Workbook型の変数を宣言Dim openBook As Workbook'ファイルを開き、変数に格納するSet openBook = Workbooks.Open(openPath)
'ブックの名前をMsgboxで出力(.Nameプロパティ)MsgBox openBook.Name
'ブックのパスをMsgBoxで出力(.Pathプロパティ)MsgBox openBook.Path
'ブックを閉じる(.Closeメソッド)openBook.Close
End Sub
??
??
??
??
??
演習課題 レッスン(12)
![Page 27: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/27.jpg)
'(12)ダイアログからブックを開き、操作する(単一)'開いたブックのプロパティやメソッドを利用してみましょう。Sub example12()
'ダイアログからブックを選び、パスを格納するDim openPath As StringopenPath = Application.GetOpenFilename("Microsoft Excelブック,*.xls?")
'Workbook型の変数を宣言Dim openBook As Workbook'ファイルを開き、変数に格納するSet openBook = Workbooks.Open(openPath)
'ブックの名前をMsgboxで出力(.Nameプロパティ)MsgBox openBook.Name
'ブックのパスをMsgBoxで出力(.Pathプロパティ)MsgBox openBook.Path
'ブックを閉じる(.Closeメソッド)openBook.Close
End Sub
解答
![Page 28: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/28.jpg)
'(13)ダイアログのキャンセルに対するエラー処理'ダイアログで「キャンセル」を押した場合のエラー対策をしましょう。Sub example13()
'ダイアログからブックを選び、パスを格納するDim openPath As StringopenPath = Application.GetOpenFilename("Microsoft Excelブック,*.xls?")
'もしパスが「False」でなければ処理を行う(Falseなら何もしない)If openPath <> "False" Then
'変数を用意し、ブックを開いて格納Dim openBook As WorkbookSet openBook = Workbooks.Open(openPath)
'ブックのプロパティやメソッドを利用MsgBox openBook.NameMsgBox openBook.PathopenBook.Close
End If
End Sub
演習課題 レッスン(13)
??
??
![Page 29: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/29.jpg)
'(13)ダイアログのキャンセルに対するエラー処理'ダイアログで「キャンセル」を押した場合のエラー対策をしましょう。Sub example13()
'ダイアログからブックを選び、パスを格納するDim openPath As StringopenPath = Application.GetOpenFilename("Microsoft Excelブック,*.xls?")
'もしパスが「False」でなければ処理を行う(Falseなら何もしない)If openPath <> "False" Then
'変数を用意し、ブックを開いて格納Dim openBook As WorkbookSet openBook = Workbooks.Open(openPath)
'ブックのプロパティやメソッドを利用MsgBox openBook.NameMsgBox openBook.PathopenBook.Close
End If
End Sub
解答
![Page 30: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/30.jpg)
'(14)開いたブックからデータを転記(単一)'開いたブックから請求データを転記しましょう。Sub example14()
'パスが「False」でなければ処理を行うIf openPath <> "False" Then
'変数を用意し、ブックを開いて格納Dim openBook As WorkbookSet openBook = Workbooks.Open(openPath)
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記する'※openBookの最初のワークシート(1)からwsTotal.Range("A" & MaxRow).Value = openBook.Worksheets(1).Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = openBook.Worksheets(1).Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = openBook.Worksheets(1).Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = openBook.Worksheets(1).Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = openBook.Worksheets(1).Range("E31").Value
'openBookを閉じるopenBook.Close
End IfEnd Sub
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
??
演習課題 レッスン(14)
![Page 31: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/31.jpg)
'(14)開いたブックからデータを転記(単一)'開いたブックから請求データを転記しましょう。Sub example14()
'パスが「False」でなければ処理を行うIf openPath <> "False" Then
'変数を用意し、ブックを開いて格納Dim openBook As WorkbookSet openBook = Workbooks.Open(openPath)
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記する'※openBookの最初のワークシート(1)からwsTotal.Range("A" & MaxRow).Value = openBook.Worksheets(1).Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = openBook.Worksheets(1).Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = openBook.Worksheets(1).Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = openBook.Worksheets(1).Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = openBook.Worksheets(1).Range("E31").Value
'openBookを閉じるopenBook.Close
End IfEnd Sub
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
解答
![Page 32: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/32.jpg)
'(15)複数のブックを次々に開く!'複数のブックのパスを配列に格納し、次々に開きましょう。Sub example15()
'配列のための変数を宣言 (Variant型)Dim arrayPath As Variant
'ダイアログから複数のブックを選び、配列にパスを格納するarrayPath = Application.GetOpenFilename("Microsoft Excelブック,*.xls?", MultiSelect:=True)
'配列の要素(1)(2)(3)に格納されたパスからブックを順に開くWorkbooks.Open (arrayPath(1))Workbooks.Open (arrayPath(2))Workbooks.Open (arrayPath(3))
End Sub
配列になって受け取る
(1) (2) (3) 最後…
Variant型変数
??
??
??
演習課題 レッスン(15)
![Page 33: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/33.jpg)
'(15)複数のブックを次々に開く!'複数のブックのパスを配列に格納し、次々に開きましょう。Sub example15()
'配列のための変数を宣言 (Variant型)Dim arrayPath As Variant
'ダイアログから複数のブックを選び、配列にパスを格納するarrayPath = Application.GetOpenFilename("Microsoft Excelブック,*.xls?", MultiSelect:=True)
'配列の要素(1)(2)(3)に格納されたパスからブックを順に開くWorkbooks.Open (arrayPath(1))Workbooks.Open (arrayPath(2))Workbooks.Open (arrayPath(3))
End Sub
配列になって受け取る
(1) (2) (3) 最後…
Variant型変数
解答
![Page 34: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/34.jpg)
'(16)複数のブックを最後まで全て順番に開く'配列の1番目から要素の最大数まで、順番に開きましょう。Sub example16()
'ダイアログから複数のブックを選び、配列にパスを格納するDim arrayPath As VariantarrayPath = Application.GetOpenFilename("Microsoft Excelブック,*.xls?", MultiSelect:=True)
'ループ変数iを宣言Dim i As Integer
'Forループ(iが1から配列の要素数まで)For i = 1 To UBound(arrayPath)
'配列の要素(i番目)のパスからブックを開くWorkbooks.Open (arrayPath(i))
Next i
End Sub
??
??
演習課題 レッスン(16)
??
![Page 35: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/35.jpg)
'(16)複数のブックを最後まで全て順番に開く'配列の1番目から要素の最大数まで、順番に開きましょう。Sub example16()
'ダイアログから複数のブックを選び、配列にパスを格納するDim arrayPath As VariantarrayPath = Application.GetOpenFilename("Microsoft Excelブック,*.xls?", MultiSelect:=True)
'ループ変数iを宣言Dim i As Integer
'Forループ(iが1から配列の要素数まで)For i = 1 To UBound(arrayPath)
'配列の要素(i番目)のパスからブックを開くWorkbooks.Open (arrayPath(i))
Next i
End Sub
解答
![Page 36: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/36.jpg)
'(17)複数のブックを開き、操作する'開いた複数ブックのプロパティやメソッドを利用してみましょう。Sub example17()
'ダイアログから複数のブックを選び、配列にパスを格納するDim arrayPath As VariantarrayPath = Application.GetOpenFilename("Microsoft Excelブック,*.xls?", MultiSelect:=True)
'Forループ(iが1から配列の要素数まで)Dim i As IntegerFor i = 1 To UBound(arrayPath)
'変数を用意し、ブックを開いて格納Dim openBook As WorkbookSet openBook = Workbooks.Open(arrayPath(i))
'ブックのプロパティやメソッドを利用MsgBox openBook.NameopenBook.Close
Next iEnd Sub
??
??
演習課題 レッスン(17)
![Page 37: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/37.jpg)
'(17)複数のブックを開き、操作する'開いた複数ブックのプロパティやメソッドを利用してみましょう。Sub example17()
'ダイアログから複数のブックを選び、配列にパスを格納するDim arrayPath As VariantarrayPath = Application.GetOpenFilename("Microsoft Excelブック,*.xls?", MultiSelect:=True)
'Forループ(iが1から配列の要素数まで)Dim i As IntegerFor i = 1 To UBound(arrayPath)
'変数を用意し、ブックを開いて格納Dim openBook As WorkbookSet openBook = Workbooks.Open(arrayPath(i))
'ブックのプロパティやメソッドを利用MsgBox openBook.NameopenBook.Close
Next i
End Sub
解答
![Page 38: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/38.jpg)
'(18)[複数ブック版]ダイアログのキャンセルに対するエラー処理'ダイアログで「キャンセル」を押した場合のエラー対策をしましょう。Sub example18()
'ダイアログから複数のブックを選び、配列にパスを格納するDim arrayPath As VariantarrayPath = Application.GetOpenFilename("Microsoft Excelブック,*.xls?", MultiSelect:=True)
'もしopenPathが配列ならば、処理をする(そうでなければ何もしない)If IsArray(arrayPath) Then
'Forループ(iが1から配列の要素数まで)Dim i As IntegerFor i = 1 To UBound(arrayPath)
Next i
End If
End Sub
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
??
演習課題 レッスン(18)
??
![Page 39: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/39.jpg)
'(18)[複数ブック版]ダイアログのキャンセルに対するエラー処理'ダイアログで「キャンセル」を押した場合のエラー対策をしましょう。Sub example18()
'ダイアログから複数のブックを選び、配列にパスを格納するDim arrayPath As VariantarrayPath = Application.GetOpenFilename("Microsoft Excelブック,*.xls?", MultiSelect:=True)
'もしopenPathが配列ならば、処理をする(そうでなければ何もしない)If IsArray(arrayPath) Then
'Forループ(iが1から配列の要素数まで)Dim i As IntegerFor i = 1 To UBound(arrayPath)
Next i
End If
End Sub
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
解答
![Page 40: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/40.jpg)
'(19)複数のブックを順番に開き、データ収集'次々に開いたブックから請求データを転記しましょう。Sub example19()
'Forループ(iが1から配列の要素数まで)Dim i As IntegerFor i = 1 To UBound(arrayPath)
'変数を用意し、ブックを開いて格納Dim openBook As WorkbookSet openBook = Workbooks.Open(arrayPath(i))
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記する'※openBookの最初のワークシート(1)からwsTotal.Range("A" & MaxRow).Value = openBook.Worksheets(1).Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = openBook.Worksheets(1).Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = openBook.Worksheets(1).Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = openBook.Worksheets(1).Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = openBook.Worksheets(1).Range("E31").Value
'openBookを閉じるopenBook.Close
'次のループのため、最終行を+1しておくMaxRow = MaxRow + 1
Next i
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
??
??
演習課題 レッスン(19)
![Page 41: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/41.jpg)
'(19)複数のブックを順番に開き、データ収集'次々に開いたブックから請求データを転記しましょう。Sub example19()
'Forループ(iが1から配列の要素数まで)Dim i As IntegerFor i = 1 To UBound(arrayPath)
'変数を用意し、ブックを開いて格納Dim openBook As WorkbookSet openBook = Workbooks.Open(arrayPath(i))
'[請求書番号,発行日,会社名,担当者名,請求金額]をそれぞれ転記する'※openBookの最初のワークシート(1)からwsTotal.Range("A" & MaxRow).Value = openBook.Worksheets(1).Range("E2").ValuewsTotal.Range("B" & MaxRow).Value = openBook.Worksheets(1).Range("E1").ValuewsTotal.Range("C" & MaxRow).Value = openBook.Worksheets(1).Range("B4").ValuewsTotal.Range("D" & MaxRow).Value = openBook.Worksheets(1).Range("B5").ValuewsTotal.Range("E" & MaxRow).Value = openBook.Worksheets(1).Range("E31").Value
'openBookを閉じるopenBook.Close
'次のループのため、最終行を+1しておくMaxRow = MaxRow + 1
Next i
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
解答
![Page 42: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/42.jpg)
'(20)画面のチラつきを防止する'ブックの開閉のたびに画面がチラつくことを防止しましょう。Sub example20()
'もしopenPathが配列ならばIf IsArray(arrayPath) Then
'画面の描画を停止するApplication.ScreenUpdating = False
'Forループ(iが1から配列の要素数まで)Dim i As IntegerFor i = 1 To UBound(openPath)
Next i
'画面の描画を再開するApplication.ScreenUpdating = True
'処理が終わったことをMsgBoxで出力MsgBox "全ブックからデータを抽出しました。"
End IfEnd Sub
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
??
??
演習課題 レッスン(20)
![Page 43: レッスン(1)...'(1)ワークシートどうしのやりとり 'ワークシート「請求書1」から、ワークシート「データ収集」にデータを転記しましょう。Sub](https://reader034.fdocument.pub/reader034/viewer/2022050205/5f588a761ee55a555345f606/html5/thumbnails/43.jpg)
'(20)画面のチラつきを防止する'ブックの開閉のたびに画面がチラつくことを防止しましょう。Sub example20()
'もしopenPathが配列ならばIf IsArray(arrayPath) Then
'画面の描画を停止するApplication.ScreenUpdating = False
'Forループ(iが1から配列の要素数まで)Dim i As IntegerFor i = 1 To UBound(openPath)
Next i
'画面の描画を再開するApplication.ScreenUpdating = True
'処理が終わったことをMsgBoxで出力MsgBox "全ブックからデータを抽出しました。"
End If
End Sub
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
~~~~~~~(途中省略)~~~~~~~~~~~~~~~~
解答