Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク
-
Upload
jun-ichi-sakamoto -
Category
Technology
-
view
2.125 -
download
2
Transcript of Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク
Small Basic を 実務で使ってみませんか
ブログ "Developer@ADJUST"
http://devadjust.exblog.jp/
Twitter: @jsakamoto
Small Basic とは?
• Microsoft が提供しているプログラミング
言語とその開発環境。
• 無償で利用可能。
• プログラミングの学習や入門向けと謳わ
れている。
開発環境は、こんな画面。
私と Small Basic との出会い
• ネットの情報で SmallBasic の存在は、ぼ
んやりと知ってはいた。
• CLR/H の勉強会で @salvage さんが
Small Basic についてのセッションに参加
したのが、ここまでのめり込んだきっか
け。
なにがいいの?
• 言語がどうこうではなく、開発環境!
でも学習・入門用なんでしょ?
• テキストファイルの行単位での読み書き
と、Web へのアクセスができるので、意
外と実務的な使い道があります。
• 定型処理の自動化とか。
誰が使うの?
• コンピュータによる自動化によって恩恵
にあずかれる人。
• 例えば…
– 品質管理部門(テスター)
– IT管理運用部門(PowerShellよく使う人)
• C#などで.NETのクラスライブラリをバリ
バリ書ける人がそばに居ることが理想。
自動化ならVBAとか?
• 結局、学習コストが問題。
• 毎日使うわけじゃないし。
• とにかく、IDE、IDE、IDE!
このVBA画面、ひるまないか?
この画面なら私にもできる!
C#とかで拡張が容易
• これがポイント!
• 静的メソッドを公開する静的クラス書い
て、クラスライブラリにビルドして、
C:¥Program Files¥Microsoft¥Small
Basic¥lib に置くだけ!
– → Small Basic 内からその静的クラス/静的
メソッドが呼び出せるようになる!
拡張ライブラリ作って CodePlexで公開してます。
• Small Basic から Excel を操作するライブラリ
• Small Basic から IE を操作するライブラリ
• Small Basic の文字列操作を便利にするライブラリ
事例
• 拡張ライブラリの使用が前提ですが、
– Redmine のチケットを PDF にエクスポート
– 複数の Excel ファイルに分散した内容の集計
– たくさんの Web ページを一括で印刷
• 足りない機能があるなら、拡張ライブラ
リを作ってしまえ!
Redmineチケットを いっきにPDFエクスポート
outputDir = "C:¥WorkSpace"
baseUrl = "http://host/issues/show/"
For ticket=1 To 56
path = Network.DownloadFile(baseUrl + ticket + "?format=pdf")
File.CopyFile(path, outputDir + "¥" + ticket + ".pdf")
File.DeleteFile(path)
EndFor
100個のExcelファイルの 1行1列目を収集
folder = "C:¥WorkSpace¥"
sumUpTo = folder + "集計先.xlsx"
For i=1 To 100
index = Text.Right(Text.Append("00",i), 3)
linkTo = "='" + folder + "["+index+".xlsx]Sheet1!$A$1"
Excel.WriteCell(sumUpTo, "Sheet1", i, 1, linkTo)
EndFor
Webページをいっきに印刷
baseUrl = "http://host/app/"
' Login
IE.Navigate(baseUrl + "Login.aspx")
IE.SetValue("UserName","taro")
IE.SetValue("Password","passw0rd")
IE.Click("Login")
'Print each page from 1 to 10.
For page=1 To 10
IE.Navigate(baseUrl + "View.aspx?page=" + page)
IE.Print()
EndFor
まとめ
• Small Basic でエンドユーザー自身が自分で自動化して、みんなで Happy になりましょう!
おまけ
• × VBA → ○ Small Basic
• × PowerShell → ○ F# Script(.fsx)
…だと思ってます。
(各処理系のファンの皆様、×つけてすみません...)