第8回 表計算ソフトの高度利用

Excelのマクロ機能を利用することにより、さまざまな処理を自動化することが出来る。今回の授業ではマクロの簡単な使い方を学び、マクロが一種のプログラムであることを理解する。

本講義で身につけた知識が役立つ科目など:
 機械工学実験、卒業研究、大学院および企業での研究など。

8.0 最初にやること

マクロは非常に便利なツールであるが、あまりにも色々なことが自動化できるため、マクロを利用してウィルスを作成することも出来てしまう。 このため、Excelをインストールした直後の状態では、マクロの作業を行うことができない。自宅PCにてマクロを利用した作業を行う際は、まずは以下の手順にてマクロを利用できるようにセットアップすること。 なお、情報処理教室のExcel2007については以下の作業は不要である。

8.0.1 Excel2010の場合 (大学のPCはこちら)

標準セットアップの状態では、メニューに開発タブが表示されていない。このような場合、以下のような作業を行うこと。

8.0.2 Excel2007の場合

標準セットアップの状態では、メニューに開発タブが表示されていない。このような場合、以下のような作業を行うこと(Excelのヘルプより引用)。

8.0.3 Excel2003以前のバージョン

セキュリティレベルが「高」に設定されており、マクロが利用できないようになっていることがある。 このような場合、以下の手順に従ってセキュリティレベルを「中」に変更すること。

  1. 「ツール」メニューの「マクロ」より、「セキュリティ」を選ぶ。
  2. 「セキュリティ」パネル中の「セキュリティレベル」を「中」にしてOKを押す。
  3. 変更を反映するため、一度Excelを終了させ、再度起動する。

8.1 macro001 : セルに値を代入する

何はともあれ、マクロを使ってみましょう。

手順

  1. 先ず、macro_lesson.xls というファイルを作成せよ。macro001からmacro005までは全てこのファイルに保存すること。
  2. 「開発」-「コード」-「マクロの記録」(Excel2007以前では「新しいマクロの記録」)を選択し、マクロ名として macro001 (以下のマクロについても同様にマクロ名を設定すること)を入力する。以降の手順は全てマクロに記録される。
  3. 適当なセルを選択し、5箇所程度に文字列を入力したのち、停止ボタンを押してマクロを終了させる。これでマクロが記録された。
  4. 「ファイル」-「新規作成」より新しいブックを作成する。
  5. 「開発」-「コード」-「マクロ」を選択し、先ほど作成したマクロを選択して実行せよ。

マクロの内容を確認する

「開発」-「コード」-「Visual Basic」を選択し、プロジェクトの中の「標準モジュール」-「Module1」をダブルクリックして開いてみると、先ほど記録したマクロの内容を確認出来る。Excelマクロは一種のプログラミング言語であることが判る。

8.2 macro002 : 色を付ける

適当なセルに色を付けるマクロを作成し、Visual Basic Editorで記録された内容を確認せよ。

8.3 macro003 : 罫線を引く

適当な範囲に対して罫線を引くマクロを作成し、Visual Basic Editorで記録された内容を確認せよ。

8.4 macro004 : 書式を設定する

フォントの種類やフォントサイズを変更するマクロを作成し、Visual Basic Editorで記録された内容を確認せよ。

8.5 macro005 : 簡単な繰り返し

以下のように、1行おきにセルに色を付けるマクロを作成する。これを手作業でやるのは大変である。以下のような手順で、繰り返し作業を含むマクロを作成してみる。

  1. まず macro005 として、A2 から F2 までのセル範囲に色を付けるマクロを作成する。
  2. 繰り返し命令である For 〜 Next 構文を利用して、繰り返し処理を実行する。Visual Basic Editor にて Range("A2:F2") あたりの処理を以下のように変更せよ。プログラムの始まりと終わりを表わす Sub macro005() および End Sub といった命令を削除しないように気をつけること。
    注:Cells(x,y) は x行y列目のセルを意味している。例えば Cells(1,1) = "A1" であり、例えば Cells(3,2) = "B3"である。
    For i = 0 To 100
        Range(Cells(2 * i + 1, 1), Cells(2 * i + 1, 6)).Select
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 15773696
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
    Next i
    
  3. Excel2003以前のバージョンでは、マクロのコマンドが若干異なっている。自宅PCのExcelが2003以前のバージョンの場合は、以下のように変更せよ。なお、以下のコマンドはExcel2007でも実行することが可能である。
    For i = 0 To 100
        Range(Cells(2 * i + 1, 1), Cells(2 * i + 1, 6)).Select
        With Selection.Interior
            .ColorIndex = 37
            .Pattern = xlSolid
        End With
    Next i
    

8.6 課題

データファイル sample.dat を利用して、実行結果が下図となるようなマクロを作成せよ。なおこのデータは、20名分の成績データであるものとする。

提出期限は来週月曜正午までとする。