2015年3月22日日曜日

仕事で使えるかもしれないMS Outlookの小技〜このメール、後でもう一度、出て来てね(スヌーズ、snooze)

flyinggirl
  仕事がとても忙しいにもかかわらず、つい、魔がさしてか、気分転換か、もしくは不安に駆られてか、新着メールをチェックしてしまったとき、あー、このメール、後でもう1回、出て来て欲しいなぁと思うことがある。

 そして、あなたが会社の方針でMS Outlookを使わされている(そういうことが日本では多いのですが)のであれば、そういうときには、目覚まし時計のスヌーズ(snooze)みたいに、後でもう1回、受信したかのようにすることができます。
 しかも、設定を変えるだけで・・。その方法は、ビューの設定で、メールに期限を設定し、アラームが上がってくるようにする、いわば、スヌーズ設定をするだけ。

詳しくは、以下のサイトで紹介(英語ですが、絵だけでもわかる)。

その1
http://kevinguyer.squarespace.com/blog/2013/3/11/outlook-fu-how-to-snooze-email-in-your-inbox.html

その2
http://www.msoutlook.info/question/796

 ただし、このスヌーズ設定をしたメールは、期限になるまで、メールフォルダからは見えなくなるので、注意が必要です。

 ま、単純にアラームを付けて、タスクのリストに入れてもよいのですが、それだと、タスクを見に行かないとわからない(期限つきでアラームを上げるようにしておけばいいのかもしれないが、チャンチャン)。

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

 以前、初夏に世界遺産、島根の「石見銀山(いわみぎんざん)」に出掛けた。石と書いてイワ(岩)と読む。現地のボランティアガイド、曰く、「ここは見るべきものは何もないンですが、そこがいいところなんですよ」と。そのとおり、ただの山奥の洞窟だったけど、たどり着くまでの道端には彼岸花が咲き乱れ、自然が大切に残されていて、美しかった。

 



2015年3月20日金曜日

仕事で使える(かもしれない)EXCELの小技シリーズ〜REPT(repeat)関数

 すぐ忘れるけど、便利な、仕事で使える(かもしれない)EXCELの小技シリーズ。ま、ぐぐる(google)と、すぐ出てくるかも。

 Easy to forget but very useful , one of small tips on EXCEL functions. Also easy to find by google search.

 2つのセルに入った文字列を特定の記号を挟んで連結し、一定の長さの文字列を作る。
dreaming girl
そんな事態になったら、REPT(repeat)が役に立つことがあるかもしれない。

REPT(repeat) function may be useful when making character strings with the same length from two cells.


  • 例 A2セルとB2セルの文字列を間に連結する際、間に空白(ブランク)を入れて20文字にするには、=A2&REPT(" ",20-LEN(A2)-LEN(B2))&B2



 複数の文字列を繋げて一定の長さにする、あるいは、2つの文字列から一定の長さを持つ文字列を生成するといった要件は、それほどないかもしれないが、もし、必要になったら、例えば、このREPT(repeat) でブランクを埋めることで、一定の長さにできるよ。




 ここで一息のコーナー。

 そこへ行かないと出会えない地元フード。高知の松葉川温泉の香り米。炊きたてのご飯に茶豆(枝豆)のような香りして、絶品。高知の旅では、道の駅でのランチに食べた「かつおのたたき」、「チキン南蛮」が美味。ブンタン(文旦)にも出会った。

 There's local food you don't know if you've never been to there. Kaorimai of Matsubagawa Onsen in Kouchi prefecture. 



 

 

2015年2月22日日曜日

IE+VBAで仕事を効率化〜再びIE自動運転の不具合[フレーム(frame)へのアクセス拒否]の原因はWindowsパッチの自動更新 if IE+VBA failed to access(Access Denied) to a frame again!

 2015年の2月初め、VBAによるIE自動運転スクリプトが再び「フレーム(frame)へのアクセス拒否」のエラーで動かなくなってしまった。

 At the beginning of  Feb. of 2015 my IE+VBA auto-pilot intranet cursing scripts were not working due to ”Access Denied (error) to a frame”. 

 今回は、社内Webシステムの連中がセキュリティを疑うことない。迷わず、隣の席の師匠に教えを乞う。

 This time I won't doubt about that the intranet team strengthened system's security. Without hesitation, I asked my VBA master.

 師いわく、「今回は、KB3034196のWindowsパッチを外せば、OKです」。
 言われたとおりにパッチを外すと、見事に昔のように動いてくれた。さすが、師匠!なんでもご存知だ。

 My master told me " Remove KB3034196 of Windows Patch!"
 After removal of the patch as told, my script went well as before. That's just what you'd expect from him. He knows everything.

 再び、マイクロソフトは、駄目パッチを堂々と出してきたわけだ。


 MicroSoft rolled out "haunted and damned patch" again as if that could help us out but it wouldn't .


  今回も、特定のWindowsパッチ(Windows updates)の自動適用を封じるために、コントロールパネルの延長で出てくる、利用可能な更新プログラムの一覧で、今後表示しない更新プログラムを右クリックし、[更新プログラムの非表示] をクリックした。これで、一安心だね

 To prevent the specific window's patch, in the list of available updates of Control Panel, right-click any update that you don’t want to see again, and choose Hide Update. 

 数日後、なぜか、非表示にしたはずのKB3025390は「非表示」のリストから姿を消し、KB3034196は、まんまと適用済となっていたが、ワタシの自動スクリプトは問題なく、動いているのだった。どうしたんだろう。マイクロソフトに完全に遊ばれている。マイクロソフトとの闘いが始まった。

A few days later, I don't why but hidden KB3025390 has really disappeared and KB3034196 has appeared in the installed patches list, Luckily my autopilot VBA programs are going well. What happened? Microsoft may want to play with us? Endless battles to Microsoft have begun.


2015年2月7日土曜日

EXCEL+VBAで仕事を効率化〜選択したセルの値を別のセルへコピペ

 仕事でチマチマと地味な繰返し作業をしていると、ストレスでへこんでしまう。少しでも楽をしたいなぁと思い、自分だけの特製マクロを作り続けている。
batboy
batboy

 例えば、EXCELで1つのセルの値を別のEXCEL文書(あるいは別シート)のセルへコピペする作業では、6つの操作の単純な繰返しになる。
1)マウスをコピー元のセルへ移動する。
2)マウスを右クリックする
3)コピーを選ぶ。
4)マウスをコピー先のセルへ移動する。
5)マウスを右クリックする
6)貼付けを選ぶ。
 
 地味なデータ分析など、データを色んなシートから拝借するので、膨大なコピペ作業の繰返しになることが多い。
 
 そこで、一連の操作で、特に2回の右クリックが「イラっ」とするので、VBAでコピペ用ダイアログ(COPYボタンとPASTEボタン、値エリアの3つで構成される小さいウィンドウ)を出して、右クリックの代わりに、COPYボタン、PASTEボタンをクリックだけでできるようにしてみた。

 最初に、VBAによるコピペ用ダイアログは出しておく。そして、
1)マウスをコピー元のセルへ移動する。
2)COPYボタンをクリックする
3)マウスをコピー先のセルへ移動する。
4)PASTEボタンをクリックする
セルのコピペが必要なセル総数が数個であれば、効力を発揮しないけど、数十個を超えるときは、右クリックがない分、作業が簡単になり、右クリックによるストレスがなくなる。
Sub Copy_Paste()
  UserForm1.Show(vbModeless)
  UserForm1.TextBox1.Value = ActiveWindow.ActiveCell.Value
  ActiveCell.Select
  Selection.Copy
End Sub
Sub Paste_TextBox1()
  ActiveWindow.ActiveCell.Value = UserForm1.TextBox1.Value
End Sub
 CopyボタンとPasteボタンを持つ、Userform1という名前のフォームを作成し、Copyボタンには「Copy_Paste」というマクロを、Pasteボタンには「Paste_TextBox1」をそれぞれ割当る。こんな感じ。






 ここで一息のコーナー。
 以前、ぶらり旅で鳥取砂丘を見に行った。運悪く、「砂丘フェスティバル」にブチあたり、選べるホテルが限られていた。そんな運命の糸に操られてか、「しいたけ会館」という渋い名前のホテルに宿泊することになった。名前どおり、夕食は「しいたけのフルコース」。メインのしいたけステーキは、巨大なぞうり。見た目どおり、大味。ここに泊まらねば、巡り会えない味なので、貴重な体験ができた訳だ。
 前日の島根では、「マリンタラソ出雲」というホテルに宿泊。次回はぜひ、水着を持参して宿泊したい(そのときは、貸出しを利用)。温水プールに、ジャグジーもあり、水中トレーニングができる。食事も美味しかった。何よりも、段々と沈む夕日を眺めることができて、格別。隣にある道の駅の出雲うどんとパン屋さん(小さなカフェがあり、そこでたまたま、ハワイの海で溺れかけながらも奇跡的に生還した話が隣の席から漏れ聞こえてきた。びっくりしたけど、聞こえていないふり)もおすすめ。島根では「鬼太郎の妖怪ロード」を見てきた。

2015年2月1日日曜日

IE+VBAで仕事を効率化〜新しいページを捕まえる Catch a new web page

foxman
Foxman
 VBAでIEを制御するとき、IEで新しいウィンドウが開かれる場合、そのウィンドウのIE(例えば your-web-page-title-1というタイトルを持つページ)を捕まえないとIEを制御できない。
   IEの制御が思ったとおりにできないときには、この「新しいページが作られている」という可能性を考えてみるとよい。

 その新しいページの IEを捕まえるコードが、こんな感じ。


The following codes enable you to get the control of the new IE window while a new window like "your-web-page-title-1" is open by JavaScript.   
    Set objIE = Nothing
    Set objShell=CreateObject("Shell.Application")
    For Each objWindow in objShell.Windows
      If TypeName(objWindow.document) = "HTMLDocument" Then
        Set objIE = objWindow
        Debug.Print objIE.Doucument.Title 
        If objIE.document.Title = "your-web-page-title-1"  Then Exit For
      End If
    Next
    
    1行目は、新しいIEページの内容へアクセスするための変数objIEを初期化(ゼロクリア)。
    2行目は、新しいIEページ(=ウィンドウ)を探す際、ウィンドウを巡回するための変数objShellをセット。
    3行目は、新しいIEページ(=ウィンドウ)を含む、全てのウィンドウをたぐるためにFor Each文で、9行目のNext文までで、目的のページを探す。
    4行目のIf文で、IEページがウィンドウタイプ=HTMLDocumentであることを利用して見つける。ここがポイント。
    5行目で、見つけたウィンドウを新しいIEページとして、設定。
    6行目は、デバッグのための文で、IEページのタイトルをVBAのデバッグ用エリアに出力。
    7行目のIf文で探しているタイトルを持つページかを判定し、そうであれば、For Eachのループを脱出する。そうでなければ、次のウィンドウをたぐる。これをウィンドウがあるだけ、繰り返すことになる。

     ここで、ちょっと一息。おいしい枝豆レシピ。

    ・枝豆の両端をカット(湯がとおるように)
    ・よく洗う
    ・塩をまぶし、しばらく、置く
    ・塩水でゆでる。塩の量は、4%。1500ccの水なら、60g
     (まぶすときに使う分も含む)

    I would like to introduce my favorite Japanese cuisine "edamame". Let me explain a recipe for cooking tasty edamame. First, cut both ends off the pods and wash until clean. Then, stir in some salt, leave for a awhile, and then boil for 4 minutes in a big pan of salted water. The salt should be 4 % all the water (including when stirring); for example, 60 grams of salt for 1500 cc of water.

    2015年1月12日月曜日

    仕事で覚えたEXCEL小技〜マイケル・チャンは凄い How did my VBA-master notice that MicroSoft's Windows patch was the source of glitch?

     過日のマイクロソフトのパッチが悪さをして、それまで動作していたIE+VBA自動運転スクリプトが動かなくなった騒動で、わがVBAの師匠は、なぜ、マイクロソフトのパッチに辿りつけたのか。

    When the recent MacroSoft windows patch almost made my autopilot-scripts trash, why could my VBA-master reach to the MicroSoft patch as the source of glitch.  

    それはVBAをいくら、いじっても上手くいかないので、「視点を変えてみた」という。さすが、師匠である。
    owl
    Owl

    It is , to shift his perspective on that, since he couldn't solve the problem even if he did whatever he thought.
    That's my master!

    昨日まで動いていたスクリプトが何故、今日は動かないのか。違いは何だろうか。そもそも社内Webチームが急にセキュリティ強化をする理由はあるだろうか?冷静に考えると思い当たらない。

    Why the scripts that were working perfectly before didn't work?
    What's the differences?
    Why our intranet web site team ever has a reason to tighten the security abruptly?
    While he had time to clam down, he didn't come to think any reasons.

     今後は、まずは、マイクロソフトのパッチを一番に疑うことにする。師匠、ありがとう。

      Next time I will doubt a possibility of MicroSoft Windows patches first. Thanks my master! I got the tips.

     さて、NHKがテニスの錦織を特集していた番組で、彼を一躍、世界のトッププレーヤーに押し上げた、師匠、いや、コーチのマイケル・チャンのインタビューでの言葉があまりにも哲学的であったので、メモしておく。

      In the TV program of NHK was featuring a world's top tennis player Kei Nishikiori, as what his coach Michel Chan said was very impressive and philosophical, I took a note.

    • 錦織が自分で考えて戦ったのは良かった。(結果は、うまくいかなかったが)上手くいかないことがあってもいい、それが人間なのですから・・・。
    • It was good that Nishikiori fought changing how to fight. ( he lost the game) It's OK to do what  does not work. That is human.
    • 何千回も繰り返す練習を強いたのは、本番の苦しい時にも意識せずにそれができるようにするためだった。
    • The reason why Michel makes Kei practice same basic trainings thousaunds times is to do same thing in real games. 



    2015年1月10日土曜日

    IE+VBAで仕事を効率化〜IE自動運転の突然の不具合[フレーム(frame)へのアクセス拒否]の原因はWindowsパッチの自動更新 if IE+VBA failed to access(Access Denied) to a frame

    smaphogirl
    green-girl




      この記事にある、トラブルの原因となったパッチはそのあと、しばらくして消滅し、不具合もいつの間に密かに修正されたのであるが、Windows patchが悪さをすることが、日常茶飯事である。そのことに警鐘を鳴らすためにこのエピソードを消さずに残しておく。

     2014年の年末、それまで調子良く、社内Webシステムからデータを吸い上げてくれていた、VBAによるIE自動運転スクリプトが突然、「フレーム(frame)へのアクセス拒否」のエラーで動かなくなってしまった。このままでは、ここ1年、半泣き顔で我慢と忍耐でひとつひとつ積み上げてきたプログラムがゴミになってしまう。いまだかつてない危機を迎えた。
     
     At the end of 2014 my IE+VBA auto-pilot intranet cursing scripts were not working due to ”Access Denied (error) to a frame”.  If this goes on, All my scripts made by half-crying patience and persistence for past a year will end up in the garbage. I faced the greatest challenge I had never experience.

     始めは、社内Webシステムの連中がセキュリティを強化してきたのかと思い、「なんとか突破してみせるぞ」とエラーを回避する方法を探し試行錯誤するも、うまくいかず、途方に暮れた。最後に、藁をもつかむ気持ちで、隣の席の「VBAの師匠」に教えを乞う。

     First I thought that the intranet team strengthened system's security. I tried to break through the barrier but I couldn't.
    Finally I asked my VBA master.


     すると、ほどなく、師匠は「あなたの敵は社内のWebサイトチームではなく、マイクロソフトですよ、KB3025390のWindowsパッチを外せば、OKですよ」と教えてくれた。
     言われたとおりにパッチを外すと、見事に昔のように動いてくれた。さすが、師匠!やっぱ、自分とはレベルが違うなぁ。

     Quite quickly my master told me " Your enemy is Microsoft , not our intranet team.  Remove KB3025390 of Windows Patch!"
     After removal of the patch as told, my script went well as before. That's just what you'd expect from him.

    それにしても、敵は海の向こう、米国シアトルのマイクロソフトで、何の断りもなく、適用された、レベルダウンしたWindowsパッチが悪さをしていたのだ。
     とりわけ、腹が立つのは、通常のシャットダウンではこのダメなパッチが再び、ゾンビのように自動適用されてしまうことですね。

     Anyway my enemy is Microsoft in Seattle, USA and its level-down patch  did nasty to me.
    What makes me mad most is that the patch is reinstalled automatically for  normal shutdown like zombi.

     とりあえず、Windows終了は、デスクトップ画面で左クリックし、ALT+F4でシャットダウンすることで、パッチの自動適用を回避している。

    Remove the KB3025390 of Windows's patch(update) if you found that your IE-auto-pilotting scripts by VBA stopped for "frame access error" or IE+VBA failed to access a frame.

      後日、特定のWindowsパッチ(Windows updates)を適用されないようにするためには、コントロールパネルの延長で出てくる、利用可能な更新プログラムの一覧で、今後表示しない更新プログラムを右クリックし、[更新プログラムの非表示] をクリックすればよいとわかった。楽チンだね。