2013年3月16日土曜日

バランスWiiボードとPCで重心動揺計を作る 6


Excelでグラフにする 4

前回の続きです。


'グラフ作成
    Range("B4:C20").Select                                     'B4からC20の範囲を選択
    Charts.Add                                                 'グラフを挿入する
    ActiveChart.ChartType = xlXYScatterSmooth                   'グラフタイプは平滑線付き散布図・・・①
    ActiveChart.SetSourceData Source:=Sheets("作業用").Range("D2:E7000"), PlotBy:= _
        xlColumns                                                                     'データは作業用シートのD2からE7000
    ActiveChart.Location Where:=xlLocationAsObject, Name:="作業用"
    ActiveChart.SeriesCollection(1).Name = "重心軌跡"
     With ActiveSheet.ChartObjects("グラフ 1")                          '現在のシートの「グラフ1」は
        .Top = Range("G18").Top                                         '上端をG18セルに配置
        .Left = Range("G18").Left                                       '左端をG18セルに配置
                                             
    End With
-----------------------------
1段目の
Range("B4:C20").Select                                     'B4からC20の範囲を選択
はこの辺をグラフにするよ、ということ。

は平滑線なので各点を直線で結びたいときは「xlXYScatterSmooth」を「xlXYScatterLines」に変更します。
-----------------------------
    ActiveChart.Axes(xlValue).Select                            'アクティブグラフを選択
    With ActiveChart.Axes(xlValue)                              'グラフX軸について
        .MinimumScale = -20                                     '最少値を-20Cm・・・②
        .MaximumScale = 20                                      '最大値を20Cm・・・②
        .MinorUnitIsAuto = True                                 '最少目盛は自動
        .MajorUnit = 5                                          '最大目盛を5Cm
        .Crosses = xlAutomatic                                  '交点は自動
        .ReversePlotOrder = False
        .ScaleType = xlLinear
        .DisplayUnit = xlNone
    End With
    
    With ActiveChart.Axes(xlCategory)                           'グラフY軸について
        .MinimumScale = -20                                     '最少値を-20Cm・・・③
        .MaximumScale = 20                                      '最大値を20Cm・・・③
        .MinorUnitIsAuto = True                                 '最少目盛は自動
        .MajorUnit = 5                                          '最大目盛を5Cm
    End With
---------------------------------
はX軸の最小大値設定で、あまり動揺のない人が対象なら、20cmから減らします。
逆に動作時の動揺を図るためならもっと大きくすることもできます。もちろんWiiボードのサイズ以下ですよ。
はY軸で同様です。

---------------------------------
    '矩形グラフ
    ActiveChart.SeriesCollection.NewSeries.MarkerStyle = xlMarkerStyleNone     'アクティブグラフに新規グラフを追加
    ActiveChart.SeriesCollection(2).XValues = "='作業用'!$K$12:$K16"            'X値は作業用シートK12からK16
    ActiveChart.SeriesCollection(2).Values = "='作業用'!$L$12:$L$16"            'Y値は作業用シートL12からL16
    ActiveChart.SeriesCollection(2).Points(2).Select                           '新規グラフを選択
    ActiveChart.SeriesCollection(2).ChartType = xlXYScatterLinesNoMarkers      '折れ線グラフでマーカーなし
    ActiveChart.SeriesCollection(2).Name = "矩形"                              '系列名を「矩形」
   ---------------------------------
矩形グラフの様式です。
線の色の変更の仕方をどうすればいいかわかりません。
誰か教えてください。
--------------------------------- 
    '中心点ドット
    ActiveChart.SeriesCollection.NewSeries.MarkerStyle = xlMarkerStyleDot     'アクティブグラフに新規グラフを追加
    ActiveChart.SeriesCollection(3).XValues = "='作業用'!$H$12"                'X値は作業用シートH12
    ActiveChart.SeriesCollection(3).Values = "='作業用'!$I$12"                 'Y値は作業用シートI12
    ActiveChart.SeriesCollection(3).Name = "中心点"                           '系列名を「中心点」
    
    With Range("G13:O30")
        ActiveSheet.ChartObjects("グラフ 1").Width = .Width
        ActiveSheet.ChartObjects("グラフ 1").Height = .Height
    End With
    
--------------------------
中心点のグラフ表示です。
同じくマーカーの色の変え方もわかりません。
--------------------------  
    ActiveChart.HasTitle = True                                 'アクティブグラフのタイトル
    ActiveChart.ChartTitle.Text = "重心動揺計測 単位(cm)"    '「重心動揺計測 単位(cm)」を入力
    ActiveChart.ChartTitle.Font.Size = 16                       'フォントを16ポイント
------------------------
グラフのタイトルです。
" "の間の字を変更できます。
------------------------  
    'プレビューボタンを作る
    ActiveSheet.Buttons.Add(536.25, 6, 42.75, 14.25).Select
    Selection.OnAction = "プレビュー"
    ActiveSheet.Shapes("Button 1").Select
    Selection.Characters.Text = "プレビュー"
    With Selection.Characters(Start:=1, Length:=5).Font
        .Name = "MS Pゴシック"
        .FontStyle = "標準"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone

    End With
    Selection.ShapeRange.ScaleWidth 1.86, msoFalse, msoScaleFromTopLeft
------------------------------
プレビューボタンを貼り付けました。
印刷では非表示になります。
------------------------------
      
    'シート名変更
        Worksheets("作業用").Name = "重心動揺" & Format(Time, "hhnn")
    
        MsgBox "処理が完了しました。", vbOKOnly, "完了"
        Worksheets(1).Select
End Sub

-----------------------------
一旦「作業用」というシートを作りましたが、次に同じ「作業用」という名前のシートが作れないのと、数件あるとどれが誰だかわからなくなるので、時間をつけました。
時間は処理した時間○時○分です。
処理が終わるとメッセージが出ます。
-----------------------------

Sub プレビュー()
    ActiveSheet.PageSetup.RightFooter = "Powerd by KITA Ver1.00"
    Range("G1:O36").PrintPreview                                'G1からO40セルの範囲をプレビュー表示

End Sub
-----------------------------
プレビューボタンを押したときに実行するマクロです。
Excelってページが縦に進んでいくので、7000ケタもあると範囲を出すのがとんでもなく大変なので。
-----------------------------

と、これでコードの解説は終わりました。
うーん、ずいぶん長い時間(3ヶ月)かかって(とりあえず)できた、と達成感。

最後に
評価ツールはツールであって、そこから得られたデータを分析して、治療に結び付けてナンボだと思います。データを取ることが目標にならないようにしてくださいね。

私はPT歴20年超ですが、臨床実習指導もしたことないし、そもそもなりたくてなった職業ではないので仕事に対する温度は低いです。(仕事はまじめにやってますよ!)
でも、このマクロがPTだけでなく他の方のお役に立てば、私の役目は果たしたかなと思います。

それでは、これで「バランスWiiボードとPCで重心動揺計を作る」シリーズは終了します。

0 件のコメント:

コメントを投稿