2014年9月28日日曜日

IE+VBAで仕事を効率化[Webシステムを操作]~IEの開発者向けツールF12を活用する

 IE(Windows)で社内システムを開いているとき、IEの開発者ツールF12開発者ツール( F12 キーを押すか、[ツール] メニューの [開発者ツール] をクリックします。インストールは不要)で、ページのソールコードをスクリプトレベルで解析できます。


 これを使えば、社内システムを自動操作するときに、どのアドレスに飛んだらいいか、簡単にわかります。

 検索の窓があるので、キーワードで検索できます。
 非常に便利









2014年9月23日火曜日

EXCELのフィルタでは出来ないけど、rubyで出来る複数列フィルタ

 EXCEL文書で、1行が特定の対象(行)に関わる複数の情報(列)で構成されるのであれば、複数の列で検索したくなることがある。
 このようなケースで、EXCELの「フィルタ機能」を使うことになるが、残念なことに複数の列にフィルタをかけると、すべての列に特定文字があるケースしか抽出できない。すなわち、AND条件で絞られることになってしまう。
 どこかの列に探したい文字列が散在するケースを抽出できない(OR条件)。EXCELシートをSQLで検索すれば、可能だが、SQLの知識が必要となり、ハードルが高い。
 そこで、登場するのが、ruby1行(ワンライン)プログラム 。プログラムといっても、1行なので、それほどハードルは高くない!!!

やり方は、以下。

1)EXCELをCSVへ変換する。
 セル内改行やセル内カンマを上手に除去する必要あり。詳しくは、これ。
 EXCELで困ったときの小技 うまくCSV化できないなら、Rubyを使え
 2)ルビー1行プログラムで複数列フィルタをかける。詳しくは、ここ。
 ルビーワンライナー ルビー1行プログラミングで仕事を効率化


1行ルビーは、こんな感じ。

ruby -ne 'puts $_ if $_include ?("くるみ")' a.csv >o.csv
前提として。1)で作成した、a.CSVにはEXCELをCSV化したデータがある

ここで一息のコーナーです。

私のrubyバイブルは、Cuzicさんの
・Ruby on Windows ~rubyで丸投げルーチンワーク 
 マイコミ(毎日コミュニケーションズ)
WindowsのEXCELやInternet ExplorerでのRubyの活用方法が満載です。




2014年9月21日日曜日

仕事で覚えたEXCEL小技 1年分の休日リストを作り、VLOOKUPで処理する

1年分の休日リストを作り、VLOOKUPで処理します。

休日リストは、こんな感じ。この休日リスト(holidays)を日々のセル(K2)に、

  • =IF(ISNA(VLOOKUP(K2,holidays,2,FALSE())),"",VLOOKUP(K2,holidays,2,FALSE()))
という関数を入れて、休日名を出します。ISNA関数で、先に休日かどうかを判定しております。


falling ninja


Date Holidays
2009-03-20 Vernal Equinox
2009-04-29 Showa Day
2009-05-01 May Day
2009-05-03 Constitution Memorial Day
2009-05-04 Greenery Day
2009-05-05 Children's Day
2009-05-06 Substitute Holiday
2009-07-20 Sea Memorial Day
2009-08-14 Summer Vacation
2009-09-21 Respect for the Aged Day
2009-09-22 People's Day
2009-09-23 Autumnal Equinox
2009-10-12 Sports Day
2009-11-03 Culture Day
2009-11-23 Labor Day
2009-12-23 Emperor's Birthday
2009-12-29 Winter Vacation
2009-12-30 Winter Vacation
2009-12-31 Winter Vacation
2010-01-01 New Year's Day
2010-01-11 Coming-of-Age Day
2010-02-11 National Foundation Day
2010-03-22 Vernal Equinox

ここで、ちょっと一息のコーナー。

 ニュージーランドをレンタカーで旅する場合、どうしてもガソリンスタンドで給油しなくてはいけない。どうするかいなぁと最初は、不安。ま、店のおじさんとかに聞くしかない訳ですが、3~4年前にいった頃は、自分でどのガスか(種類)のノズルを選んで、入れて、レジで後払いする方式でした。勿論、クレジットカードもOK。また、払わずにトンズラする輩もいるようで、犯罪だというステッカーが目立つところに貼られておりました。


2014年9月7日日曜日

EXCEL+VBAで仕事を効率化~プラス青字&マイナス赤字

EXCEL+VBAで仕事を効率化。金額の数字をわかりやすくするため、
・ー(マイナス)付きの数字を赤字
・+(プラス)付きの数字を青字

にするVBAの作り方をご紹介します。

  • この minusakaandplusaoは、複数セルを選択した状態で、マクロを実行する形で使用します。
  • +数値や-数値の検出に正規表現を利用しています。

Sub minusakaandplusao()


Dim strPat As String

Dim strTest As String

'  -digits -> red 

For Each r In Selection
  strTest =r.Value
  Set RE =CreateObject("VBScript:RegExp")
  Set Matches = RE.Execute (strTest)
  strPat = "(-|ー)\d+\.?\d"   --- pattern for search
  With RE
    .Pattern = StrPat
    .IgnoreCase =False
    .Global = True
  End With
  SEt Matches = RE.Exceutes(strTest)
  If Matches.Count <> 0 then
    For Each Match In Matches
      r.Characters(Start:=Match.FirstIndex + 1,Length:=Match.Length).Font.ColorINdex = 3
  Next
  Endif
 Next r

'+digits => blue

For Each r In Selection
  strTest =r.Value
  Set RE =CreateObject("VBScript:RegExp")
  Set Matches = RE.Execute (strTest)
  strPat = "(\+|+)\d+\.?\d"   --- pattern for search
  With RE
    .Pattern = StrPat
    .IgnoreCase =False
    .Global = True
  End With
  SEt Matches = RE.Exceutes(strTest)
  If Matches.Count <> 0 then
    For Each Match In Matches
      r.Characters(Start:=Match.FirstIndex + 1,Length:=Match.Length).Font.ColorINdex = 5
  Next
  Endif
 Next r

End Sub








2014年9月5日金曜日

石の上に3年、泥縄なACESS習得方法 (2)

 仕事で前任者のACCESSのファイル(作品)を少しずつ、変えながら、OJT(On the Job Trainning)というか、実務で覚えたというか、覚えざるをえなかった、「ACCESS」ですが、私のバイブルは

・北湯口ゆかりさんの「Access 95クエリー早わかり」(SOFTBANK BOOK)


 その頃、既に2000年を過ぎており、Windows 95ベースの本でよいのかと疑問を持もたれる方もあるかもしれませんが、クエリーやテーブルの作り方やSQLの知識は、2014年の今でも通用する内容です。この本も前任者が残してくれた宝物です。今でもこの頃から覚えたノウハウが通用します。







でも、宝になるためには、書いてあることを読み通すというか、忍耐というか、わかるまであきらめないことが大切だと思います。頑張ってやれば、きっとできるようになります。そんなに簡単ではないですが、続けていればできるようになると思います。


 ここで、ちょっと、ひと息。

 ニュージーランドをレンタカーで旅するのであれば、「モーターロッジ」に泊まると楽しい。私はトリップアドバイザーで探しました。宿に着くと受付で、「ミルクはどっちにする?ブルー?or イエロー?」と聞かれます。「ブルー」は普通のミルクで、「イエロー」は、ローファット&カルシウム入り。ニュージーランドで売られているミルクのパッケージの色がその色になっているようです。
 さすがにトンガリロ国立公園のロッジでは飛行機ででる小さいミルクでした。