Excelマクロの練習⑪(シートの指定)

datacare1
今回も シートの指定を行う練習問題です。
今回は以下の条件で作成します。それぞれ以前に解説しています。
・シートを変数に格納
・Withステートメントを使用
練習用のファイルはこちらからダウンロードできます。
過去に使用した練習問題⑧を少し改造しています。
元データのある一覧と「売上額合計」を入力するシートが分かれています。


シート「機種一覧」にあるデータ「売上額合計」を取得します。
取得した売上額合計を シート「合計」のセルに入力します。
模範解答は以下のとおりです。
(ダウンロード用できるExcelブックにも模範解答はあります。)

このコードを実行すると以下のようになります。

コードの内容の詳細解説は、以前に投稿した「Excelマクロの練習⑧」と同じです。
機種の一覧のシート と 売上額を入力するシート が分かれています。
そのため、セルの操作の部分にシートの指定を行う必要があります。
さらに今回は、シートを変数に格納しています。
シート「機種一覧」用のシート用に wsKisyu をWorksheet型で宣言します。
Dim wsKisyu As Worksheet
次に wsKisyu に Worksheets("機種一覧") を格納します。
この時、シート(オブジェクト)の格納には Set が必要です。
Set wsKisyu = Worksheets("機種一覧")
これらを行う事で以下のようになります。
Worksheets("機種一覧").Cells(i, 3).Value → wsKisyu.Cells(i, 3).Value
シート「売上」も同じ要領です。Withステートメントを使用します。
With wsUriage
この設定があるため With wsUriage ~ End With の間ではwsUriageを省略できます。
wsUriage.Cells(j, 8).Value → .Cells(j, 8).Value
ちょっと長くなりましたが、今回の練習問題の注意する個所は以上です。
特定のシートを何か所も操作する場合は、Withステートメントを使って With wsUriage のようにすると、コードが簡略化できます。
ぜひ今回のテクニックをマスターしましょう。
今回の解説はここまです。
ABOUT ME