Word97/98でマクロを記録するには、
記録したマクロを実行するには、3つの方法がある。
実際のマクロは、応用ソフトにさせたい作業の進め方を事細かに書き記した手順書<(プログラム)のようなものである。マクロを書くには専用の「マクロ言語」を使う。MS-Office 95/97/98用のマクロ言語は、「VBA (Visual Basic for Apprication)」というプログラミング言語である。マクロ記録を利用すると、VBAで記述されたマクロが自動的に作成される仕組みになっている。 Lotus Super Office (1-2-3など) では、「Lotus Script」というマクロ言語で操作手順が記録されている。
この状態から棒グラフを円グラフによる各社シェアの表示に切り替えるまで、およびその逆に円グラフを棒グラフに変更する操作を別々にマクロとして記録することにする。
Sub 棒グラフ() ' ' 棒グラフ Macro ' マクロ記録日 : 1998/12/11 ユーザ名 : 北星 一太郎 ' ' Keyboard Shortcut: Ctrl+Shift+B ' ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.ChartArea.Select ActiveChart.ChartType = xlColumnClustered End Sub
マクロの定義には関数と手続きがある.関数は実行の結果として必ず1つの値を返さなくてはならないが、手続きにはそのような制約はない. 練習3の棒グラフのマクロは「Sub」で始まっており,関数ではなく,「手続き(procedure)」または「サブルーティン(subroutine)」と呼ばれる. 関数の定義は「Function」で始める. 白いテキストのExcel編第8章「ユーザ定義関数の作成」で学ぼう。ただし,ここに説明されている方法はExcel95までのものである.
白いテキストExcel編8章のユーザ定義関数「jikan」を作成する例題を取り上げる. Excel97における方法を説明する。(Excel98は未出荷である)
現在のBookファイルにおいて,マクロ記録を一度でも実行していれば既に「モジュール」フォルダの中に「Module1」などのシートが作られている.この場合の編集の仕方については練習3のvii節(マクロ記録を見る)で説明した. ここではマクロ記録を一度も実行していなくて,最初からマクロを自分で記述する場合について説明する.ただし,計算に必要なデータやグラフはSheet1, Sheet2などに作成済みであることが望ましい.
' 24時間を超える時間関数(単位は時間) Function jikan(kaishi, syuryo) jikan = Hour(syuryo - kaishi) + Minute(syuryo - kaishi)/60 End Function
練習5:オブジェクト ブラウザの利用