2013-12-20
2013-12-19
データの集計
For文を使った足し算
1から10までの数の合計を計算しましょう。cells(1,1)=1+2+3+4+5+6+7+8+9+10
と書いても計算できますが、これでは「1から100までの数の合計を計算しなさい」と言われた時に大変です。
同じような作業の繰り返しはパソコンに任せましょう。
sub 足し算()
wa=0
for j=1 to 10
wa=wa+j
next j
cells(1,1)=wa
end sub
と書いて実行すると、cells(1,1)に1から10までの数の合計が計算されます。
理由は、まず最初にwa=0にしておいて
wa=wa+1 (この時点でwaは1)
wa=wa+2 (この時点でwaは1+2)
wa=wa+3 (この時点でwaは1+2+3)
wa=wa+4 (この時点でwaは1+2+3+4)
wa=wa+5 (この時点でwaは1+2+3+4+5)
wa=wa+6 (この時点でwaは1+2+3+4+5+6)
wa=wa+7 (この時点でwaは1+2+3+4+5+6+7)
wa=wa+8 (この時点でwaは1+2+3+4+5+6+7+8)
wa=wa+9 (この時点でwaは1+2+3+4+5+6+7+8+9)
wa=wa+10(この時点でwaは1+2+3+4+5+6+7+8+9+10)
となるからです。
練習:1から100までの数の合計を計算しなさい。
For文を使った足し算
実際のデータの足し算をしてみましょう。以前と同じデータを使います。
|
出典 |
すると20人の身長はB2からB21、つまりCells(2,2)からCells(21,2)にあります。
このままでは番号が分かりづらいので、x(1), x(2),...,x(20)という変数を用意して、そこへ代入します。
sub 身長と座高()
dim x(20)
for j=1 to 20
x(j)=cells(j+1,2)
next j
end sub
ここまででは身長のデータを配列x(1), x(2),...,x(20)に読み込んで終わりです。
練習:20人の身長の合計を計算して、一行あけたcells(23,2)に代入するようにマクロを書き足しなさい。
sub 身長と座高()
dim x(20)
for j=1 to 20
x(j)=cells(j+1,2)
next j
ここに身長の合計を変数 wa に代入するマクロを書く
cells(23,1)="合計"
cells(23,2)=wa
end sub
合計を計算したら続けて平均も計算できます。
変数名に漢字を使うこともできます。
sub 身長と座高()
dim x(20)
for j=1 to 20
x(j)=cells(j+1,2)
next j
ここに身長の合計を変数 wa に代入するマクロを書く
cells(23,1)="合計"
cells(23,2)=wa
身長の平均=wa/20
cells(24,1)="平均"
cells(24,2)=身長の平均
end sub
"平均"のように " " で囲むと 平均 という文字が表示され、囲まないと 身長の平均 という変数に代入された値が表示されます。
While文を使って個数を数える
今回は20人のデータでしたが、一つのマクロを複数のデータに対して用いる場合は、データによって人数が一定とは限りません。そのような場合のために、マクロの最初で人数を数えましょう。
数える操作は何回繰り返すかが分かっておらず、上から順に見ていって最後に到達するまで繰り返します。
このように、条件を指定して繰り返すにはWhile文を使います。
Do While 条件
この部分が繰り返される
Loop
先ほどのマクロのEnd Subより後に、次のマクロを書いてみてください。
Sub 数える()
j = 1
Do While Cells(j + 1, 2) <> ""
j = j + 1
Loop
人数=j
MsgBox (人数)
End Sub
最後のMsgBox(人数)は、人数という変数の値を表示するマクロです。
Cells(j+1,2)が空っぽではない間は繰り返す、という意味です。
正しく数えられましたか?ずれていた場合はその理由を考えましょう。
配列の大きさを変更する。
人数が分かったので配列を用意するときにDim x(人数)
と書きたいのですが、これではエラーになります。
配列を用意するときの(括弧)の中に変数を書くことは出来ません。
マクロの途中で配列の大きさを変えるには、まず最初に
Dim x()
のように(括弧)の中に何も書かずに
人数を数えた後で
ReDim x(人数)
と書きます。
練習
先ほど作ったマクロを、最初から20人に限らず、マクロの中で人数を数えて配列を用意して計算するように改造してください。2013-12-17
2013-12-13
2013-12-12
Excelのマクロ
HTMLの課題
自分でテーマを決めて、ホームページを作ってください。 内容は何でもいいですが、例えばパワーポイントの課題と同じテーマを使えば内容を新たに考える手間が省けます。条件は
- 少なくともindex.htm, link.htm, index1.htm の3つのファイルを作って下さい。index2.htmなどもっと作っても構いません。
index.htmは http://www.edu.cc.okayama-u.ac.jp/[公開DIR名]/ と指定すれば他の人からも読むことが出来ます。それ以外のページは、例えばlink.htmだったら http://www.edu.cc.okayama-u.ac.jp/[公開DIR名]/link.htm と指定すれば読むことが出来ます。 - index.htmからはlink.htm, index1.htmへのリンクを作り、link.htm, index1.htmからindex.htmに戻るリンクを作って下さい。
- link.htmには他のサイト(友達、僕、岡山大学、外部などどこでもいいです)へのリンクを作って下さい。
- 画像を貼る
- 色をつける。文字の色でも背景の色でもいいです。
- 練習問題2の表を入れる。この表を入れておけば、もっと別の表を入れても構いません。
- 岡山駅から、どこか行ってみたい場所への経路を示す地図を入れてください。
但し、自宅や友人宅など、個人的な場所は駄目です。このページは学内の誰からも見ることが出来ますから。
Excelの自動処理
Excelで多くのデータを処理していると、同じような操作の繰り返しで面倒になります。エクセルは、プログラムを書くことで処理を自動化出来ます。
プログラムのことを、マクロとも呼びます。
準備
最初に一度だけやっておくことがあります。エクセルのファイルからオプションを選びます。
左側で「リボンのユーザー設定」を選んで、右側の「開発」にチェックをつけます。
すると「開発」タブが表示されるので、「マクロのセキュリティ」をクリックします。
すべてのマクロを有効にする(推奨しません。危険なコードが実行される可能性があります)をクリックします。
ここで警告されたように自分で作ったプログラムだけでなく、他の人が作った危険なプログラムも実行できるようになってしまいます。
インターネットからダウンロードしたエクセルファイルを開くときには「警告を表示してすべてのマクロを無効にする」を選んでください。
これで準備は終わりです。
マクロでどんなことが出来るか?
マクロを使うとどんなことが出来るか確かめるために、開発タブの「マクロの記録」をクリックします。
セルに1,2,3,4,5を入力して、記録終了をクリックします。
ここで、先ほど入力した1,2,3,4,5を全部消してから、「マクロ」をクリックします。
どのマクロを実行するか聞かれるので、そのまま「実行」をクリックします。
すると先ほど入力した1,2,3,4,5が再び入力されます。
このように、マクロを使うと、エクセルの操作を自動化出来ます。
どんな仕組みになっているか見てみましょう。
開発タブのVisual Basicをクリックします。
左側の、標準モジュールの中のModule 1をクリックすると、エクセルが記録したマクロが表示されます。
これが先ほど行った、1,2,3,4,5を縦に順に記録する操作をプログラムに書いたものです。
これから、このプログラムの書き方を勉強しましょう。
自分で書いてみる
新規に書くために、Excelを保存せずに終了させて、もう一度立ち上げてください。「開発」タブから「Visual Basic」を起動します。
ここに
sub 練習
とだけ書いてEnterを押します。すると
Sub 練習()
End Sub
となります。
このSub 練習()とEnd Subの間に自分でマクロを書きます。
cells(1,1)=1
と書いて、その上の右向きの三角形をクリックします。
するとエクセルの、上から1行目、左から1列目のセルに1と入力されています。
等号は、左辺を右辺と等しくするという意味で、右側の1を左側のCells(1, 1)に代入します。
さらにCells(1,1)=1とEnd Subの間に
cells(2,1)=2
cells(3,1)=3
cells(1,2)=-2
cells(1,3)=-3
と書いて実行して、cellsの二つの添え字がエクセルの縦と横のどちらに対応しているか確かめてください。
For文
Cells(1, 1) = 1Cells(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 j = 1 To 10
Cells(j, 1) = j
Next j
と書くことが出来ます。
練習問題
次の九九の表を作るマクロを書いてください。但し掛け算はセルに入力するときと同じく * です。保存するときの注意
名前を付けて保存から、必ず「Excelマクロ有効ブック(*.xlsm)」を選んでください。Excelブック(*.xlsx)だとマクロが保存されません。For文を使った足し算
1から10までの数の合計を計算しましょう。cells(1,1)=1+2+3+4+5+6+7+8+9+10
と書いても計算できますが、これでは「1から100までの数の合計を計算しなさい」と言われた時に大変です。
同じような作業の繰り返しはパソコンに任せましょう。
sub 足し算()
wa=0
for j=1 to 10
wa=wa+j
next j
cells(1,1)=wa
end sub
と書いて実行すると、cells(1,1)に1から10までの数の合計が計算されます。
理由は、まず最初にwa=0にしておいて
wa=wa+1 (この時点でwaは1)
wa=wa+2 (この時点でwaは1+2)
wa=wa+3 (この時点でwaは1+2+3)
wa=wa+4 (この時点でwaは1+2+3+4)
wa=wa+5 (この時点でwaは1+2+3+4+5)
wa=wa+6 (この時点でwaは1+2+3+4+5+6)
wa=wa+7 (この時点でwaは1+2+3+4+5+6+7)
wa=wa+8 (この時点でwaは1+2+3+4+5+6+7+8)
wa=wa+9 (この時点でwaは1+2+3+4+5+6+7+8+9)
wa=wa+10(この時点でwaは1+2+3+4+5+6+7+8+9+10)
となるからです。
練習:1から100までの数の合計を計算しなさい。
2013-12-10
2013-12-06
2013-12-05
HTMLへのコードの貼り付け
google mapとコードの貼り付け
google mapで岡山大学を検索して、岡山駅からの経路を調べましょう。そしてその経路を自分のホームページに貼りましょう。
google mapを開きます。
「ルート・乗換案内」をクリックして出発地点に「岡山駅」を入力します。
時間にも依りますが、法界院駅までJRを使う経路か、徒歩の経路が表示されます。
上の車のマークを押せば自動車の経路、列車のマークを押せば主に列車を利用する経路、歩くマークを押すと全部歩く経路が表示されます。
「ルート・乗り換え案内」「マイプレイス」の左の∞をクリックすると、このページを表示するためのリンクが表示されます。
ウェブサイトへの地図埋め込み用HTMLコードをコピーして、自分のホームページの本文に貼り付けてください。
ホームページ作りに関してはまだまだ沢山の項目があります。興味がある人は解説サイトなどを見てください。但し、沢山の項目を駆使するより、配置、配色を工夫する方が見やすいページになります。
2013-12-03
季節成分
講義の後、一宮高校へ行った時に教えてもらいました。関数グラフソフトGRAPES
朝、雲一つない空を飛行機が飛んでいました。
樹が茶色っぽいのは紅葉ではなくgoogleが勝手に写真の色を変えたのです。
google+の設定で勝手に補正されないように出来ました。