Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

18
Small Basic を 実務で使ってみませんか ブログ "Developer@ADJUST" http://devadjust.exblog.jp/ Twitter: @jsakamoto

Transcript of Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

Page 1: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

Small Basic を 実務で使ってみませんか

ブログ "Developer@ADJUST"

http://devadjust.exblog.jp/

Twitter: @jsakamoto

Page 2: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

Small Basic とは?

• Microsoft が提供しているプログラミング

言語とその開発環境。

• 無償で利用可能。

• プログラミングの学習や入門向けと謳わ

れている。

Page 3: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

開発環境は、こんな画面。

Page 4: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

私と Small Basic との出会い

• ネットの情報で SmallBasic の存在は、ぼ

んやりと知ってはいた。

• CLR/H の勉強会で @salvage さんが

Small Basic についてのセッションに参加

したのが、ここまでのめり込んだきっか

け。

Page 5: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

なにがいいの?

• 言語がどうこうではなく、開発環境!

Page 6: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

でも学習・入門用なんでしょ?

• テキストファイルの行単位での読み書き

と、Web へのアクセスができるので、意

外と実務的な使い道があります。

• 定型処理の自動化とか。

Page 7: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

誰が使うの?

• コンピュータによる自動化によって恩恵

にあずかれる人。

• 例えば…

– 品質管理部門(テスター)

– IT管理運用部門(PowerShellよく使う人)

• C#などで.NETのクラスライブラリをバリ

バリ書ける人がそばに居ることが理想。

Page 8: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

自動化ならVBAとか?

• 結局、学習コストが問題。

• 毎日使うわけじゃないし。

• とにかく、IDE、IDE、IDE!

Page 9: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

このVBA画面、ひるまないか?

Page 10: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

この画面なら私にもできる!

Page 11: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

C#とかで拡張が容易

• これがポイント!

• 静的メソッドを公開する静的クラス書い

て、クラスライブラリにビルドして、

C:¥Program Files¥Microsoft¥Small

Basic¥lib に置くだけ!

– → Small Basic 内からその静的クラス/静的

メソッドが呼び出せるようになる!

Page 12: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

拡張ライブラリ作って CodePlexで公開してます。

• Small Basic から Excel を操作するライブラリ

• Small Basic から IE を操作するライブラリ

• Small Basic の文字列操作を便利にするライブラリ

Page 13: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

事例

• 拡張ライブラリの使用が前提ですが、

– Redmine のチケットを PDF にエクスポート

– 複数の Excel ファイルに分散した内容の集計

– たくさんの Web ページを一括で印刷

• 足りない機能があるなら、拡張ライブラ

リを作ってしまえ!

Page 14: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

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

Page 15: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

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

Page 16: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

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

Page 17: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

まとめ

• Small Basic でエンドユーザー自身が自分で自動化して、みんなで Happy になりましょう!

Page 18: Small Basic を実務で使ってみませんか - CLR/H第56回勉強会ライトニングトーク

おまけ

• × VBA → ○ Small Basic

• × PowerShell → ○ F# Script(.fsx)

…だと思ってます。

(各処理系のファンの皆様、×つけてすみません...)