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章からなる作中の物語が物語を彩り、ルソーの絵を眺めてみたいという気持ちにされられた。この春のイチオシだ。

2017年8月29日火曜日

仕事で覚えたEXCEL小技〜VBAデバッグは泥臭くブレークポイントを使う

 EXCELのVBAでプログラムを作成した後、さっそく、動作させてみるが、思ったとおりに動かないことが多い。そこで、どうやって、確認するのか、簡単なのは、ブレークポイントを適当に設定し、止めながら、確認するという方法だ。
 ブレークポイントの設定、解除は右クリックでできる。止めたいとことで、右クリック、解除するには、再びクリックだ。実に泥臭いが、一番、簡単にできる。恰好悪いけど、これでいいのだ。

2017年8月19日土曜日

さらば、空中スイカ

 ベランダでのスイカ作りは、3年目。今年で卒業とする。今年は、ソフトボールからハンドボールくらいの小玉スイカ4個を収穫できた。つるは、4本、別々の株。
 昨年、スーパーで買った8分の1大玉スイカのタネから育てた。コツは、苗を室内で育てるということだ。4月にスイカの芽を出させる。タマゴパックのへこみに土をいれて、種を植える。水をかけて、発芽を待つ。芽がでたら、戸外でやると、せっかくでた芽は寒いので、へたれてしまう。必ず、「室内で、双葉を出し、ミツバ、四葉と、背丈が10センチくらいになるまで大きくさせて、ベランダ(そと)へデビューさせる。」ここまでくれば、5割くらいできたも同然だ。
 次のポイントは、「雌花」を出すこと。これは、待つふだけでいい。最初、雄花ばかり咲く。暫くすると、スイカの子供を抱えた雌花が出てくるので、そしたら、雄花の花を取り、真ん中にある花粉を芽版の真中にチョンチョンとして、人口受精してやる。ハチがこないベランダでは、自分がやるしかない。

そして、40から50日でスイカの玉が大きくなり、食べれるはずだ。スイカの大敵は、悪天気だ。特に、台風や台風クラスの風雨だ。
 最後のポイントとして、ベランダなので、テキトーに「紙ひも」を張り巡らせ、紙ひもにツルを絡ませて、ベランド床のコンクリートでツルが傷つかないようしている。いわゆる、「紙紐空中西瓜」である。
 意外と、巻きつくんですよ、これがね。

2017年7月8日土曜日

人生フルーツ

 おととい、会社を休み、人生フルーツというドキュメンタリー映画を近くのシネコンで観た。津端修一さん、英子さんご夫妻が、自宅の果樹の雑木林での半自給自足的な日常を描いた作品。最初は何も木も草もない造成地が、いろいろな種類の果樹の森になっていた。くるみはまんまるなアボカドみたいで、果肉をそいで、種の部分にくるみができているのを初めて知った。そんな、風に木々の葉がすれる音を聞きながら、うたた寝ができる家に住みたいと思った。
 お金ではなく、自然と向き合う、自分の時間を大切にされているように感じた。
修一さんの最期は、ある日、草むしりをした後、昼寝をする。そして、起きてこなかったという。 まったく、静かな、人生の終わり方である。そのようになりたい。
flying girl


2017年6月20日火曜日

仕事で覚えたEXCEL小技〜EXCEL VBAで、少しずつ、考えながら、作る。

 EXCEL VBAでプログラムを作るとき、わかっているところから作り、大きく育てていくと意外とうまくいく。最近、会社のワンパターン作業をEXCEL VBAで自動化した際、この手法を採用した。ここで、便利なコマンドが「Debug.Print」だ。
 Debug.Printは「イミディエイト・ウィンドウ」というデバッグ用のVBAのウィンドウに変数の値などを出力してくれるので、ちょっと確認したいときに非常に役に立つ。
 例えば、こんな感じで使う。
   クロス集計のEXCEL表はあるんだけど、元データがない。そこで、元データを生成するコードを作るケースを想定してみよう!
 ・クロス集計表の行は3行目から始まり、53行目で終わる。変数iでループさせる。
 ・クロス集計表の列は5列目から始まり、105列目で終わる。変数jでループさせる。
 ・クロス集計表の銘柄は、各行の2列目にある。3列目、4列目はブランク。
 For i=3 to 53
     NAME = Cell(i,2) .Value
     For j=5 To 105
       ANGLE = Cell((3,j) .Value 
       VALUE = Cell(i,j) .Value
       Debug.Print NAME,ANGLE,VALUE 
     Next
   Next
  そして、ブレークポイントを設定、解除して、デバッグしながら、全体を仕上げていく。

 ここで一息のコーナー。
mugi-chan

 津村記久子の「ウェストウィング」。古いビルに通う、OL 、小学生の男子、そして、サラリーマンという3人の物語。大雨の夜、なぜか、ボートを漕ぐ男、靴下を乾かす小学生など珍妙なエピソードが登場する。そこに出た小学生の「高校生活」を描いた、「エブリシング・フロウズ」という、続編もある。こちらもいい。「浮遊霊ブラジル」は思わず、笑ってしまった。なんじゃこりゃと。





2017年5月2日火曜日

自動電源オンとタスクスケジューラ、バッチファイルでワンパターン業務を自動化

2018MayGirl2
出勤すると、まず、パソコンの電源をオンして、社内サイトにログインし、データをとってきて、集計する。この一連の操作は、人手でEXCELとVBA、ときどきACCESSも使っているが、ワンパターンの操作ばかり。
 そこで、BIOSの自動電源オン機能+タスクスケジューラ+バッチファイルで、人がいなくてもできる、つまり無人の自動運転を実現してみた。意外にアッサリと、できてしまった。
 そして、今回、Windowsログインはしなくても、いろいろ操作できることを師匠に教えてもらったのだが、驚きというか、セキュリティ的にはどんなもんじゃろかいのーと微妙な気持ちである。
 2018年のGWに宮部みゆきの「孤宿の人(こしゅくのひと)」を読んだ。実に深く、人生の哲学を感じた。自分の日頃の振舞いに気をつけたいというか、肝に銘じたい。それにしても「ほう」はカワイイ。

2017年4月9日日曜日

Slackware is perfect! やっぱり、自分のFMVにはslackwareが一番あっている

これまで、様々なデストリビューションを試したが、FMV-BIBLO-NB50Sに一番、あってるLInuxはSlackwareだった。今、Slackware 14.1 のxfceで、PuppyLinuxの軽快さにも負けず、サクサクと動いてくれる。立ち上がりも30秒もかからない。以前、WinodwsXPのときは5分くらいかかっていたのに。ただ、時々、USBマウスが死んでしまうのが、残念なところだが、たまになので、我慢である。

2017年3月27日月曜日

PukiWikiのコンテンツを共有するーシンボリックリンクだね

様々な事情でPukiWikiをある特定の個人のPCで運用し、グループで閲覧・更新しているとする。
その特定の個人が会社にいないと、PCが立ち上がず、グループ全員がWikiにアクセスできない。
そこで、「ファイルサーバ」と「シンボリックリンク」の登場だ。
ここでは、多くの会社でそうであるように、個人のPCはWindowsというケースで説明する。
1)まず、個人PCのWikiのフォルダまるごとファイルサーバにコピペする(Moveがいい)
  例 mv D:grpwiki Z:\FILESERVER\grpwiki
2)個人PCのWikiフォルダは念のため、名前を変えてセーブしておいてもよい。
  例 cp D:\grpwiki D:\grpwiki-save
3)Wikiフォルダのファイルサーバへのシンボリックを張る。
  例 mklink /D D:\grpwiki Z:\FILESERVER\grpwiki
       ・・・ファイルサーバはドライブZ:でネットワークドライブを割り当てているとした。

そして、http://someonepc/grpwiki/index.phpでwikiにアクセスできる。
目からうろこのシンボリックリンクだね。
Wikinoコンテンツ部分をグループで共有できるところがいいね。グループの誰かがWWW+PHP+pukiwiki環境を立てておけば、Pukiwikiページへアクセスできるようになる。
全員がWWW+PHP+PukiWikiを立ててもいい。そうすれば、非常こ簡単に複数サーバからなるWikiができてしまう訳だ。



2017年3月5日日曜日

slackware 14.1の便利コマンドスニペット(snippets)


・CDを全曲鳴らすコマンド mplayer cdda:// /dev/sr0
・CDの2曲目を鳴らすコマンド mplayer cdda://2 /dev/sr0
・renameする。 rename Acoutic Acoustic *Acoutic*.mp3
・Seamonkeyが調子悪いので、palemoonへ乗り換えてみる。
 まず、ホームページからpalemoon*.tar.bz2をGETし解凍するだけ。
   bzip2 -dc palemoon-27.2.1SSE.linux-i686.tar.bz2 | tar xvf -
・VLCでラジオをきく。VLCでストリームをきくで、mmsh://hdv4.nkansai.tv/izunokuni?MSWMExt=.asfを指定する。
・CDのwavを直接mp3にする。 cdda2mp3 dev=/dev/sr0 "Track" "-b 192"
・wavファイルをmp3にする。lame track01.wav 
・wavをmp3にするbashワンライナー  for t in track{01..99}*.wav; do lame $t; done
・CDをリッピングし、wavファイルにする。 cdparanoia -B
・DVDをブランクにする。 dvd+rw-format -blank /dev/dvd
・riken.ftp.jpのユーザidは、anonymousで、パスワードはe-mailアドレス
・ CDを焼く。 cdrecord -dao driveropts=burnfree dev=/dev/cdrom ele*.iso
・ CDをマウントする。mount -rt iso9660 /dev/sr0 /media/cdrom
・ファイル使用量のベスト(ワースト)10を出す。フォルダは最大3つ。 du -h /tmp/SBo/* --max-depth 3 | sort -rn | head -10
・ALSAを再起動する。/etc/rc.d/rc.alsa restart
・ALSAの設定(音量など)を保存する。 alsactl store
・折返し modprobe snd-aloop
・ラジオ mplayer mms://hdv4.nkansai.tv/izunokuni  -ao alsa:device=hw=1,0 -cache 1500
・ALSA パージョン確認 cat /proc/asound/version
・録音再生 ecasound -a:1,2 -i alsahw,0,1 -a:1 -o alsahw,0,0 -a:2 -o test.wav
・タイムサーバとの同期確認 ntpq -p
・ウィルスパターン更新 freshclam
・ウィルスチェック clamscan -r /root
 ・らじるらじる録音  rtmpdump --rtmp "rtmpe://netradio-fm-flash.nhk.jp"          --playpath 'NetRadio_FM_flash@63343'          --app "live"          --swfVfy http://www3.nhk.or.jp/netradio/files/swf/rtmpe.swf          --live          -o fm.m4a

2017年2月26日日曜日

sndloop+audacityでPC再生音を録音

modprobe snd-aloop
aplay -D hw:1,0 music.wav
audacityでhw:1,1をモニターあるいは、録音。


2017年2月19日日曜日

slackware 14.1でラインコマンドのみでサイマルラジオを聞きながら、録音。audacityなしでね。

slackware 14.1のサウンドは、DebianやUbuntu他のメジャーなデストリのpulseaudioとは異なり、ALSAだ。
 まず、以下のコマンドでループバックデバイスを作る。
modprobe snd-aloop
ちゃんとできたかは、aplay -lでわかる。
次に、サイマルラジオのmmsがわかるラジオ録音サーバのWebページで
 https://radioserver2.jimdo.com/
で、聞きたいコミュニティラジオのmmsのアドレスをコピーする。
 そして、以下のコマンドでループバックデバイスの出力(OUTPUT)に流し込む。
 mplayer mms://hdv4.nkansai.tv/izunokuni  -ao alsa:device=hw=1,0
ちなみに、今回選んだラジオ局は「FMいずのくに」。
最後に、以下のコマンドでループバックデバイスの入力側(IN)側を録音、かつ再生する。
 arecord -f FLOAT_LE -r 48000 -c 2 -D hw:1,1 | aplay -D plug:dmix
ここまでくるのに、3ケ月くらいかかってるんですけど。


2017年2月13日月曜日

slackware 14.1 領域拡張をvivid puppy linuxのGpartedでやってみた

slackware14.1をいれている/dev/sda2のルートパーティションの使用領域が90%を超えてきたので、後ろの実験場/dev/sda4(名前は4だが、パーティション番号は3)の前半を空けて、/de/sda2の領域にした。ツールとしては、Vivid Puppy LinuxのGpartedを使った。
まず、/dev/sda4を一旦、削除した。次に、/dev/sda2のリサイズをした。

2017年1月21日土曜日

slackware 14.1でSDカードをマウントする

まず、SDカードを差してみる。
このコマンド
dmesg | tail
で、どのデバイス名(dev/???)を得る。
SanDisc 1MBの場合
[  726.442748] mmc0: SD Status: Invalid Allocation Unit size.
[  726.444605] mmc0: new SD card at address b368
[  726.462443] mmcblk0: mmc0:b368 SD    952 MiB
[  726.465360]  mmcblk0: p1
junglegirl
Jungle girl
と出てきた。
次に
fdisk -l
でファイルタイプを得る。
  デバイス ブート      始点        終点     ブロック   Id  システム
/dev/mmcblk0p1   *          33     1950719      975343+   6  FAT16
なので、vfatでよい。
そして、 マウントする。
mount -t vfat /dev/mmcblk0p1 /media/memory
これで、slackware とmacで、データの受け渡しが、SDカードでできるようになった。
マウントするときに、-t vfatを忘れると、macでみると、0バイトのファイルに変身していた。

ふつうのwindowsのパーティションなら
-t ntfsというオプションを付与する。
mount -t ntfs /dev/sdb1 /media/hd0




2017年1月14日土曜日

現在のやり方を変えるとうまくいかないことも多々ある。しかし、今のやり方がベストとは思わない。あきらめないことが大切だ。

仕事でパソコンに向かい、マウスを握り締めているとなんか疲れる。そこで、マウスを使わずに、キーボードだけでEXCELやOUTLOOK、Windowsを使うことにチャレンジしてみた。まず、DOS時代のファイラーとして、Java版のFDを採用。最初は調子よいのだが、時間がたつと様子がおかしくなる。いろいろなファイラーを試し、DYNAファイラーにたどり着いた。