今日の内容
- 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 |
1 | 2 |
2 | 4 |
3 | 6 |
4 | 8 |
5 | 10 |
6 | 12 |
7 | 14 |
8 | 16 |
9 | 18 |
0 件のコメント:
コメントを投稿