2019年度 機械システム工学科 計算機基礎実習I

目次

  • 1.ワークシートの活用
  • 2.マクロの活用
  • <今回の課題>

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

  • 例題11aの入力と実行.
  • 例題11bの入力と実行.
  • 例題11cの入力と実行.
  • 例題11dの入力と実行.
  • 例題11eの入力と実行.

ここまでできた

オブジェクト型の変数

オブジェクトも,変数として自分で新規に作ることができます.

例題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」キーを押してみましょう.ヘルプが立ち上がり, 意味を知ることができます.


ここまでできた

マクロの活用

自分の実行したいことを,まず「手本」を入力することでプログラムコードを 自動生成させることができます.それをもとに,自分の目的に合わせて作り直す ことで,簡単にプログラムが作れます.

「グラフウィザード」なども,マクロとして登録できます.


ここまでできた

<今回の課題>

  • p.65 のEXERCISE の答えを,メールで提出しなさい.
  • 【任意】マクロをベースに作った自分のプログラムを,メールで提出しなさい.どういう動作をさせようとして作ったのかという目的の説明も加えて下さい.
  • [提出方法]

    • 〆切:7月19日20時まで.
    • 提出アドレス:kikai@elec.ryukoku.ac.jp
    • 件名(Subject):Report11 (半角英字)