2017年12月22日金曜日

EXCEL+VBAでIEを自在に操る、IE捕捉とページ解析

mugi-chan
mugi-chan powered by gimp on gentoo
社内システムをIEで巡回しつつ、日常業務をこなす際、ワンパターンな操作はEXCEL VBAにやって貰うと、ラクチンである。
そんなときに、とても簡単なのは、社内システムにログオンした後のIEを捕まえて、意のままに操作する、というアプローチだ。ま、たんにログイン処理のセキュリティ突破が大変なので、回避するのが早道というだけだ。
まずは、起動中のIEを捕まえるコードは、以下のとおり。

Sub GETIEpage()
  Dim objWindow,objShell,objIE,e,s As Object
  Set objShell  = CreateObject("Shell.Application")
  For each objWindow In objShell.Windows
     If TypeName(objWindows.document) = "HTMLDocument" Then
         Set objIE = objWindows
         Debug.print objIE.document.Title
         If objIE.document.Title = "攻略ターゲットの画面名" Then
            Exit For
         End  If
     End If
  Next
End Sub
次に、目的のページで「検索ワード」を入れたり、「検索実行ボタン」をクリックする訳だが、このためには、ターゲットのページを解析する必要がある。それを可能にするのは、IE の開発者向けF12キーの活用である。IEのツールタブにある「F12キー」を押下すると、ブラウザの画面の下半分に以下のデバッグ画面が登場する。
IE-F12 KEY Screen
F12キーにより、攻略ターゲットの画面のINPUTタグ(検索キーワードや検索ボタンなどはINPUTタグで記述されている)の名前(name)を見つけたら、あとは、例えば、以下のコードみたいに、検索ワードを設定し、検索実行ボタンをクリックさせれば、あっという間にIEを自在にあやつるコードの完成だ。探している部分がハイライトされるように「□に矢印」マークを有効にしておくのがミソだ。そして、GetElementsByTagName関数にINPUTを指定すると、INPUTタグが上から順番に見つかるので、F12キーでみつけた名前になったら、クリック(e.Click)すればよい訳だ。簡単でしょ。このGetElementsByTagName関数をFor Eachで回し、特定のワードでオブジェクトを見つけて.Clickする必勝ループをぜひ、モノまねしてくださいね
For Each e In objIE.document.GetElementsByTagName("INPUT")
   Debug.Print e.Name
   If e.Name = "Searchbutton" Then Set s = e  /* keep s the click button object */
   If e.Name = "SearchWord" Then
      e.Value = "じゃがじゃが" 
      s.Click
   End If
Next
ここまでのコードを作り込むのに、使ったのは、「ブレークポイントの設定」と、「Debug.print」、「ウォッチ式による確認」という、 EXCEL VBAにおけるデバッグの唯一無二の三点セットだ。

さて、ここで、ちょっと一息のコーナーだ。
いつかの朝日新聞web版の「心にガンジー、動きは古武術・・・」での言葉が、とても響いた。
- 明日、死ぬかのように生きよ。永遠に生きるかのように、学べ。Live as if you were to die tomorrow, learn as if you were to live forever.  ・・マハトマ・ガンジー
-与えられる ものは有限。求めるものは無限。Given is limited,seeking is infinite
 「与えられたことで満足するのではなく自分で求めていく」。・・・小平 奈緒

 人生は短い。自分がやりたいように生きたい。地味に、工夫しながら、着実に。



2017年12月10日日曜日

gentoo OpenRC xfce4 shutdownボタンを有効にする

gentoo OpenRC xfce4 shutdownボタンを有効にするためにはdbus,ConsoleKitパッケージを入れる。
emerge --ask dbus
emerge --ask consolekit
rc-update add dbus default
恩田陸の「蜜蜂と遠雷」では、トタン屋根を叩く雨音の描写が妙に印象に残っている。

2017年12月4日月曜日

gentoo snippets

- PostgreSQL useful commands
-- /etc/init.d/postgresql-9.6 start
-- psql -U postgres -ddb1
-- SELECT bunrui,SUM(tanka1) AS uriage,SUM(tanka2) AS shiire FROM table1 GROUP BY bunrui ORDER BY uriage DESC ;
--  \q
-- etc/init.d/postgresql-9.6 stop
- Kernel  reconfiguration commands
-- cd /usr/src/linux
--  make && make modules_install
-- make install
- install package
--  etc-update
-  rc-update add dbus default




2017年11月19日日曜日

おもしろすぎるgentoo

mugi-chan
mugi-chan
FMV BIBLO NB50Sにgentooを入れ、早や1ケ月くらいになるが、実に早い。快調すぎる。

2017年11月16日木曜日

FMV BIBLO NB50S gentoo+xfceを有線で入れ、その後、無線(wlan)に変えたよ。

まず、内蔵HDDがsda(SCSI)ではなく、hda(IDE)と認識されたため、 DISKがATAとして検出されるようにmake menuconfigを何回もやり直した。ATA がキーワードだ。
次に、グラフィックカードで検出されず、なかなか、X(xfce)の画面が出てこなかった。
ここでも、make menuconfigを何遍、やったのか覚えていない。
Grafics support---->での ATI radeonがキーだった。これでXが立ち上がった。
ここまでは、有線でやった。最後に、無線である。
Device Drivers → Network device support → Wireless LANで
<*>     Atheros 5xxx wireless cards support                     
  │ │    [*]       Atheros 5xxx debugging                                  
  │ │    [*]       Atheros 5xxx tracer
で動いたように思う。
gentooは、ひとつ、ひとつ、自分でやらないと動かないので、謎解きクイズのようで楽しい。実に面白すぎる。
今はそこそこ、サクサクとgentooが動いている。

昨日、ET/IoT 2017の展示会に出かけた。クルマの自動駐車でアラウンド・ビューのクルマ屋根はどうやって撮ってるの?と、アラウンド・ビューを展示していた方に聞いてみた。
すると、あれはハメコミのクルマの屋根の画像だよと教えてくれた。なるほど。

2017年9月18日月曜日

slackware 14.1のカーネルをupgradeしようとして溝にハマったがリガバれた話

kernel-huge-3.10.17にセキュリティパッチが出ていたので、slackpkgでupgradeしようとしたところ、見事に溝にハマってしまったが、なんとか、半日でリカバッた。
まず、slackpkg upgarde kernel-huge-3.10.107*をあててみた。
ところが、GRUBの修正(kernel-3.10.17をkernel-3.10.107にする)のを忘れていたため、そんなカーネルはないと言われた。
次に、GRUBを修正しても、3.10.107のライブラリ(kernel-module-3.10.107)がないよと、また、怒られた。そう、kernelは、kernel-moduleもセットでupgradeしないとダメなようだ。
uniqlogirl2018
uniqlogirl2018 
実は、最初にカーネルはないと怒られたときに、元のkernel-huge-3.10.17に戻すために、kernel-huge-3.10.107をremoveすればいいのかもと勝手に解釈し、slackpkg remove kernel-huge-3.10.107を実行したところ、見事にカーネルがまったくないという最悪の状態になり、ムリヤリに起動すると、パニックが発生するようになってしまった。
さて、これから、どうするんだよー。再び、長い時間かけてインストールするのかよーと落ち込んでしまった。
ところが、kernelがないのであれば、コピペしてやればいいのでは?と閃いた。
そこで、別のlinux(puppylinex vivid)を起動し、slaclware prrojectのホームページから、slackware 14.1のカーネルのパッケージのバイナリパッケージtxzをダウンロードし、テキトーな場所に解凍し、無理やり、slackwareのbootディレクトリにコピペしてみた。
そして、祈りつつ、GRUBからslackwareを起動してみたら、うまく、起動できたのであった。やれやれだ。カーネルもコピペできるのだ。
今回の事件での教訓は、2つ。
- kernelはkernel-moduleとペアでupgradeせよ。
- kernelはコピペーできる。だから、万が一のために、リカバリ用に別のOSをインストールしておけ。おすすめは、インストールが簡単なpuppylinux vividだ。

2017年9月7日木曜日

仕事で覚えたEXCEL小技〜VLOOKUPを使う前に1回セーブしておけ

何時間もかけて作成したEXCELの文書。そして、VLOOKUP関数を使って、編集しようとしたとき、ぐるぐるまわる二重丸の砂時計がでて、応答がなくなることがある。マイクロソフトのバグくさいのだが、折角、そこまでにlこ作りあげてきたEXCEL文書がパーになってしまう。そこで、VLOOKUP関数を使う場合、その前に一度、上書きすることを忘れるな。地味なセーブが自分を救うのだ。

原田 マハの「楽園のカンヴァス」は、不思議な魅力を放つ、アンリ・ルソーの絵画を巡る物語。ピカソやルソーが惚れたヤドヴィカが出てくる、7章からなる作中の物語が物語を彩り、ルソーの絵を眺めてみたいという気持ちにされられた。この春のイチオシだ。