あなたにとってVBAとは?
Visual Basic for Applicationsです!
もしかしてTVチャンピオンで義剛が優勝者にCMギリギリで質問するやつみたいなのを期待してた?残念!曖昧さ回避のためのページでした!
というのも、最近twitterでVBA関連のツイートを検索して困ってる人を眺めてるのが楽しくてしょうがないんだけど、「VBA」っていう単語で検索かけても「VBA2」とか「VBA全滅」とか「VBAライブ」とか「VBA楽しい」とか意味不明なノイズが大漁に混じってくるんだよね。
ちなみに…
VBA2 | VBAのしんかけい。やく16じかんに 1かい ばぐる。 エラーで なんぱしかけてる ひとを みまもる やさしいげんご。 |
VBA 全滅 |
致命的なエラーによりファイルが深刻な状態となり人生が終わること。 「ファイル開けなくなっちゃったけど、今どんな気持ち?」 とRTしてあげるのが優しさ。 |
VBA ライブ |
ステージ上で気持ちを込めてコードを音読する新しいレビューのかたち。 レビュアーはForループ内ではヘドバンする。 |
VBA 楽しい |
ステマ |
というわけではない。
結論から言うと、VBAとはプログラミング言語「Visual Basic for Applications」だけのものではない。その人にはその人なりのVBAがあり、人の数だけ愛には形がある。
今回は様々な角度からみたVBAを説明しよう!
VenusBlood -ABYSS-
2011年2ちゃんねるベストエロゲーの11位にランクインした18禁ゲーム。
VBAだからといって…
「そんなにIntergerしちゃって本当はLongでDimして欲しかったんだろ?」
「ぁ…ダメっ!そんなFor EachでVariantなんてInしちゃったら壊れちゃうよぉ…」
「うるせぇ!こんなにIsNullさせやがって!今すぐArrayをJoinしてやるぜ!」
「んっ…ダメ…Empty…きちゃうう!らめええええ!Option Explicit!!!!」
→アヘ顔Redim Preserve
みたいな展開はなく、至って健全な姫様触◯調教モノらしいです。
同じVBシリーズとして「VBE」や「VBF」というものもあるらしく興味が尽きません。
VOCAL BATTLE AUDITION
「全人類EXILE化計画」の一種。EXILEのボーカルが一人減ると高確率で開催される儀式。ちなみに選ばれし1~3人くらいだけがEXILEとなることを許されるが、ファイナリストくらいまで残れば派生ユニットとして活動でき、気づいたらEXILEになってる。
つぶやいてる層的にはほぼ若い女性で、おにゃの子がVBAとかやべぇマジ興奮(ハァハァとか思いがちだが、大抵アイコンがEXILEメンバーの顔写真の場合が多く、屈強な男のアイコンが「キャー♪♪VBAのライブ楽しみすぎてヤバイ(*⌒▽⌒*)♡♡♡○○きゅんにあえるぅぅヾ(^∇^*)乂(=^∇^)ツ←おちつけ(笑)」みたいなツイートを見て真顔になる。
さらにチケット当落発表後はソウルジェムが濁りきったっていうかあれもうグリーフシードじゃね?っていう魔女達による僻み妬み嫉み嫌み…ありとあらゆる感情のつまったツイートでエントロピーが凌駕されるので閲覧注意!
VisualBoyAdvance
ゲームボーイやGBAのゲームができちゃうエミュ。限りなく黒に近い黒。これはAUTO。
この意味での略が一番危険で「VBAマジ重いわ」とか「VBA使い勝手悪いんだけど」とかつぶやかれると、それはもうビクンビクン反応しちゃうわけ。
間違えて「重いのはお前のコードだからピザでも食ってろデブ」とかRTしちゃった日にはもうね。
Visual Basic for Application
「ほら、VBAだよ早く!」
「やっぱりやめましょう。こんなこと…ね。」
「ダメだ!!だったらこのVBAちゃんと動くようにしてくれよ」
lヽ ノ l l l l ヽ ヽ )'ーーノ( | | | 、 / l| l ハヽ |ー‐''"l / V | | |/| ハ / / ,/ /|ノ /l / l l l| l V ヽ l ・ i´ | ヽ、| |r|| | //--‐'" `'メ、_lノ| / ・ / | B l トー-トヽ| |ノ ''"´` rー-/// | B | | ・ |/ | l ||、 ''""" j ""''/ | |ヽl ・ | | A | | l | ヽ, ― / | | l A | | !! | / | | | ` ー-‐ ' ´|| ,ノ| | | !! | ノー‐---、,| / │l、l |レ' ,ノノ ノハ、_ノヽ / / ノ⌒ヾ、 ヽ ノハ, | ,/ ,イーf'´ /´ \ | ,/´ |ヽl | /-ト、| ┼―- 、_ヽメr' , -=l''"ハ | l ,/ | ヽ \ _,ノーf' ´ ノノ ヽ | | 、_ _ ‐''l `ー‐―''" ⌒'ー--‐'´`ヽ、_ _,ノ ノ  ̄ ̄ | /  ̄
ごめんなさい。VBA愛してる。
今日の一行VBAプログラミング
Const i As Byte = &H100 'らめぇ!溢れちゃう!オーバフローしちゃうう!!
VBAマスターの朝は早い
朝5時
まだ日が昇る前、VBAマスターはキッチンにいた。
こうして毎日朝ご飯とお弁当をつくるのが日課だと言う。
Q. おはようございます。朝、早いですね?
「ええ、この時間からだと調度いいんですよね。毎日同じメニューなので作る時間も食べる時間も変わらないんです。」
これも効率化の一つだとVBAマスターは付け足した。
五年間毎日同じメニューだと言うのだから驚きだ。
真剣な目付きでレンジのチンを待つ姿勢にプロフェッショナルの気概を感じた。
朝ご飯を食べ終わると真っ先にパソコンを起動する。
ニコニコ動画を開き毎時ランキングをスクロールする。
「この時間帯はすいてるんですよ。…!」
どうやら気になる動画を見つけたようだ。目付きが鋭くなる。
限られた時間の中でお気に入りの動画を見つけるのは非常に難しいとVBAマスターは語る。
「今日はいい日になりそうだ」
6時半
地下鉄に揺られながらVBAマスターは分厚い本を開く。
Q. それは?
「資格の本です。日々勉強ですよ。」
そういって開いた本は『高度専門 システム戦略』
Q. 難しそうですね?
「意味は分からなくてもいいんです。業務に役に立つことはありませんからね。ただ、周りの乗客に『私、いかにも難しそうな本を勉強してます』っていうか、ちょっとした優越感に浸れればそれでいいんです。」
常に周りを意識する。VBAマスターに妥協はない。
5分後、本を開いたままおもむろにまぶたを閉じていた。
結局駅に着くまでVBAマスターが目を開けることはなかった。
8時
出社して会社のパソコンを起動するとすぐにWebブラウザを立ち上げる。
「始業まではまだ時間がありますからね。こうしていつも早めに来てネットで情報収集してるんですよ。」
Q. どんなサイトを見ているんですか?
「主にIT関連のニュースサイトがメインですね。特にこの業界は情報の流れが速いですからね。常にチェックしていないとすぐに置いてかれちゃいますよ。」
そう言いながらも常にモニターから目を離すことはない。
食い入る様にモニターを眺めるその姿は、他者が近づくことを許されないように見えた。
30分後、徐々に社員が入社してくる様子を察知すると、そっと「やらおん!」のページを閉じた。
9時
始業するとVBAマスターはメーラーやExcelファイルを一気に開いた。
そして「Altキー」と「Tabキー」に指を置き、先程のサイトをまた見始めた。
他の社員がVBAマスターの後ろを通りすがると、すでに画面は切り替わっていた。
全く無駄のないその動きにプロの仕事が光る。
Q. 仕事はしなくていいんですか?
「基本依頼ベースですからね。まぁ待つことも仕事っていうか…あ、来ましたね。」
一人の社員がVBAマスターの元へ訪ねてきた。
その険しい顔つきを見る限り、何か問題が起きたらしい。
VBAマスターはその人の机へ向かいパソコンをいじるとすぐに戻ってきた。
Q. 何かあったんですか?
「ローマ字入力できなくなっちゃったみたいです。これもそうですが、画面が逆さまになったっていう人も多いですね。彼らにとってローマ字入力に戻せるのは『神』らしいですけど(笑)」
笑いながらも自然と「Altキー」と「Tabキー」に指が置かれているのはさすがである。
15時
急に何かを思い立ったかのように立ち上がると携帯を持ちトイレへ駆け込んだ
「うちの会社、2chへの書き込み規制がかかってるんですよね。こういうのは早さが大事ですから。」
その行動力の早さにはただ驚かされるばかりである。
改めてプロフェッショナルの姿を見た。
18時
時計を確認するとVBAマスターは早々に退社した。
残業しないのも効率化の一つです。と、VBAマスターは語る。
Q. 今日はこれからどこかへ寄っていくのですか?
「いえ、このまま帰って豚丼食べて寝ます。」
Q. 何もしないんですか?
「起きててももったいないですからね。今日できることは明日やる。寝ることこそが一番生産性を上げられるんですよ。人生の効率化ですね(笑)」
笑いながらもその目に迷いはない。
無駄を省くという果て無き旅。
効率化という先ににゴールはない。
「う~ん、貫くことですかね。自分自身を。流されずに。私はそうやっていきたいと思っています。」
VBAマスターはここにいた。
終
VBAマスターによる「エクセルVBA・マクロ勉強参考サイトまとめ」
仕事で必要性を感じてVBAとマクロを勉強しました。左にあげたような本を見ながら、下記のサイトを見て自分で組みました。
Google
http://www.google.co.jp
ここで解決しない問題はない。
VBAにできてVBSにはできないランキングベスト5
プログラミング言語ランキング世界7位※のVBAが他の言語と比べていかに優れているのか分からせていこうかと思います。「え?Excelとか扱いやすいとこでしょ?はい、論破」とか言わない。
※TIOBEで毎年公開されているランキング(2012年現在)
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
まずは脳内設定でVBAの従姉妹であるVBScript(JSとは幼馴染)
VBSっていうとワンクリックのバッチとかHTMLで<script>したりとか色々と捗るぞってイメージ。あとWScript先輩オッスオッスって感じ。
VBAもVBSもVB派生なんで文法はほぼ一緒。ってことはVBAコピペすればVBSいけんじゃね?うはwww俺天才www→…私ってほんとバカな人は俺だけじゃないはず!
そんなわけでいってみましょう
第1位 外部DLLがよめるよ!
いきなり第1位からってのもあれだけどデクレアねDeclear。よくWindowsAPI呼んだり、FTPしたい時とかなにかと便利なあれ。
なんとこれがVBSではできないんだな、それが!
まぁExcel呼び出してVBAで実行すればいけないこともないけど、自分じゃできないからってVBAお姉ちゃん呼んじゃうVBSマジ可愛い!
第2位 Dir万能説
ファイル検索といえばDir関数。FileExists?はぁ?なにそれ「*」使えねーじゃん!ワイルドカード使えないのはFileSystemObjectまでだよねーwプークスクス
ってことでDirもVBSじゃ使えません。
「じゃあどうすればいいの?」
「まず予めRegExpオブジェクトを生成して検索したい文字列を正規表現でパターンに保存します。次に対象のフォルダのフォルダオブジェクトを取得してFilesプロパティからFor文で一つ一つのファイルオブジェクトを取得します。取得したファイルオブジェクトのNameプロパティでファイル名を取得したら、RegExpオブジェクトのTestメソッドでパターンに一致するかどうかが調べます。一致した場合はそれが取得したいファイル名なのでそれぞれ処理を行います。」
「え?」
「まず予めRegExpオブジェクトを生成して(ry」
「あ、ハイ…」
第3位 GoTo文が使えない
そうなんです。VBSだとGoTo文が使えません。
「それっていいことじゃない?」と思ってる人は「On Error Go To」も使えないと知って泣けばいいよ。
そもそもエラー処理が必要ようなレベルのものをVBSで作るってのが間違ってる!俺たちはエラーで止まることを…強いられているんだ!
第4位 変数の型なんてなかった
VBSではすべてがVariant。もう型に縛られる必要なんてありません。
うん、未来いってるね。いいと思う。でもType(構造体)が使えないのはどうかと思うなー。え、Class使えって?…うん、未来いってるね。
第5位 Select文のToとかIsとか
いやー細かいことなんだけどVBSだとSelect文のCaseでIsとかToとか使えないんだよねー
まぁIf文にバラせって話なんだけど、なんていうか…美しさが足りない!
はい、ということでVBAで使えてVBSでは使えないものをあげてみたけど意外と知らない人もいるんじゃないでしょうか?きっと合コンとかでネタにすればウケること間違いなし!
逆にVBSにできてVBAにできないことはほぼないです。さすがVBA!VBSにはできないことをやってのけるッ!そこにシビれる!あこがれるゥ!
あとVBAとVBSの差はM$の公式ページに詳細がのってます↓
http://msdn.microsoft.com/ja-jp/library/cc392401.aspx
今日の一行VBAプログラミング
If "VBA" < "VBS" Then Debug.Print "実はVBSの方がすごい!"
はてなブログをはじめよう!新春キャンペーン
初めまして。VBAマスターです。
最初なんでこのブログについて説明します。
あ、タイトルはなんかへんなキャンペーンに乗っかってみた。
えっと、欲しいものはクミンシードです。
このブログについて
このブログは、『これからVBAを始めよう』という初心者の方から『VBAなら俺の隣で寝てるよ』っていう上級者の方まで理解できるようになるべくVBAに関して触れないようにします。
だから一から学ぼうとしている人とかバグで詰んだ人とかには糞の役にも立ちません。
つーか悪いこと言わないからVBAを一から学ぶなんてやめとけ。VBAなんていくら頑張っても『すごい事務のおばちゃん』くらいにしかなれないから。とりあえずPHPとかにしとけって。PHPよく分かんないけど。
あとバグで詰んだやつはあれだ、あれ…参照設定とか、その辺だよ。きっと。たぶん。
あとtwitterもはじめたんでVBAで何か分からないことや詰まったことがあったら、下のアカウントに気軽に質問してくれれば適当に答えるからそのあとググれ。
'今日の一行VBAプログラミング
Public Const VBA = "ダメ。ゼッタイ。"