#66 H27年岩手県の重量単価初期値を設定

今回から、H27岩手県の製造業のマテリアルフロー分析に取り掛かります。

まずは、重量単価【初期値】を設定するところからスタートです。

結合小分類一覧表の作成

手始めに、H27年岩手県産業連関表の結合小分類一覧を作成します。
これは、H27年岩手県産業連関表の部門分類表を加工して作成します。

加工前の部門分類表は以下のようになっています。

表66−1 H27年岩手県産業連関表の部門分類表

赤枠で囲った空白行を削除し、詰めていって結合小分類の表を作成します。
VBAのコードは、以下のようになります。

Sub 結合小分類一覧作成()
    Dim ws As Worksheet
    Dim i As Long
    Dim toprow As Long
    Dim bottomrow As Long

    Set ws = Workbooks("H27岩手県産業連関表部門分類表.ods").Worksheets("27年部門表")
    '開始する行
    toprow = 9
    '終了する行
    bottomrow = 580

    For i = bottomrow To toprow Step -1
        If ws.Cells(i, 6) = "" Then
           'F列が空白なら行削除
            ws.Rows(i).Delete
        End If
    Next
End Sub
図66-1 赤枠で囲った空白行を削除し、詰めていくVBAコードの実行結果

H27年和歌山県の重量単価を採用する産業について

以下の表66-2にない産業の重量単価初期値は、H27年和歌山県の重量単価初期値をそのまま採用することにします。

表66-2 産業毎にワークシートを作成する産業一覧

新たに重量単価初期値を推計する産業について

ワークシートの作成

表66-2にある産業については、新たに重量単価初期値を推計する必要があるため、産業毎にワークシートを作成していきます。

目標物は以下のような条件を満たすものになります。

  • 表66-2の分類コードを1つずつ読み込んで、分類コード毎に新規ワークシートを作成する。

  • 新規ワークシート名は、部門コード(4桁)に変更する

以下が、目標物を作成するためのVBAのコードになります。

Sub 新たに初期値を推計する分類コード毎に新規ワークシート作成()
  ' 分類コードを読み込んで、分類コード1個毎に新規ワークシートを作成する
    Dim bunruiCode As String
    Dim bumonmei As String
    Dim wbOrg As Worksheet
    Dim wbDes AS Workbook
    Dim wSheet As Worksheet

    Set wbOrg = Workbooks("H27岩手県重量単価初期値一覧.ods").Worksheets("Sheet1")
    Set wbDes = Workbooks("H27岩手県重量単価初期値推計.ods")

    For i = 2 To 132
        If wbOrg.Cells(i, 3).Value = "" Then
            bunruiCode = wbOrg.Cells(i, 1).Value
            bumonmei = wbOrg.Cells(i, 2).Value
            ' 最後尾にシートを追加
            Set wSheet = wbDes.Worksheets.Add(before:=Worksheets(Worksheets.Count))
            ' シート名を変更
            wSheet.Name = bunruiCode
            ' 列名を入力
            wSheet.RANGE("A1").VALUE = "コード"
            wSheet.RANGE("B1").VALUE = "名称"
            wSheet.RANGE("C1").VALUE = "単位"
            wSheet.RANGE("D1").VALUE = "生産数量"
            wSheet.RANGE("E1").VALUE = "単価(円)"
            wSheet.RANGE("F1").VALUE = "生産額(百万円)"
            wSheet.RANGE("H1").Value = "分類コード"
            wSheet.Range("H2").NumberFormatLocal = "@"
            wSheet.RANGE("H2").Value = bunruiCode
            wSheet.RANGE("I1").Value = "部門名"
            wSheet.RANGE("I2").Value = bumonmei
            wSheet.RANGE("J1").Value = "重量単価[初期値]"
        Else
            Go to continue
        End If
    continue:
        Next
End Sub
図66-2 新たに重量単価初期値を推計する産業のワークシート作成結果

部門別品目別国内生産額表のデータを転記

次に、「部門別品目別国内生産額表」中の各細品目のデータ(コード、名称、単位、生産数量、単価(円)、生産額(百万円))を部門コードにしたがって、属するワークシートに転記していきます。

部門別品目別国内生産額表から新たに重量単価初期値を推計

転記が終わったら、「単位」が重量になっている産業については、以下のコードで重量単価初期値を自動計算します。

Sub H27年岩手県で新たに重量単価初期値推計()
    ' 重量単価【初期値】を自動計算する
    Dim totalWeight As Double
    Dim totalPrice As Double
    Dim pricePerTon As Double
    Dim wb As Workbook
    Dim ws As Worksheet

    Set wb = Workbooks("H27岩手県重量単価初期値推計.ods")

    For Each ws In wb.Worksheets
        ws.Activate
        pricePerTon = 0
        totalWeight = 0
        totalPrice = 0
        For i = 2 To 1000
            If ws.Cells(i, 3).Value = "千t" Then
                totalWeight = totalWeight + ws.Cells(i, 4).Value * 1000
                totalPrice = totalPrice + ws.Cells(i, 6).Value
            ElseIf ws.Cells(i, 3).Value = "t" Then
                totalWeight = totalWeight + ws.Cells(i, 4).Value
                totalPrice = totalPrice + ws.Cells(i, 6).Value
            ElseIf ws.Cells(i, 3).Value = "導体t" Then
                totalWeight = totalWeight + ws.Cells(i, 4).Value
                totalPrice = totalPrice + ws.Cells(i, 6).Value
            ElseIf ws.Cells(i, 3).Value = "kg" Then
                totalWeight = totalWeight + ws.Cells(i, 4).Value / 1000
                totalPrice = totalPrice + ws.Cells(i, 6).Value
            ElseIf ws.Cells(i, 3).Value = "g" Then
                totalWeight = totalWeight + ws.Cells(i, 4).Value / 1000000
                totalPrice = totalPrice + ws.Cells(i, 6).Value
            End If
        Next
        If totalWeight = 0 Then
                GoTo Continue
        End If
        pricePerTon = totalPrice * 1000000 / totalWeight
        ws.Cells(2, 10).Value = pricePerTon
    Continue:
        Next ws
End Sub
図66-3 国内生産額表で単位が重量表示の産業での推計結果の一例

表66-3で重量単価初期値にデータが記載されている産業が、上記のコードで算出できたものになります。

表66-3 部門別品目別国内生産額表より新たに重量単価初期値を推計した産業

単位変換表より重量単価初期値を推計

産業内生産品の生産単位に一つも[t], [g],[kg]が含まれておらず、生産単位が体積である場合、製品の比重を設定することで推計します。各部門とその製品の比重を、自身の修士論文から引用します。

表66-4 製品の単位変換表

分類コード:1129(部門名:その他の飲料、たばこ)

表66-4の「清涼飲料」の比重データを利用して、重量単価初期値を推計します。

Sub 単位換算での重量単価初期値推計()
    ' 単位換算での重量単価初期値の推計
    Dim totalWeight As Double
    Dim totalPrice As Double
    Dim pricePerTon As Double
    Dim wSheet As Worksheet

    Set wSheet = Workbooks("H27岩手県重量単価初期値推計.ods").Worksheets("1129")
    pricePerTon = 0
    totalWeight = 0
    totalPrice = 0
    For i = 2 To 1000
        If wSheet.Cells(i, 3).Value = "t" Then
            totalWeight = totalWeight + wSheet.Cells(i, 4).Value
            totalPrice = totalPrice + wSheet.Cells(i, 6).Value
        ElseIf wSheet.Cells(i, 3).Value = "kl" Then
            totalWeight = totalWeight + wSheet.Cells(i, 4).Value * 1.0
            totalPrice = totalPrice + wSheet.Cells(i, 6).Value
        End If
    Next
    pricePerTon = totalPrice * 1000000 / totalWeight
    wSheet.Cells(2, 10).Value = pricePerTon
End Sub

分類コード:2522(部門名:生コンクリート)

表66-4の「生コンクリート」の比重データを利用して、重量単価初期値を推計します。

物量表から新たに重量単価初期値を推計

表66−5中の産業は、「平成27年産業連関物量表(以下、「物量表」)」のデータから、重量単価初期値を新たに推計しました。

表66−5 物量表から新たに重量単価初期値を推計する産業一覧

後藤ら(2001)が調査し推計した値を採用

表66-6の産業は、以下の論文(以下、「後藤ら(2001)」と表記)で調査・推計された重量単価を用いることにします。

後藤尚弘, 内藤ゆかり, 胡洪営, 藤江幸一. 「地域ゼロエミッションを目指した愛知県物質フローの解析」. 環境科学会誌 14, no. 2 (2001年): 211–219. 

表66−6 後藤ら(2001)が推計した値を重量単価初期値とした産業

重量単価初期値を100,000[円/t]と仮定

分類コード:1631(部門名:古紙)

上記の産業は、適当な統計資料が得られなかったので、重量単価[初期値]を100,000[円/t]と仮定しました。

産業の算出がない場合

製品の産出がない産業の場合、重量単価[初期値]は設定しませんでした。

重量単価[初期値]の一覧

以上で、重量単価[初期値]の推計が完了しました。
一覧表(一部)は、以下のようになります。

図66-4 H27年岩手県の重量単価初期値一覧の一部

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です