2009-11-26

Excel VBA入門

今日の内容

  • Excelの提出
  • Excelでプログラムを書く
今週は出張のため、この時間は自習となります。

課題提出

前回、前々回に作ったExcelのファイルを確認のために提出してください。
メールの件名は学籍番号と「Excel」、本文にリンクと経路、そして名前を書いてください。

Excelでプログラミング

Excelを使ってプログラムを作ることが出来ます。C言語などの入門としても役立ちます。Excelではプログラムのことを「マクロ」と呼んだりVBA(Visual Basic for Application)と呼んだりもします。

準備

左上の丸いボタンを押して、「Excelのオプション」をクリックします。そして「[開発]タブをリボンに表示する」にチェックをつけてOKを押します。

すると右端に「開発」が表示されるのでクリックして、マクロのセキュリティをクリックして、「すべてのマクロを有効にする」に●をつけてOKを押します。


これで、普通のパソコンなら準備は完了、なのですが、情報基盤センターでは「すべてのマクロを有効にする」に●をつけることが出来ません。仕方が無いので左上の「信頼できる場所」をクリックします。

「プライベートネットワーク上にある信頼できる場所を許可する(推奨しません)」にチェックをつけてから「新しい場所の追加」をクリックします。

「パス」欄の下の「参照」をクリックします。

Z:ドライブを選びます。

My Documentsを選びます。

「OK」を押します

パス欄がZ:\My Documentsになったことを確かめて、「この場所のサブフォルダも信頼する」にチェックをつけて「OK」を押します。

するとこの画面に戻るので「OK」を押して、これでやっと準備完了です。

マクロ入門

ではマクロでどんなことが出来るか見てみましょう。「マクロの記録」をクリックしてください。マクロの名前を聞かれますので、ここはそのままOKを押します。


何か適当にExcelの操作をしてください。ここでは1から5の数字を入力してみました。
そして、記録終了をクリックしてください。

すると、Excelは今の操作を全部覚えています。確かめるために、今入力したものを全部消してから、今度は「マクロ」をクリックしてください。するとどのマクロを実行するか聞かれます。今は一つしかないのでそのまま「実行」を押します。
すると、先ほど自分でやったことがそのまま繰り返されたはずです。


一体どんな仕組みになっているか見るために「Visual Basic」のボタンを押します。するとVisual Basicの画面が開くので、左側のModule1をダブルクリックするとこの画面になります。


先ほど「マクロの記録」をクリックしてから「記録終了」をクリックするまでの操作が全てプログラムに書かれたのです。今すぐ覚える必要はありませんが、ActiveCell.FormulaR1C1 = "1"は選択しているセルに1を代入しなさい、Range("A2").SelectはA2セルを選択しなさい、という命令です。

このように自分の操作をプログラムに記録するのではなくて、今度は自分でプログラムを書いてみましょう。今、人によって色々違うことを書いたと思うので、一旦Excelを保存せずに終了して、もう一度立ち上げて、先ほど同様「開発」をクリックして「Visual Basic」をクリックしてください。
プログラムを書く部分を用意したいので「挿入」をクリックして「標準モジュール」をクリックしてください。

現れた画面にプログラムを書きます。
まず
sub 練習
とだけ書いて、Enterキーを押してください。すると自動的に

Sub 練習()

End Sub

となり、カーソルは真ん中の空行にあります。そこに
cells(1,1)=1
と書いてください。これは上から1番目、左から1番目のセルに1を代入しなさい、という命令です。
プログラムを書いたら、上の右向きの三角をクリックしてください。するとさっきと同じように、どのプログラムを実行するか聞かれます。今は一つしか書いていないのでそのまま実行を押すと、A1セルに1が代入されます。Excelの画面で「マクロ」を押しても実行できます。

このプログラムを保存する時の注意。
左上の「上書き保存」を押すと、どの形式でファイルを保存するか尋ねられます。ファイルの種類として「Excelマクロ有効ブック」を指定してください。

さてこれでプログラムを書いて実行できるようになったので、具体的なプログラミングを始めましょう。
先ほどのCells(1,1)=1とEnd Subの間に
cells(2,1)=2
cells(3,1)=3
と書き込んで実行してみてください。
あるいは
cells(1,2)=-2
cells(1,3)=-3
と書いて、cellsの二つの添え字がExcelのどのセルに対応しているか確認しましょう。

次に10個続けて書いてみたいと思います。
cells(1,1)=1
cells(2,1)=2
cells(3,1)=3
cells(4,1)=4
cells(5,1)=5
cells(6,1)=6
cells(7,1)=7
cells(8,1)=8
cells(9,1)=9
cells(10,1)=10

と書くのは大変です。何か別の方法は無いでしょうか?このためにFor文というものがあります。

for i=1 to 10
 cells(i,1)=i
next i

と書くとiの値が1から10まで変化しながらcells(i,1)=iの部分が繰り返し実行されますので、10行書いたのと同じプログラムになります。

九九の表

今度はVisual Basicを使って九九の表を作りましょう。
For文を使うと
1
2
3
4
5
6
7
8
9
という表は作れると思います。同じような文をもう一度書くと
12
24
36
48
510
612
714
816
918
という表を作ることも出来るので、同じような文を9回書けば九九の表は出来るはずですが、それはあまりにも大変ですので、For文を上手に使って同じような文を9回も書かずに九九の表を作ってください。

0 件のコメント: