VBA に関する投稿を表示しています

#upcamp 2014 Tokyo に参加してましたよ

この記事は公開されてから1年以上経過しており、情報が古い可能性があります。

ドーモ、ごみばこです。

私立・プログラミングキャンプ 2014 東京大会
https://atnd.org/events/52713

こんなものに参加していました。
スタッフ側だったようです。

  が!9時集合なのに9時に起きて10時着という大失態。。
  ごめんなさいごめんなさい。。。

参加者みなさま、スタッフかたがた、お疲れ様でした!

会場提供してくださった オプティム さん。
ピザ提供してくださった ゲヒルン さん。
ありがとうございます!最高!!

 

1. やったこと

・水運びました
・ジュース類運びました
・ピザ運びました
  サイコー。

・RFC2616をちょこっと眺めました
  >> http://lab.moyo.biz/translations/rfc/rfc2616-ja.txt
  ざっくりまとめると、HTTP/1.1 の仕様書です。

・ソケットよくわからんつらいってずっと言っていました
  >> http://e-words.jp/w/E382BDE382B1E38383E38388.html
  ラップされてるのはちらほらとやる機会があったものの、
  acceptとかrecvとかそのくらいのものはなかった。

・winsockのサンプルコードを眺めました
  >> http://e-words.jp/w/Winsock.html
  WSAなんたらかんたらとか。
  ウィンドウハンドルがどうこうとか。使ってないですけど。

・OfficeTanakaのサイトをあちこち眺めていました
  >> http://officetanaka.net/excel/
  VBAにこまると大体でてくるので強い

・「さっきまで動いてたけど動かなくなった」と言っていました
  よくあるはなし。

 

2. 成果

まずはこちらをご覧ください。

 

3. 技術的なサムシング

・全体像はこんなかんじ。
  ・ひとまず自分だけ見れればいいやのレベルで
  ・ExcelVBAでHTTPサーバを建てる
  ・ワークシート名でルーティング
  ・ワークシート内のコンテンツがレスポンス
  ・(想定)DB.tableなシートを作ってデータを保持する
  ・(想定)POSTデータを読み込んでデータを保存する
  ・(想定)データを読み込んで動的に埋め込む
  ・シンプルに掲示板を作りたかった(白目)

  思いのほか、ソケット周りで詰まってしまってレスポンスを返すのがやっと。
  『さっきまで動いてたけど(変数化|リファクタ|再起動)したら動かなくなった!』

・ワークシート内のテキストを返す
  シート内を全文テキストとして取得するのどうするんだろう
  → 全セルみたら死ぬしなあ
   → いったんtsvに落としこんでから読みこめばいいんだ
    → なんかダブルクオートで囲まれたりなんかつらすぎる…
     → なんかもう、一旦正規表現でよしなに消しとこう…
    → たぶんここでキャッシュしたら早くなるんだろうなー
     → ひとまずいいや

・Declareステートメント
  >> http://msdn.microsoft.com/ja-jp/library/cc376178.aspx
  コピペしないで書いたのは多分初めて。
  必要な関数をMSDNで調べて、引数とか戻り値を合わせて。

・クラスモジュール
  >> http://www.excellenceweb.net/vba/class/what_vba_class.html
  >> http://codezine.jp/article/detail/499

  全部やるとあれな予感がしたので、一旦リクエストとレスポンスだけクラス化した。
  クラス化した直後は最高に穏やかな気分だった。

  Before:
  『あ゛あ゛あ゛あ゛あ゛変数スコープう゛う゛う゛う゛う゛』
  『いや、あの、えっと、その、つらいです、はい、まじで』

  After:
  『こころのやすらぎ』

・振り返るとそんなに書くこと無かった(重要)

 

4. これやることにした経緯

このあたりをご参照ください。

ちがう。
ぼくはcanvasとかsvgとか、オンラインで動くやつを求めていたんですよ。

ですがここで、気付いてしまったわけです。
「Excelってグラフ作れるよなあ、VBAでプログラム書けるよなあ。あっ(察し)」

 

5. 作ってみて思ったこと

もしかして『始めたいです!』な人向けとして意外に需要があるのでは?

ほら、セルのおかげでしっかり構造化できるし。

インデントもちゃんとできるし。

ハイライトも実装すればできるし。

おや?????

 
あ、この流れしってる。
言い出しっぺの法則ってやつだ。

……そういえば、プログラムエディタをExcelにしよう!って話もありましたね。
  >> http://d.hatena.ne.jp/miya2000/20111221/p0

  あ、ここにシートのテキスト化があった…

 

6. おまけ

名前を書いてあった紙があるじゃろ?

2014-08-17 23.35.50

 

これを、

 

こう、

 

ごみばこの出来上がりじゃ!w

2014-08-17 23.35.30

パン#3にいきました

この記事は公開されてから1年以上経過しており、情報が古い可能性があります。

なんだかんだで10人くらいかと思っていたら4人(飛び入りで+1、終了前に+1、合計6人)で、非常に残念でした。

[やったこと]
ExcelVBAを使って、BefungeからHSPに変換するサムシングをつくってみる

[残念ポイント]
>成果物の巻
・なんでExcelVBAを選んだ
・どうやったらBefungeをHSPに変換する需要がでてくるんだ
・Befungeの仕様を網羅しているわけじゃない
・出力されるコードがやばい(ループとかメソッドかましてない)

>言語の巻
・ExcelVBAすごい。いい加減だったり厳密だったり。
・hoge()で呼べると思ったらCall hoge()とかだったり、一度は通ったはずなんだけど忘れていた
・Befungeは、まあ、はい。Brainfxckなんかと比べると、ネタとしていいと思うんだけど実用性が皆無
・HSPは今回はがっつりやってないのでわかりません
・デフォルトでWin32API叩けたりCOMオブジェクトも使えるし、とてもいいんじゃないですかね。簡単な命令郡みたいですし。

>イベント自体の巻
・15分ほど遅刻でしたごめんなさい
・新聞紙からダンボールにグレードダウン(アップ?)してました
・貧民パンにプロ仕様が入っていました
・首いたい
・ごろ寝モード
・座る
・首いたい
・立つ
・座る
・首いたい

>他の方の巻
・「ISLISPなんてなかった」
・「MercuryでML実装したけどfibonacci(9)で落ちる」
・「Java8が残念じゃなだけどそもそもJavaが残念」
・「黒歴史言語でBrainfxxkを実装したかった来れませんでした」

>その他の巻
・まとめやustは無さそうなので、ハッシュタグ追ってください()
・「#残パン会」です

[おまけ]
ぎっとはぶにあっぷしました。
https://github.com/sters/zanpan/blob/master/zanpan3/

ちなみに、
https://github.com/sters/zanpan/blob/master/zanpan2/
とかには前回の第二回の成果物をあれこれ弄ったらなんだかなー、となったものが入っています。