第14回:表計算の発展的話題 2015 年 7 月 21 日 清見礼
本日の授業の資料は今日中に 7/jc2015.html においておく。 どうしてもうまくダウンロードできない、見るこ とができない、などあれば まで。私の部屋(総研215)に来てくれても構 いません。
繰り返し行う一連の処理を、一発でできるように する 中身は VisualBasic のプログラムだ が、GUI で操作可能 ◦ 細かいことをしたければ、プログラミングを行うことで 可能
セルの色を変更 別のセルを指定してマク ロの実行
こんな表を作るマクロを記録してみ た。 他の場所で実行してみると …
例2のマクロを意図通りに動作さ せるには、「相対参照で記録」を チェックしておく必要がある
相対参照での記録の効果をもっと直接的に体験し たければ、アクティブセルの位置を変えるマクロ を作ってみるとよい ◦ アクティブセルの位置を変えたり、範囲を選択する、な どというマクロも作ることができる
作成したマクロは基本的に、作成したワークシー トでしか使えない マクロ記録時に保存するブックを選ぶことで、他 のワークシートでも利用可能に 個人用マクロブックに保存すると、エクセルを立 ち上げるとき、自動で読み込まれる
これを適当に済ませていると、後で使うときに訳 が分からなくなる ◦ 作っているときはわかっていても、しつこすぎるぐらい 丁寧に書いておくとよい
マクロの編集でプログラ ムが見れる
たとえば、 Range(“D4”).select の “D4” を “D4:E5” に変更するとどうなるか? 他にも自分でちょっとしたマクロを作って、プロ グラムを眺めてみたり、改造してみると面白い
Sub 範囲消去 () ' ' 範囲消去 Macro ' D4:F7を消去 ' Range("D4:F7").Select Selection.ClearContents End Sub Selection.Clear 罫線 も含めてすべて消去 Selection.ClearContent s 数式と値を消去 Selection.ClearFormats 書式のみ消去
Sub 変数 () i = Range("A1") i = i * i Range("A2") = i j$ = Range("B1") j$ = j$ & " だよ " Range("B2") = j$ End Sub $を後ろにつけると、その 変数は文字列を表す変数に なる
Sub Macro1() ' ' Macro1 Macro ' If Range("A1") = "" Then ok = MsgBox("A1 に値が入力されていません ", vbOKOnly) Else Range("A2") = Range("A1").Value * 10 End If ' End Sub
Sub 繰り返し () ' ' 繰り返し Macro ' For i = 1 To 5 Range(“A" & i) = i * i - 5 * i Next ' End Sub
行は Range(“A” & i) のように指定できた 列は Range(chr$(asc(“A”)-1+i) & “1”) のように指定できる ◦ Basicを知っていればわかるけど、知らないと ちょっと面倒
Sub Macro1() ' ' Macro1 Macro ' Range("A1") = Range("A1").Value + 1 ' End Sub
授業で習ったことを試験に出します ◦ 今日の内容は範囲外 持ち込みは不可 課題 60 点、試験 40 点 ◦ ただし、試験が未受験だと、授業全体が未受験と扱われ る ◦ 課題を1つでも出していないと未受験となる