SSブログ

マクロ・VBA 勉強会 番外編 [マニュアル本 解説書]

マクロ・VBA 勉強会 は、10月14日(日)から隔週で5回、
最終回が、12月9日(日)でした。

おかげで、吉田 拳さんの、
『 たった1秒で仕事が片づく Excel自動化の教科書』
というマニュアル本を細部まで読み込みました。



ところで、教室のパソコンに入っていた、
VBA 勉強会 > 第5回参考フォルダに入っていた、
ふたつのファイル

   『tetris_exp.xlsm』、
   『計算の練習.xlsm』
VBA 12.9.11.JPG

『計算の練習.xlsm』は、いただいてきたので、解析できますが、
『tetris_exp.xlsm』は、開くとエラーになってしまって、
ちょっと気になったので、検索してみました。
tetris テトリスって、ゲーム名だったような?
ということは、VBAで、テトリスを作ったということかも。


VBA テトリス 作り方 で検索してみました。


■ Excelでスーパーマリオ?絵を描く?Excelの意外な使い方
https://office-hack.com/excel/excel-game/
■ Excelマクロ初心者が実践できる!
   懐かしファミコンゲームをExcelで再現/中古車のナビクルcar

https://navikuru-car.com/excel-macro-2323
■【プログラミング入門】Excelでオセロを作って
   楽しくプログラミングを学ぼう!②

https://tech.pjin.jp/blog/2016/07/21/excel-othello-2/
■ 【小ネタ】Excel VBAでゲームはつくれる!
   エクセルでつくられた懐かしのゲーム5選
https://excel-master.net/miscellaneous-knowledge/excel-vba-game-5/







『計算の練習.xlsm』の方は、5回目の講座 のさいごに、
ちょっとだけ説明してもらいました。

「プロシージャは、これだけです」と、
見てみると、確かに数行しか書いてありません。


VBA 番外1.JPG


つまり、コピーしてみると、こんな内容。

Sub sample()
    Application.ScreenUpdating = False
    Dim i As Integer
    For i = 3 To 12
        Cells(i, 2) = WorksheetFunction.RandBetween(0, 100)
        Cells(i, 4) = WorksheetFunction.RandBetween(0, 100)
        Cells(i, 6) = ""
    Next
End Sub



エクセルシートに、手順も書いてあります。

VBA 12.9.14.JPG


VBA 12.9.15.JPG



手順を読んだだけでは、わからないので、

エクセルの方に書かれていた関数を確認してみました。。
H3セルに、 =IF(F3="","",B3+D3)

VBA 番外3.JPG




G3セルに、 =IF(F3="","",IF(F3=H3,"○","×"))

VBA 番外2.JPG




G14セルに、 =COUNTIF(G3:G12,"○")

VBA 番外4.JPG




「この手順を、VBAを使わないと、エラーしてしまいます」

ということで、
さいしょのプロシージャの部分を、

エクセルに関数で書いた、「VBAなし」シートの方。

VBAなし.JPG


F3セルに、答え 82 を入れます。
VBAなし2.jpg



エンターキーを押した途端、なぜか、
問題1 37 + 45 が、
     69 + 94 に変化してしまいます。
VBAなし3.JPG



「プロシージャを使ってない方は、エラーになる」
どうして、こうなってしまうのでしょう。
プロシージャの部分を、
エクセルに関数で書くと、

B3セル、D3セルに、 =INT(RAND()*100)
と入ってました。
ほかは、「sheet1」と同じ関数が入ってますが、

VBA 番外5.JPG




■ 追加 2019年3月28日  

計算の練習.xlsm の解析、やっとできました。
詳しくは、別ブログ

コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。