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 イエロー?」と聞かれます。「ブルー」は普通のミルクで、「イエロー」は、ローファット&カルシウム入り。ニュージーランドで売られているミルクのパッケージの色がその色になっているようです。
 さすがにトンガリロ国立公園のロッジでは飛行機ででる小さいミルクでした。

2014年8月30日土曜日

EXCEL 仕事で覚えた小技 フィルタするなら、まずフィルタクリア

 EXCELでフィルタで行を絞る際、しばしば、陥る落とし穴は、既にどこかの列がフィルタで絞られていることに気がつかない、あるいは、忘れていることです。
 そのまま、フィルタをかけても、誤った結果しか、得られない、どうも変だ、出てくるはずの行がでていない、などいった罠にハマってしまうことが、多々あります。
  • 最初のフィルタ前にフィルタ全クリアが鉄則
また、これが一番、ハマルのですが
  • こまめにセーブは基本中の基本
せっかく、何時間もかけて作成した作品、編集した結果がちょっとした「気の迷い」、操作ミスで、セーブせずにEXCELを終了してしまうことがあります。「こまめにセーブ」はEXCELに限らず、いろんなシーンで言えることでもあります。
 また、これと似ているのですが、
  • 修正のたびに別文書へ
これもかなり、重要。救いの神です。修正したら、こまめに別文書でセーブ。私は、文書名の一部に日付や時刻、改版理由などを付けて、版数を管理しています。






A lifesaver's coming


2014年8月28日木曜日

仕事で覚えたEXCEL小技 条件付き書式でセルに色を付ける

 条件付き書式でセルに色を付けるには、条件付き書式タブで、例えば、条件として
  • NOT(ISNA(VLOOKUP($Sheet1.$K$2,holidays,2,FALSE())))
として、色を設定しておきます。これにより、holidaysという名前を付けた祝日リスト(日付、祝日名)のテーブルを参照して、該当すれば、色がつくことになります。

これと、以前、ご紹介した小技
 excelで前月の最終月曜日を計算する EXCEL fuction calendar
と組み合わせると、イカしたカレンダーができます。



2014年8月26日火曜日

仕事で覚えたEXCEL小技 SUMとSUBTOTAL

複数のセルの合計を計算するときに使う関数としては、普通なら、
  • SUM関数で、=SUM(A1:A10)
みたいに使いますが、
  • SUBTOTAL関数を使い、=SUBTOTAL(9,A1:A10) 
とすれば、
  • 途中のセルをフィルターで除外したら、その部分はカウントされない
という便利な効果が出てきます。

逆に言えば、SUM関数にすれば、フィルターをかけても、合計値に影響を与えることはありません。


私は合計をとるときは、SUBTOTAL関数を使うことが多いです。


ちなみに、SUBTOTALの次の9は、合計値を求めるときに指定します。3を指定すると、対象となった数値の個数(セル数)が入りますので、平均値をとるのに使えます。

  • 平均値 =SUBTOTAL(9,A1:A10)/SUBTAL(3,A1:A10)
複数の列に同じ式を使えるというのがポイント(ミソ)です。

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


 ニュージーランドでの車の運転ノウハウ。レンタカーの旅は、楽しいですよー。

 ニュージーランドの道路の交差点は、信号がなく、「ラウンド・アバウト」という、道の交差が角ではなく、サークル(円型) になっているところがあります。さすがに大都会のオークランドでは信号がある交差点が多いですが、田舎では殆ど、この信号なしのラウンドアバウトばかり。信号機を付けなくてもよいし、信号を待たなくてもよいという利点があると思います。
 このランドアバウトでは、車はサークルに入る前に一旦、停止し、右から車に気をつけながら、サークルへ進入します。そして、サークルをまわりつつ、自分の行きたい道へと入ればよいわけです。サークルへ入るタイミングをつかむのが難しそうですが、そんなに車が多くないので、意外と大丈夫ですよ。
 サークルの中が2つ、3つ車線がある大きなサークルでは、回っているうちに車同士がぶつかりそうで、ちょっと怖い感じがありますが・・・。




2014年8月24日日曜日

IE + VBAで仕事を効率化 Webシステムを自在に操る

 これまでに、以下の3ページで、もの凄く、簡単に、Webシステムの操り方をご紹介しましたが、この2ページは、途中で挫折しかけつつも、3ケ月もかかり、「まわり道」したおかげでのスキルの「つながり」があり、なんとか、やりたいことができたのでした。
 インターネットでいろいろ、ご指南して頂いたおかげもありますが、うまくいかない時、「まわり道」になっているなぁと思うときこそ、頑張って、精進することが大切なのだなぁと最近、つくづく思うのでした。

 人生に無駄なことなど一つもない。そして、最後まで諦めないこと。(と思う、思いたい・・・、てっ) 

   The following 2 web pages introduce how to get info from web systems automatically by IE + EXCEL VBA.
   It took 3 months for many tries and errors. I almost set back.  

 Nothing is useless in your life. Never give up! I think, want to believe.

 最後に、デバッグ方法なのですが、VBAの「ブレークポイント」と「Debug.Print」でできましたよ。My debug methods are use of "Breakpoints" and "Debug.Print".
  • Debug.Print "これじゃ”& objIE.documet.URL
みたいな感じで、内容を出力する変数(パラメタ)を指定したり、特定のメッセージを出すことでプログラムが思ったとおりに動いているのか、確認します。簡単です。Very simple.





 

2014年8月21日木曜日

仕事で覚えたEXCEL小技 $(ダラ)って便利だら

仕事でEXCELを最短で習得するには、近くにいる達人に聞くこと。

VLOOKUPの第2˚パラメタで、範囲を指定する際、$A$1:$E$10と通常の範囲指定の頭に$(ダラ)を指定しておく。
すると、VLOOKUP を入れたセルをコピーして、他のセルに展開するときに、
EXCELが勝手には範囲をシフトすることを封じる(防ぐ)ことができる。

EXCELの自動変換は、便利なこともあるが、邪魔になることもある。
それを封じるのが、$(ダラ)だね。便利だらー。















 ここで、ちょっとひと息。ニュージーランドのレンタカーのお話。
 2012年、北島のオークランドでレンタカーを借りた。大手が安全なので、ハーツ(Hertz)をネット予約。
 空港にあるハーツのカウンターでレンタカーのチェックインをテキトーな英語でどうにか済ませると、キーとカーナビ(オプションで付けた)を渡され、車の置いてある番号(例えば84と)が告げられる。
 これだけだけだ。That's It. ハーツは空港ビルのすぐ隣に駐車場があるので、とても便利。車を返すときもこの同じ番号の場所に駐車し、キーとカーナビを空港内のカウンターへ返せばよい。凄くシンプルなシステム。