2011年12月17日土曜日

VBでIEを操作する方法に対するメモ


今まで、いくつかVB.NETでIEのオブジェクトを作成して
ページ遷移していくプログラムを作成した。
その時に、コントロールを操作する方法がいくつかあることは分かった。
正直なところ、VBS、VBA、VB.NET、JavaScript等色々
ごちゃまぜになっていてまだ整理しきれいていない。

①objIE.document.body.all("id")
対象コントロールのidが既知の場合は、
これで直接コントロールを触ることができる。一番手っ取り早い。
ことが多い。
※nameでも大丈夫だった気がする(未確認)

②objIE.Document.getElementById("id")
①とほぼ同じ。

③objIE.Document.getElementsByTagName("a")(i)
これはすべての対象タグを探して、目的となるものを探す方法。
注意すべきは、一意になるようにIf文を書くことぐらい。

例:innerhtmlが"一覧"のaタグを探す例。
For i = 1 To objIE.Document.getElementsByTagName("a").Length -1
If objIE.Document.getElementsByTagName("a")(i).innerhtml = "一覧" Then
Exit For
End If
Next

同じようなことが
getElementsByClassName
getElementsByName
でも可能なはず。

④objIE.Document.Forms(0).Item("id")
formが一つしかない場合は①とほぼ同じ。
複数ある場合は、インデックス注意。
※nameでも大丈夫だった気がする(未確認)


とまー色々な手段で対象コントロールにアクセスすることができるのだが、
適切に操作できるかは別問題。
色々試してみるのが一番。

この前submitがうまくいかないことがあった。
<input type="submit" name="submit" value="検索" type="button">
といったタグがあるとする。
普通は
objIE.Document.forms(0).submit()
で問題ない。
通常はポストパラメータにtype="submit"コントロールのnameが渡されるのだが
上のコードだと、そのnameが渡されなかったということがあった。

次に
objIE.document.body.all("submit").click()
で試してみたら、clickはメンバーにないという旨の例外が発生。

最終的に
objIE.document.getElementsByTagName("input")(i).click()
で解決できたので良かったんだが、
この手段をすっかり忘れていたので、その時は非常に焦った。

という訳で、ダメなときはいろいろな方法を試してみるに限るというのがオチ。

でも、なんでページによって違いがあるのかがよく分からん。

2011年11月27日日曜日

バリの宗教事情


ヒンズー教が80%ぐらいで、
ガネーシャという半人半象の神様が
信仰の対象としてもっともポピュラー。
ガネーシャは知恵の神様。
小学校は当然として、いたる所にその象があった。

毎朝、15cmぐらいの正方形のトレイを葉っぱか何かで作って
お菓子や花、線香を合わせてお祈りするのが習慣みたいで
店の前やタクシーだと車のダッシュボードにそのトレイがあることが多い。
お祈りはするみたいだけど、道端に踏まれたあとのある
トレイが至る所にあるので、本当に大事にしているのか
と疑問に思う。

上は善(台座とか?)、下(地面とか)は悪とみなしていて
その両方を祈っている。
両方ともなくてはならないからとか言っていたかな。

葬式関係だと、
亡くなると一旦土葬にして、
何年かたってから火葬にすることが多い。
火葬後の遺骨は海に散骨することが多い。
なので、日本のようなお墓はない。

といった、普段接することの少ない
ヒンズー教のちょっとした知識も仕入れることができた
今回の旅行でしたとさ。

バリの交通事情


バリの交通事情で面白かったのがいろいろあった。

・バイクの数が多い。
・バイクがバイクには4人まで乗ることができる(合法)
大体は、子供-大人-子供-大人といった感じで乗っていることが多かった。
バイク一台で家族で移動できるようにという理由かららしい。
・バイクが中学生ぐらいから乗り出すみたい(合法ではない?)。

・車線の概念がほぼない。
片側二車線でも堂々と真ん中を走る車が多い。
そのほうがバイクを追い越しやすいからだと思う。
幻の三車線目みたいのが、3つぐらいある。

・車間距離が狭い。
狭くしないと、すぐに他の車・バイクが入ってくるから仕方がないのかな。

あとバイパスとかに合流するときとか、歩行者が道を渡るときは手で合図して、
減速してもらうのが一般的みたい。

あとは一方通行が多いので
どうしても遠回りになりやすい。

タクシーは安いけれど、今回は全然違う場所に連れていかれたので、
ちゃんと日本語を話せる人のほうが安心できるかも。
お金はともかく時間がもったいなかった。

バリ旅行 5日目


AM01:00。
まだ出発できない。
レストランは閉まったので
そこいらへんの地べたでたむろする。
あまりに眠いので床で仮眠。
とちゅう小さい虫に這われて起き、
なかなか不快だった。
同じように寝ていた人は、
その状態で夢を見てしまったらしく
もっと悲惨だったらしい。

AM03:30。
とうとうキャンセル。
成田行き以外の便はすべて主発済み。
航空会社の指示によってホテルへ移動。

AM04:30。
サヌールにあるホテルへ着くも
航空会社から何も連絡が入っておらず
部屋の準備はしていないとのこと。
ロビーには大量の人。
3.11の帰宅難民状態。
居合わせた日本人女性の方がホテルと話を
つけてくれたみたいで10部屋確保できたらしい。
会社の同期があまりに体調が悪かったので
部屋を借りることに。
子連れや妊婦・体調不良の人に優先的に部屋を割り当てたはずなのに
部屋はあまったみたい。
このあたりは日本人って感じがした。
んで一番フロントに近かったからといった理由もあり
同じ会社の人も同じホテルに部屋をとることができたみたい。
団体だったので助かった。
3部屋に12人がわかれて泊まることに。

仮眠後、朝食へ。
こっちのホテルの朝食のほうが美味しかった。
パパイヤを初めて美味しいと感じた。
朝気がついたのだが、他のお客さんは別のホテルに
行ったみたいだった。

13:00には出発する予定との連絡があり
10:00まではホテルですごすことに。

飛行機に乗ってからまた待たされたりしたけど
以降は意外とスムーズ。

14時間遅れの22:30頃に成田に到着。
全員成田発の終電を逃す。
さすがに航空会社がバスを準備してくれたので
東京駅→新宿駅と
行くバスに乗車。
新宿駅に向かう途中で運転手が新宿の場所を
よくわからなかったみたいで気がつけば池袋に。
これでよくバスの運転手が務まるものだ。
中央線の終電に間に合わないので、
新宿の前に中野で一旦停車。
結構、降りる人がいた。
私は普通に新宿で降りて、最寄り駅までタクシーで帰宅。
これは初めてだったので、どれぐらいの金額になるのかが
わかって良かった。

こんなおまけ付きのバリ旅行でしたとさ。

後日談
今回は、出国手続き後にキャンセルになったために
HISの保険が使えないことが判明。
どこの旅行会社の保険も同じなのかな?
でも迷惑料として、航空会社から全員にお金が支払われるみたい。

バリ旅行 4日目

この日が実質最終日。
昨日予約したスパへ行くも、
マッサージが下手くそで惨敗。
2時間も頼むんじゃなかった。
日本で行っている整体の人が神に思えた。
今度から海外でマッサージ・スパに行くとしても
30分とか短めなコースにしておこう。
日本の相場の半額以下だったと思うが、
中身も半分以下って感じ。
完全に外れだった。
店のパンフもどっか行ってしまった。
帰ってきてから他のマッサージに行った人からも
話を聞いたんだけど、その人も外れだったみたい。
もっと調べてから行けばよかった。

スパ終了後、なぞの体調不良。
お昼はピザハットへ。
ピザとアボガドジュースを頼む。
アルコールはなかった。
ピザは1~2人向けと合ったので、
頼んだら直径20cmないぐらいの大きさでちょっとがっかり。
どうりで250円と安いわけだ。
一緒に頼んだ、アボガドジュースは濃厚で
胃にがっつりと溜まる感じ。疲れる。

またしても遺跡へ。

夕日が見える所に行ったが、すごい景色は良かった。
ここで食べた夕食は体調不良のため、
あまり味わえず。残念。
ホテルに戻る車の中で体調回復。

ホテルで後半組と一旦合流して、記念撮影。
そして空港へ。
あまりにも汗をかいて気持ちが悪かったので
空港でバリっぽいTシャツ購入。
ついでにストール購入。
手続きをすべて終えたので、いったん自由行動。
DFSリベンジ。
ここでは普通に円を使える!
なんとか良い感じの時計をゲット。
後で調べたところ、日本の定価の半額ぐらいで買えたみたい。
他にも実家用のお土産をいくらかゲット。
あとは、時間まで待つだけと思い、
ゲートが表示されるモニターをみたところ
18:30に出る便がまだでていない。

※デンパサール空港では手続きをした時点では、
どのゲートに行けば良いのかは決まらず
1時間前にモニターで各自確認する仕組み

このとき、22:30ぐらい。
我々の便は00:50発の予定。
ASEAN会議が終了し、各国要人が帰る時間帯にあたってしまったみたい。
まー待っていれば帰れるだろうと思い
時間を潰すためにレストランへ行き
晩飯をたべる。

バリ旅行 3日目


この日の午前中はフリー
という訳で買い物ツアー。
クタの街をブラブラすることに。
タクシーに乗ったはいいものの行きたい所と違う所に
連れていかれてしまった。
しかも連れていかれた所は昨日いったお土産屋と大差ない感じ。
んで街中に戻る。
ASEANの国際会議がバリで行われているみたいで
道がものすごく混んでいる。
所々行けないところもあるみたい。

街中を歩いてみるもののあまり面白そうな店はなかった。
どうせ行くならデンパサールに行ったほうが良かったかも。

ブラブラしていたら、現地のジョンという人と遭遇。
彼の案内でクタを回ることに。

まず、BALI-JEPUN SILEVER COLLECTION というガムランボールのお店に。
彼とそこの店員曰く、ウブドにあるのは本物とは言えないらしい。
実際、連れていかれたお店にあるガムランボールは
昨日購入したところと比べて、細工がすごく細かい。
価格も桁が変わって~25000円ぐらい。
日本の芸能人も来たことがあるみたいで
石田純一と桐谷健太の写真があった。
ガネーシャのガムランボールが売れ筋らしく、
一緒に行った人が買っていた。
自分は被るのも嫌だったので、14000円のボトル型のものを購入。

バリで仕入れたガムランボール情報のまとめ。
・お守り。特定の願い事にご利益があるわけではなく
自分が願うものに対してご利益がある
・DreamBallというらしい。
・現地の人でガムランボールという呼び名を知らない人も結構いるっぽい。
  現地語で、ベラとか言っていた気がする。
・下に置いてはいけない。
・帰国時、海を渡るときには身につけては行けない。
・帰国後、身につけたら他の人に身につけさせてはいけない。
特に最後3つはガイドブックなんかには
なさそうな生情報な気がしてありがたかった。

あとは一緒にいた人の要望で
普通のスーパーに行きお菓子を買って
木彫り象が豊富なお土産屋さんに行って
スパへ行って予約。
2時間で一人4500円ぐらい。

今回の旅の2つ目の目的である
なんかいい感じの時計を買うためにDFSへ。
DFS内にレストランがあったので、
寿司・カツ丼を食べに行く。
意外に普通だったが、ミーゴレン・ナシゴレンに
ちょっと飽きてきていたので、
よいリフレッシュになった。
でも頼んだサーモンいくらロールのいくらが粒っ子だったのが残念。
充電して買い物開始。
欲しいものが見つかったので、
さっそく円をドルにすべく両替所に。
両替するには円→ルピア→ドルとしなくてはいけないらしく、
結果的に1ドル100円ぐらいになる計算。
なんか日本で買うのとあまり変わらないように感じたので
時計購入を断念。

ホテルに戻り、二日目のツアーへ。
ウルワトゥのケチャックダンス鑑賞。
旅行の第一の目的がこれ。
あっという間の一時間で面白かった。

その後は、シーフードBBQへ。
初日に行った、海辺レストランのあたりへ。
同じような店が海岸沿いにズラーとあるところで
初日とは異なる店へ。
特においしいわけではなく、
踊り子さんと写真をとって終了。

ホテルへ戻り、せっかくなのでこっちのキャバクラへ。
まー色々話せておもしろかった。
ここでも、店のひとにセーリアスとか言われてしまった。
料金は2時間でチップ込で8000円ぐらい。
普通に2時間で終了。

おとなしく就寝。

2011/12/17追記
私が購入したガムランボールのお店には、
多くの日本人が同じような手口で行っている可能性が高いようです。
品質については行った本人が見極めてください。
帰ってきてから、考えるにクタで声を掛ける人の言うことは
基本的に信じないほうが良いかもしれません。





バリ旅行 2日目


二日目
ネットで評判だった朝食ビュッフェ。
評判の割には普通だったかも。

この日はツアー。
遺跡
ここ以外にも駐車場から遺跡に向かうまでの物売りがすごい多い。
現地っぽい帽子とかシャツから、普通の自転車の置物や
バナナまで、車に入ってもしつこく声をかけてくる。
これで生きていけるぐらいには稼いでいるんだろうが
日本では考えられないなーと


キンタマーニ高原へ。
少し曇ってきたけど、良い景色。
ここで食べた料理が旅行中では一番おいしかった。
ミーゴレン、ナシゴレンあたりが

全員で土産屋さんへ。
後でわかったんだが同じような土産屋さんがたくさんあった。
会計時、5%オフにしてくれたけれど、
社長の交渉により20%オフに。
紅茶やコーヒーをゲット。
でも買える時の定員の表情がものすっごく微妙だった。
超アウェー感がでてた。

その後、同じウブドにあるYANYANというガムランボールを
作成・販売しているお店へ。
めっちゃ多い。
友達用土産と自分用で6個ゲット。
あまり値切れなかった。

他にも二ヶ所寄ったけど、割愛。
ツアーはここで終了。

晩飯は若いの4人でいったんケンタで軽食を取る。
ここでジゴロと初遭遇。
やつら日本語すごいうまい。
こりゃー引っかかる人もいるはずだなーというぐらい
会話がうまかった。
会話のうまさは見習わないと。
サッカーのインドネシア対マレーシア戦やってた。
東南アジアカップみたいなものがこの時期に行われているらしい。
マレーシアのほうが強かった。

その後、ハードロックカフェへ。
22:30から生バンド演奏が始まるのだが
どれぐらい混むのかわからないので、
大分早く店へ。

日本で食べるのとあまり変わらない金額。
カールスバーグ500円。
カクテル1杯900円。
ハンバーガー1500円。
味は普通。
バリの飲めるところだと、ビンタンビール以外は
ギネス、ハイネケン、カールスバーグをおいてある所が多い。
店内にはビートルズ縁のアイテムなんかを展示してあった。
ここでもサッカー観戦。
そして飢餓をなくそうチャリティグッズを勧められたので購入。
22:30過ぎまでいたけど、生演奏はあまり面白くなかった。
多分、もっと遅い時間に行ったほうが良かったかもしれない。

バリ旅行 1日目


移動。
手続きをすべて終えて、あとは乗るだけ。
暇つぶしにレストランへ。
平日昼から飲むビールはうまい。
時間になったので、機内へ。
無事離陸。
機内はめっちゃ寒い。
バリ仕様の服装で乗った人はつらそうだった。

そんなこんなで、機内食はうまいし、
みたかった映画を見ることができて割りと満足

無事に現地に到着

暑い。
荷物を受け取るといきなり人が来て荷物を運び出した。
空港の係の人がやるもんだと思い、
任せたら両替所に連れていかれた。
これが噂の強引チップ要求ポーターか。
ほぼ全員やられたらしいが、チップを払ったのは一人だけだったみたい。

そんなこんなでホテル到着。
部屋はなんと、セミダブルぐらいのベットが2つ。
隙間なしにくっついています。
わー無駄にラブラブ仕様。
男二人でこれはげんなり。

落ち着いたらレストランへ。
場所はガイドに任せてあった。
最初に行ったところは、砂浜にあるレストラン
ただし高くて辺り一帯停電中。
明かりはキャンドルのみ。
店員曰く、「波の音も聞こえるし、ロマンチックで良いでしょ?」
我々、「男だらけでそんなの求めていない!!!」
波の音は聞こえるのだが、
ドッパーン!!!
って感じの音でロマンチックというよりも怖い。

んで結局別の店へ移動。
ついたのは中国料理。
バリにきて初めて食べるのが中国料理。
でもうまかったので良し。
特にフルールジュースは濃厚でうまかった。
疲れたときには良い感じ。
サービス料や消費税を抜くと、
食事代は日本の半額ぐらいという印象。

初日は夕食後、ホテルに戻りすぐに就寝。

2011年10月6日木曜日

ASP.NETはじめます

やっとASP.NETをがっつりとやる機会を得ることができそう。


ASP.NETを詳しい人が周囲にいないので、
自分で調べて技術力を確立していくのが、一番良さそう。

指示されたことを実装するだけではなく、
より良い方法を提案することができるように高めたい。

新規案件でもあり、非常に楽しみだ。


MSDNのCodeRecipeで調べたものの、ページ遷移方法が
四種類ぐらいあるみたいで、それぞれ特徴が違うみたい。
どれを採用するのが一番良いのかは、まだ分からない。

見た目と画面遷移だけ実装したのものは、
明日中に作成しよう。

2011年10月2日日曜日

新米来たる

もう10月になりましたねー

といった所で、実家から新米が届きました。
感謝感謝。

さきほど、米の具合を見てみたけど去年よりは良さそうです。
砕米の量が少ないし、未成熟米の量も格段に少ない。

今年は放射線量が話題になりましたが、
問題がなかった様子(※)

というわけで、安全でおいしい米ができていると思います。
明日の朝が楽しみ!


※県産米の放射性物質調査について
http://www.pref.akita.lg.jp/www/contents/1314350688752/index.html



2011年9月10日土曜日

VBSの印象

VBScriptを用いる開発がそろそろ終わるので、
使ってみた印象を今後のために書いておこう。

Good!!!
・作成するのにハードルが低い・分かりやすい
・バッチファイルよりは分かりやすい雰囲気
・Windowsだったら何もインストールしなくてもOK
・かつ古いOSでも大丈夫なので、OSが不揃いな顧客に対しても使いやすい

Bad!!!
・gotoが使えない
・try,catch,finallyに相当するものがない
・変数宣言時に型が決まらないので、予期しないキャストエラーが起こりやすい
・便利なエディターが少ない
 →割と優秀なほうだと思う、VisualStudio2008で開発したものの、
コード整形・定義移動・構文エラー指摘ができないのにはまいった。
・String.Formatメソッドに相当するものがない
・証明書をアタッチできない

まとめると、技術的・機能的な難点が多いけれど
現実的なところ(?)では利点があるようなきがする。
こんな感じ。

2011年9月3日土曜日

19box.me

favstarを覗いていたら、19box.meというサイトが紹介されていた。

適当なアーティスト名を入力すると、それに近いアーティストを
採取してYouTubeを自動で再生し続けるというサイト。


試しに"いきものがかり"と入力したところ、
本人とAKB関連の曲しか出てこない。
これが月曜日ぐらいの話。

今日も同様にやってみたら
ノスタルジアの次はELTだった。
ちょっと安心した。

その時によって結果は違うみたい。
自分の聞く音楽を広げるのに役に立つかもしれないから
料理をしているときなどの垂れ流したい時には
なかなか良いかも。

YouTubeから適当にもってきて表示するので
たまに本人ではなかったり、ライブ音源、テレビ音源などもありそう。

http://19box.me/

2011年8月28日日曜日

バック購入

今日は先週買って裾直しをお願いしていたボトムスを受け取りに新宿に。

ついでに普段自分が使用しているバックは買ってから
5年ぐらい経っているので、いい加減買い換えようと色々と見て回ってみた。

久しぶりに新宿のマルイメンに行ってみて
気に入ったボディバック購入。

買ったのはDEMAという店のこんな皮バック。

















ほとんどの商品を試させてもらった感がある…
感謝感謝。

そろそろ秋物も買いに行きたいけれど、
その前に仕事着のワイシャツも買っておかないと。



2011年8月27日土曜日

VBScriptのエラー処理

最近、業務でVBScriptを使用しているのだが、
普段使用しているC#やVB.NETと比べて機能が少ない。

特に今悩まされているのが、エラーハンドリング。
今までは集約例外処理でキャッチしていた部分を、
VBScriptだけで実装するのは難しい。

普通はtry&catchやgoto error みたいな方法で
実現できていたのだが、その方法が見当たらない。

なので確実にキャッチすることができない
→finally処理ができない
→ファイルが開かれっぱなし、オブジェクトが残りっぱなし、
 プロセスが残りっぱなし。
といったことがありうる。

今自分が思いついているのはこの程度のこと(動作未確認)。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

On Error Resume Next

'例外が起こりそうな処理
If CheckError Then
WScript.Quit()
End If
'例外が起こっていないときは、以降の処理を継続

'####################################
'# エラーが発生しているかを確認し、
'# 終了前の必須処理を行います
'####################################
Function CheckError()
CheckError = False

If Err.Numner <> 0 Then
'オブジェクトの開放などの
'finally句で行いたい処理を実装
CheckError = True
End If
End Function

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


でもこれだと、自分が想定していない例外が発生したときに
エラーハンドリングできないという欠点がある。
これも克服できる良い方法はないものか。
もう少し調べたり、考えたりしよう。


初投稿

今まで利用していたWebサービスをなるべく、Googleに集約しよう
プロジェクト進行中なので、こちらにもBlogを作成してみた。
こっちには何を書いていこうかねー