home rightArrow

面倒な作業はパソコンにまかせる
「マクロ機能を使い操作を自動化する」
 

  1. Word97/98でマクロ記録を使う

練習1:ヘッダーとフッターのマクロ記録

 それでは実際に、Word97/98で実習課題を提出するときの「レポート様式」に指定されている、ヘッダーとフッターを作成する一定の手順を、「マクロ記録」機能を利用して記録し、マクロとして登録してみよう。

 Word97/98でマクロを記録するには、

  1. 新規文書を開く。文書名を「マクロ記録」とでもしておこう。3.5インチFDに保存する。
  2. 〔ツール(T)〕→ 〔マクロ(M)〕→ 〔新しいマクロの記録〕 の順に選択し、「マクロの記録」ダイアログで「マクロ名(M):」の窓に、マクロ名を入力する。
    マクロ名には日本語も使えるが、今回は「ReportForm1」としておこう。名前にはマクロの記録内容を簡潔に表すものを付ける。
  3. 後でマクロを実行する為のボタンを用意したいときは、ここで「マクロを割り当てる対象」グループボックスから〔ツールバー(T):〕を選択する。〔OK〕を押す。
    「マクロの保存先(S)」を標準の〔すべての文書(Normal.dot)〕にしておくと、すべてのWord文書で使えるスタイルとして登録される。 今回は練習なので編集中の文書に保存するために、〔Normal.dot ▼〕の▼ボタンを押してマクロの保存先を「マクロ記録.doc」に変更しておく。

  4. 図1の「ユーザー設定」ダイアログが開く。 「ツールバー」タグを押して「ツールバー」のページを開き、この中の〔新規作成(N)〕ボタンを押す。新しいツールバーの名前を入力する「ツールバー名(N)」の欄に「ユーザー設定1」をそのまま指定する。 すると、「ユーザー設定1」の四角い小さなツールバーが現れるので、これを「ユーザー設定」ダイアログボックスの外へ移動しておく。
  5. 図1の「コマンド」タグを押す。そのページの「コマンド」ボックスに、記録するマクロ名「Normal:NewMacros.ReportForm1」がある。それをマウスでドラッグし、「ユーザー設定1」のツールバーまで持っていき、適当な位置にドロップすれば、そのマクロボタンが作成できる。 図2は「ユーザー設定1」ツールバーの例である。
      マクロボタンをツールバーに置いた時に、図1の〔説明(P)〕の隣に〔選択したボタンの編集(M)▼〕が現れる。ここからボタンの名前「Normal:NewMacros.ReportForm1」やデザインを変えることもできる。 後から変更するには、ボタンを右クリックして開いたメニューから「ユーザ設定」を選ぶと「ユーザ設定」ダイアログが開く。コマンドページの〔分類(G)〕で”マクロ”を選ぶと〔コマンド(D)〕の窓に”ReportForm1”が見つかる。
  6. 上のダイアログを〔閉じる〕を選んだら、記録を終了・中断するための小さなツールバー「記録終了」がWordの編集画面に表示される。ここからマクロの記録が始まる。
  7. ここでは記録したい操作を、間違いなく正確に、実際に手順通りに一度だけ行なう。 
    (Word97/98の場合、マウスによる操作が記録できないようになっているため、メニューやボタンの選択以外は、すべてキーボードを使って操作を行なう必要がある。)
  8. 小さな「記録終了」ツールバーの四角い〔記録終了〕ボタンを押せば、記録は終了する。

 記録したマクロを実行するには、3つの方法がある。

  1. 〔ツール(T)〕→ 〔マクロ(M)〕→ 〔マクロ(M)...〕 の順に選択し、開いた「マクロ」ダイアログの「マクロ名(M):」ボックスから実行したいマクロ名を選択して、〔実行(R)〕ボタンを押す。
  2. ツールバーに置いたマクロのボタンを押す。目的のツールバーを開くには、メニューから〔表示(V)〕→ 〔ツールバー(T)〕→ 〔ユーザー設定1〕の順に選ぶ。
  3. キーボードに割り当てたキーの組合わせ(ショートカットキー)を押す。
 それでは実際にいま登録したマクロを実行してみよう。
  1. Word97で新規文書の作成を行なう。例えば、文書2の(空白の)画面を開く。
  2. ツールバーに置いた〔ReportForm1〕マクロのボタンを押す。
  3. これで、文書2にReportForm1〕マクロの実行によるヘッダーとフッターが挿入されているであろう。

練習2:マクロの実体を少しだけ知る


  1. Excel97でマクロを使う

練習3:

 例として、「パソコン周辺機器の売上高の集計表」について、グラフ表示のスタイルの変更手順を記録し、ボタンを1回押すだけで、棒グラフ表示と円グラフ表示を相互に切り替えられるようにしてみよう。
  1. パソコン周辺機器の売上高の集計表を作り、まず、これを棒グラフで表示するところまでは、通常の操作で一度だけ行なう。

    周辺機器市場の売上金額と
    市場シェア

    図3 棒グラフ (s=484x375) (拡大表示)
    売上高市場シェア
    A社125,869,25018.4%
    B社86,935,66012.7%
    C社45,686,9806.7%
    D社280,123,54041.0%
    E社98,054,60014.4%
    F社45,870,6506.7%
    合計682,540,680100.0%

     この状態から棒グラフを円グラフによる各社シェアの表示に切り替えるまで、およびその逆に円グラフを棒グラフに変更する操作を別々にマクロとして記録することにする。

  2. マクロの記録は次の手順で行なう。
    Excelなら、「ツール(T)」→ 「マクロ(M)」→ 「新しいマクロの記録(R)...」の順にメニューを選ぶ。
    すると、図4のような「マクロの記録」ダイアログが現れるので、〔マクロ名(M):〕に名前を付けてマクロ名の登録をする。 マクロ名を「円グラフ」としておこう 〔マクロの保存先(I):〕には、”作業中のブック”を選ぶ。これで現在のExcelファイルにマクロを登録できる。ただし、これを選ぶと目的のマクロを登録したExcelファイルを開かないと、マクロを実行できない。 (記録したマクロをいつでも利用したいなら、Excel起動時に自動的に読み込まれる”個人用マクロブック”に登録する。パソコンを個人で使っている場合はこちらの方が便利であろう。)

     図4 マクロ記録 ダイアログ
    (s=540x209)

    • 「マクロの記録」ダイアログで〔OK〕ボタンを押せばマクロ記録が始まる。小さな「記録終了」のツールバーが現れる。ここから後のマウス操作やキー操作はマクロとして記録される。
    • グラフの種類を棒グラフから円グラフに変更する操作を間違えずに行なう。表示が円グラフに変われば操作はひとまず終了である。
    • 小さな「記録終了」ツールバーで〔記録終了〕ボタンを押せばマクロ記録を終了する。

  3. 同様に、今度は円グラフから棒グラフに変更する操作手順をマクロに記録する。
    マクロ名は「棒グラフ」としておこう。

  4. 次に、記録したマクロの実行方法を選ぶ。
     Excelなら、「ツール(T)」→ 「マクロ(M)」→ 「マクロ(M)...」の順にメニューを選ぶ。 「マクロ」ダイアログが開き、〔マクロ名(M)〕のリストから実行したいマクロ名を選び、〔実行〕ボタンを押す。 これで記録した通りの操作を何度でも自動的に実行できる。

  5. 作成したマクロをボタンに登録して使うこともできる。
    • それには、Excel97なら、「表示(V)」→ 「ツールバー(T)」→ 「フォーム」の順にメニューを選ぶ。図5の「フォームツールバー」が表示される。ここで四角形の〔ボタン〕ツールを選ぶ。
    • 次に、ワークシート上の適当な位置に、マウスをドラッグしてボタンを作成する。ボタンの大きさの調整も行なう。
    • 「マクロの記録」ダイアログが開くので、そのボタンに関連付けるマクロ名を指定する。ボタンのタイトルを"ボタン1"などからマクロ名(が分るようなタイトル)に変更する。
      関連づけを確認するには、ボタンを左クリックしてショートカットメニューを開き、「マクロの登録(N)...」を選ぶ。「マクロの登録」ダイアログが開くのでそこでマクロ名を確認できる。

  6. 作成したボタンを押して、2つのマクロを交互に実行してみよう。

  7. マクロ記録を見る
     登録したマクロは「Module1」というワークシートに記録されており、興味があれば自分で表示したり、編集・修正してみることもできる。
    • それには、Excel97なら、「ツール(T)」→ 「マクロ(M)」→ 「Visual Basic Editor」の順にメニューを選ぶ。記録内容を編集するためのソフト「Visual Basic Editor」が開く。ここまではWordの場合と同じだ。
    • ここで左上にある「プロジェクト VBAProject」窓の中に「モジュール」フォルダがある。この中にある「Module1」に今記録したVBAのプログラムがある。Module1をダブルクリックすると、その内容を右上の大きな「メイン画面」に表示する。メイン画面では「メモ帳」や「秀丸」などのエディターと同じ要領で、編集することができる。
    • メイン画面にあるマクロは次のように記述されている.これは円グラフから棒グラフに切り替えるマクロである.先頭にマクロ名「Sub 棒グラフ()」がある. 引用符「'」で始まる行はコメント行で,マクロの実行とは関係ない.「ユーザ名」を自分の名前に変えてみよう.
      Sub 棒グラフ()
      '
      ' 棒グラフ Macro
      ' マクロ記録日 : 1998/12/11  ユーザ名 : 北星 一太郎
      '
      ' Keyboard Shortcut: Ctrl+Shift+B
      '
          ActiveSheet.ChartObjects("グラフ 1").Activate
          ActiveChart.ChartArea.Select
          ActiveChart.ChartType = xlColumnClustered
      End Sub
      
    • マクロの印刷
       Module1にある、円グラフと棒グラフのVBAマクロを印刷してみよう。 それには、まず、メイン画面を選択(マクロプログラムのどこかをマウスでクリック)してから、 「ファイル(F)」→ 「印刷(P)...」→ の順にメニューを選ぶ。「印刷 - VBAProject」のダイアログが開くので、
      • 「印刷範囲」を○カレントモジュール(M)、
      • 「印刷対象」を□コード(C)、
      をチェックしてから、〔OK〕ボタンを押す。

 

  1. マクロを自分で定義する方法

  2. - Excel 97の場合 -
練習4:マクロを自分で記述する
  1. マクロを自分で編集するには,「ツール(T)」→ 「マクロ(M)」→ 「Visual Basic Editor(V)」の順にメニューを選ぶ。 記録内容を編集するためのソフト「Visual Basic Editor」が開く。画面が大きく3分割されている。
      【図 6 】を参照
    マクロ記録を一度でも実行していれば,画面左上の「プロジェクト - VBA Project」窓の中に「モジュール」フォルダがあり,その中に「Module1」などのシートが作られている。 そうでなければ「Microsoft Excelオブジェクト」フォルダの中に「Sheeet1など」のみがあるであろう。
  2. 次に,「挿入(I)」→ 「標準モジュール(M)」→ の順にメニューを選ぶ。 画面右半分の「Module1(コード)」窓が開く。 このとき作成するマクロ名を入力するダイアログボックスが開くことがあるが,無視してもよい。
  3. 画面左上の「プロジェクト - VBA Project」窓の中に「モジュール」フォルダが作らており,その中に「Module1」のシートが用意されている。「Module1」シートをダブルクリックする。
  4. 画面右半分の大きな白紙の画面が「Module1(コード)」を記述する部分である.ここにユーザ定義関数「jikan」を以下のように書く。
    ' 24時間を超える時間関数(単位は時間)
    Function jikan(kaishi, syuryo)
          jikan = Hour(syuryo - kaishi) + Minute(syuryo - kaishi)/60
    End Function
    
     ここで,太文字部分はVBAの予約語で,HourとMinuteはVBAおよびExcelに登録されている時間関数である。kaishiとsyuryoはユーザが適当に与える変数名(仮引数)で,その意味は明白であろう。また,引用符「'」が付いた行はコメント行である。それ以外の行に特に全角の空白文字「 」などの日本語が入らないように注意しよう。
     「Module1」などの1枚のシートに複数のマクロを記述してもよい。
     コード画面の上にある「(General) ▼」はユーザが作成した「jikan()」関数の「分類」を示している。
  5. Visual Basic Editorを終了するには,「ファイル(F)」→ 「終了してExcelへ戻る(C)」→ の順にメニューを選ぶ。
  6. ユーザ定義関数の利用方法は,「関数ウィザード fx」→ 「関数の貼り付け」ダイアログが開く→ 「分類(C)」で「ユーザ定義関数」→ 「関数名(N)」で"jikan"の順にメニューを選ぶ。後はExcelに予め登録されている関数の使い方と同じである。

練習5:オブジェクト ブラウザの利用