令和元年度 放送大学講義「VBA で楽しいプログラミング」

  

訂正および追加

訂正

VBAでは1行に複数の変数を宣言することができますが、C言語などと異なり、変数の型は変数ごとに指定する必要があります。

〇 Dim a As Double, b As Double

× Dim a, b As Double

   Dim a, b As Double と書くと、変数 a は型が指定されず variant型の変数となります。

Excelのファイルを開いた時にすぐにFormを表示する方法

授業では、ワークシートにフォームコントロールのボタンを配置し、Formを表示するマクロを登録して利用しました。次のようにすると、 Excelのファイルを開いた時に自動的にFormを表示することができます。

  1. Formを作成しておきます。
  2. Visual Basic Editorの画面で、プロジェクトウィンドウのThisWorkbookのアイコンをダブルクリックしてWorkbookのコード・ウィンドウを開きます。
  3. Workbookオブジェクトを選択します。コード・ウィンドウ上部の(general)と表示されている欄の▼をクリックしてWorkbook を選択します。
  4. Workbook_Openのイベント・プロシージャが表示されます。
  5. UserForm1.Showと記入します。(ここでは、Formのオブジェクト名がUserForm1のままだとしています。)
  Private Sub Workbook_Open()
    UserForm1.Show
  End Sub
  1. マクロが有効な形式(拡張子がxlsm)でExcelファイルを保存します。ファイルを閉じます。

再度このExcelファイルを開くと、Formが自動的に表示されます。「開発」メニューを利用するには、Formを閉じてください。

読み上げ速度の変更について

  1. Microsoft Speech Object Libraryが使用可能になるよう設定します。開発環境で、「ツール」-「参照設定」から、 Microsoft Speech Object Libraryにチェックを入れます。2つ表示される場合は、下側(実体の場所を確認し、sapi.dllとなっているもの)を選択してください。
  2. GetVoices.Itemで声の種類を設定します。
  3. Rateプロパティの値を指定します
   Dim voc As SpVoice
   Set voc = New SpVoice
   Set voc.Voice = voc.GetVoices.Item(1)      ' 0: Haruka  1: Zira  2: David
   voc.Rate = -10  ' 読み上げ速度 -10 ~ 10
   voc.Speak "Very slow"

  読み上げ速度を変更できる一桁の読み上げ暗算(英語版)  Excelファイル change_rate.xlsmのダウンロード

※ Application.SpeechにはRateプロパティはありません。

Excel VBA用グラフィックス・ライブラリの使い方に関する情報と最新版の取得について

Excel VBA用グラフィックス・ライブラリは Excel VBAによるプログラミング教育用環境とグラフィックス描画機能 のWebページで公開しています。

授業で配布した「GDI32命令によるグラフィックス・ライブラリ」には「矩形の塗りつぶし」機能に不具合がありました。お使いに なられる方はお手数ですが上記サイトの「グラフィックス描画命令ライブラリの配布」ページから最新版をダウンロードしてください。

授業内容の概要

Excel VBAの解説書の例

下記に挙げた本はあくまで一例です。書店や図書館で実物をご覧になり、ご自分に合った本をお選びください。

教科書的な本

  • 「Excel VBAの教科書」古川 順平 (著) 440ページ ¥2,380 SBクリエイティブ (2018/7/21)
  • 「ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本」立山 秀利 (著) 304ページ ¥2,376 (2007/10/23)
  • 「続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本」立山 秀利 (著) 432ページ ¥2,808 (2009/12/16 )
  • 「続々ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本」立山 秀利 (著) 312ページ  (2014/3/24) (絶版)
  • 「デバッグ力でスキルアップ!ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本」立山 秀利 (著) 303ページ ¥2,300 (2013/12/16)

基礎的・網羅的で辞書的な使い方も可能な本

  • 「できる大事典 Excel VBA 2016/2013/2010/2007 対応」国本温子 他(著) 960ページ ¥4,104 インプレス (2017/3/17)
  • 「できる逆引き Excel VBAを極める勝ちワザ700 2016/2013/2010/2007対応」」国本温子 他(著) 880ページ ¥3,218 インプレス (2016/6/17)
  • 「できる大事典 Excel 2016 Windows 10/8.1/7 対応」尾崎裕子 他(著) 800ページ インプレス (2016/9/27)
  • 「できる大事典 Excel 関数 2016/2013/2010 対応」羽山博 他(著) 928ページ インプレス (2017/9/15)

中級者向けの参考書

  • 「Excel VBA 本格入門 ~日常業務の自動化からアプリケーション開発まで~」大村 あつし (著) 560ページ ¥3,218 技術評論社 (2015/5/16)
  • 「アプリ作成で学ぶ Excel VBAプログラミング ユーザーフォーム&コントロール」横山達大 (著) 447ページ ¥2,792 秀和システム (2012/3/26)
  • 「大村あつし の Excel VBA Win64/32 APIプログラミング」 大村 あつし (著) 392ページ ¥4,000 秀和システム (2016/8/26)

その他

  • 「Excelで遊ぶ-手作り数学シミュレーション」田沼晴彦 (著)  240ページ ¥1,015  講談社ブルーバックス (2004/1/21)
  • 「Excel VBA アクションゲーム作成入門」近田 伸矢他  (著) 320ページ インプレス (2009/3/6) (絶版)

VBAを使う際に参考となるWebサイト

初級・入門編

初級~中級/網羅的

この他にもたくさんのWebサイトがあるので、ご自分で検索して探してみてください。

※ なお、上記サイトの情報は、学習センター内ではアクセス制限により閲覧できない可能性があります。

レポート課題実施のために準備していただくこと

2日目の終了時までに、各自で作成したVBAのプログラム(Excelファイル)を一つ以上提出していただきます。
それに先立ち、作業プランの概要を2日目4限開始時(15:10)までに提出してください。

VBAのプログラムの作成に当たっては、下記のうち少なくとも一つの要件を満たしている必要があります。

  • ・内容がオリジナルである

授業で扱った例題を改良する場合は、

  • ・機能を追加または高度化している  例 二次方程式 => 三次方程式
  • ・グラフィックスや音声などを利用して楽しさを増している
  • ・Formやコントロールを使用してユーザ・インターフェースを向上させている

知っていると便利なこと

参考 MS WindowsとMS Officeの操作に関わるeラーニング教材