2019年度 機械システム工学科 計算機基礎実習I目次
1.ワークシートの活用ExcelのワークシートをVBAから操作します. セルの指定Excelでは,セルの座標は「A1」や「C3」といったように,横軸を アルファベット,縦軸を数字で指定しています.ちなみに,最大の 座標は「IV65536」です. プログラムでは,どちらの軸も数字で指定します.ただし,指定する 順番が逆転し「C5」のセルは「Cells(5,3)」となります. ここまでできた オブジェクト一つのExcelのファイルには複数のシートが存在します.そのため, Cells(5,3)と指定しても,どのシートをさしているかわかりません. 区別をつけるためには「Worksheets(1)」の「Cells(5,3)」と 指定する必要があります. Application.Workbooks(1).Worksheets(1).Cells(1,1).Value
省略した場合は,現在いる場所が当てはめられます.例えば,Sheet1を 開き,「A1」に「1」を入力し,VBAの「イミディエイトウインドウ」で, MsgBox cells(1,1)
を実行すると,「1」が表示されます.そしてExcel でSheet2を選択し, 再びVBAに戻り同様のコマンドを実行すると,今度はSheet2の「A1」の セルの中身が表示されます. つまり,シート名を省略すると,「現在Excelで選択しているシート」が 対象となります. プログラムを作る際に,予定していないシートを選択している場合には, 予期せぬ動きをすることになりますので注意して下さい. ここまでできた VBAでExcelのセルを操作するときの注意事項今まで,ExcelやWordで入力作業をしてきたときには,間違った作業を した場合に,「Undo(「編集」の「元に戻す」)」という機能が 便利でした. この機能は,Excelが今までの手順を記録して,それをさかのぼる (つまり逆の作業を実行する)ことで,実現していました. ところが,VBAでセルを編集するときは,Excelは手順を記録しません. つまり,「元に戻す」機能は存在しません.間違えてセルを全て消して しまうと,誰も元に戻せなくなります. 適宜,区切りのいいところで名前を変えて保存しましょう. 万が一,元に戻せなくなっても,そのファイルを読み込みなおすことで 「元に戻る」ことができます. 元に戻れないことを理解した 例題11
ここまでできた オブジェクト型の変数オブジェクトも,変数として自分で新規に作ることができます. 例題11fを入力し,実行してみてください. ここまでできた グラフを描く例題12は,セルの値をVBAで計算して入力している. 例題12追加では,「グラフの作成」をウィザードコマンドで実現して いる. 一行目で,セルを範囲指定し選択している. 二行目で,「グラフの作成」ウィザードを多数の引数で呼び出している. ここまでできた 2.マクロの活用ここでは教科書に載っていない「マクロ」という機能について説明します. 新しいマクロの記録「開発」→「マクロの記録」を選びます. マクロの記録まずは,そのまま「OK」を押してみましょう. 行動の記録では,セルのB2からE8を選択し,右クリックし,「セルの書式設定(F)」から 「パターン」を選び,「セルの網掛け」を変更しましょう. 記録の終了記録が終わったら,左のボタン「記録終了」を押します. マクロの確認Visual Basic Editorを開き,今記録したマクロのプログラムを確認しましょう.
Sub Macro1()
' ' Macro1 Macro ' マクロ記録日 : 2019/7/15 ユーザー名 : ユーザ名 ' ' Range("B2:E8").Select With Selection.Interior .ColorIndex = 40 .Pattern = xlSolid .PatternColorIndex = xlAutomatic End With End Sub 今の作業を思い返しながら,上記プログラムを読んで見ましょう. セルB2からE8を選択するのは,Range("B2:E8").Selectという形で 実行できることがわかります. また,その選択した範囲に対して,三つの変更を行っています.しかし実際の作業は 一つの手順です.では,それぞれのコマンドは何を意味しているのでしょうか. コマンドにカーソルを合わせ「F1」キーを押してみましょう.ヘルプが立ち上がり, 意味を知ることができます. ここまでできた マクロの活用自分の実行したいことを,まず「手本」を入力することでプログラムコードを 自動生成させることができます.それをもとに,自分の目的に合わせて作り直す ことで,簡単にプログラムが作れます. 「グラフウィザード」なども,マクロとして登録できます. ここまでできた <今回の課題>
[提出方法] |