国立健康・栄養研究所が2011年版『身体活動のメッツ表』を改訂しました.下記リンクはPDFファイルですが,そのままでは使いにくいためEXCELでテキスト情報を抽出しました.2012年7月3日,国立健康・栄養研究所に抽出したテキストファイルを公開して良いか問い合わせました.
1. PDFファイルを開き,全てを選択してコピーします.
2. EXCELの新規ブックを作成し,テキストファイルウィザードを使用して貼り付けます.この際,テキストファイルウィザードの2番目のタブで区切り文字の全てのチェックを外して下さい.3番目のタブでは列のデータ形式を『文字列』に変更して下さい.
3. ‘Alt’ キーと ‘F11’ キーを押下して VBE を起動し,標準モジュールを挿入して下記コードを実行して下さい.
Option Explicit Sub METS() Dim mySht As Worksheet Dim myRng As Range Dim myAr As Variant Dim i As Long Dim j As Long Dim myReg As Object Dim myMatches As Object Dim myMatch As Object Const strReg As String = "^[0-9]{5}$" Dim CODE() As String Dim METS() As Single Dim MajorHeading() As String Dim SpecificActivities() As String Dim myArray() As Variant Set myReg = CreateObject("VBScript.RegExp") With myReg .Pattern = strReg .IgnoreCase = True .Global = True End With Set mySht = ActiveSheet Set myRng = mySht.UsedRange myAr = myRng j = 0 For i = LBound(myAr) To UBound(myAr) If myReg.Test(myAr(i, 1)) Then Set myMatches = myReg.Execute(myAr(i, 1)) ReDim Preserve CODE(j) ReDim Preserve METS(j) ReDim Preserve MajorHeading(j) ReDim Preserve SpecificActivities(j) CODE(j) = myAr(i, 1) METS(j) = myAr(i + 1, 1) MajorHeading(j) = myAr(i + 2, 1) SpecificActivities(j) = myAr(i + 3, 1) j = j + 1 End If Next i ReDim myArray(j, 3) For j = LBound(myArray) To UBound(myArray) - 1 myArray(j, 0) = CODE(j) myArray(j, 1) = METS(j) myArray(j, 2) = MajorHeading(j) myArray(j, 3) = SpecificActivities(j) Next j Set mySht = Worksheets.Add mySht.Range("A1").Value = "CODE" mySht.Range("B1").Value = "METS" mySht.Range("C1").Value = "MajorHeading" mySht.Range("D1").Value = "SpecificActivities" mySht.Range("A2:D827") = myArray End Sub