食品成分表によるカロリー計算

出 所 文部科学省:『日本食品標準成分表2015年版(七訂)』
U R L http://www.mext.go.jp/a_menu/syokuhinseibun/1365295.htm
ファイル名 amcc日本食品標準成分表2015年版.1.0.1.xlsm
ハッシュ値(Algorithm:sha256) 492d61264f8910c12625fb7b4bdbec22954978ebef5a46b6d783fa343f43cd97




VBA Script

'利用上の注意事項はアセット・マネジメント・コンサルティング株式会社(http://am-consulting.co.jp)のWebサイト参照。
'シート名"本表"は文部科学省エクセルファイルのオリジナル
Sub カロリー等計算()
Dim foodQuantity(2190) As Double, foodName(2190) As String, foodID(2190) As Integer
Dim componentName(60) As String, componentValue(60) As Double, componentUnit(60) As String
Dim rrr As Integer, rrrr As Integer, ccc As Integer
Sheets(2).Select
Cells.Select
Selection.ClearContents
'成分名とその単位を習得
For ccc = 4 To 64
    componentName(ccc - 4) = Sheets(1).Cells(1, ccc)
    tmp = InStr(Sheets(1).Cells(2, ccc), "/")
    componentUnit(ccc - 4) = Left(Sheets(1).Cells(2, ccc), tmp - 1)
Next ccc
'成分毎の合計算出
rrrr = 2
For rrr = 3 To 2193
    foodQuantity(rrr - 3) = Sheets(1).Cells(rrr, 3)
    If foodQuantity(rrr - 3) <> 0 Then
        foodID(rrr - 3) = Sheets(1).Cells(rrr, 1)
        foodName(rrr - 3) = Sheets(1).Cells(rrr, 2)
        Sheets(2).Cells(rrrr, 5) = foodID(rrr - 3)
        Sheets(2).Cells(rrrr, 6) = foodName(rrr - 3)
        Sheets(2).Cells(rrrr, 7) = foodQuantity(rrr - 3)
        rrrr = rrrr + 1
        '冗長にすぎるためvbaでの行列計算関数(例:Rのapply)の有無を確認し、
        '関数があれば次バージョンで反映させる。
        For ccc = 4 To 64
            tmp = Sheets(1).Cells(rrr, ccc)
            If IsNumeric(tmp) = True Then
                componentValue(ccc - 4) = componentValue(ccc - 4) + foodQuantity(rrr - 3) * tmp / 100
            End If
        Next ccc
    End If
Next rrr
'結果出力
Sheets(2).Range("A1:C1").Select
Selection.Font.Bold = True
Sheets(2).Range("E1:G1").Select
Selection.Font.Bold = True
rrr = 2
Sheets(2).Cells(1, 1) = "成分"
Sheets(2).Cells(1, 2) = "数量"
Sheets(2).Cells(1, 3) = "単位"
Sheets(2).Cells(1, 5) = "索引番号"
Sheets(2).Cells(1, 6) = "食品名"
Sheets(2).Cells(1, 7) = "数量(g)"
For iii = 0 To 60
    If componentValue(iii) <> 0 Then
        Sheets(2).Cells(rrr, 1) = componentName(iii)
        Sheets(2).Cells(rrr, 2) = componentValue(iii)
        Sheets(2).Cells(rrr, 3) = componentUnit(iii)
        rrr = rrr + 1
    End If
Next iii
Sheets(2).Columns("A:G").Select
Selection.Columns.AutoFit
Sheets(2).Cells(1, 1).Select
End Sub
Sub 入力消去()
Sheets(1).Range("C3:C2193").Select
Selection.ClearContents
Sheets(1).Cells(3, 3).Select
End Sub



2016年03月29日分 シカゴIMM筋ポジション・ロング・ショート・ネットポジション数の時系列推移

2016年03月第4週 対外及び対内証券売買契約等の状況・株式投資ファンド持分・中長期債・合計のネット額時系列推移

2016年03月22日分 シカゴIMM筋ポジション・ロング・ショート・ネットポジション数の時系列推移

2016年03月第3週 対外及び対内証券売買契約等の状況・株式投資ファンド持分・中長期債・合計のネット額時系列推移

2016年03月15日分 シカゴIMM筋ポジション・ロング・ショート・ネットポジション数の時系列推移

2016年03月第2週 対外及び対内証券売買契約等の状況・株式投資ファンド持分・中長期債・合計のネット額時系列推移

2016年03月08日分 シカゴIMM筋ポジション・ロング・ショート・ネットポジション数の時系列推移