見出し画像

#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年岩手県の重量単価初期値一覧の一部


サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪