« March 2016 | Main | May 2016 »

April 2016

04/21/2016

体重体組成計の怪

昨年購入した体重体組成計、その秤の上に乗れば、私か妻かどちらが体重を計ろうとしているのかを自動判別して、表示してくれる筈だが・・・。

最近?その秤、時々私と妻を間違える判定をするようになった。もしかすると、秤が置かれた床の平面度が悪くて、正しい値が出せないのかと秤の設置環境にも気になるところはある。だから気をつけて計っているつもりなのだが・・・。

今日、私が「体重が減った!」「ダイエットと運動の成果だな・・・」と喜んで表示をよく見ると、「えっ!」 秤は妻だと思っている・・・。

誤ったデータが送られないうちに秤の電源を落として・・・、もう一度慎重に秤に乗ると、今度秤は、私と判定したようだが、「体重値」の表示値が先ほどと変わり、増えた表示値を示すではないか。技術屋として考えれば、物理量が変わるなんて、そんな事があるはずは無い。しかし、「ごますり体重計め!」と密かに疑ってしまう。

「体脂肪率」とかではなく、「体重値」が違ってしまうとは・・・なんという秤だ! でも、俺も耄碌したから、めがねをかけずにその数値を見て、見誤り、体重が減ったと有頂天になっていた可能性が無いとは言えない。

誤ったデータが送られないようにと焦らず、今度判定が誤って「妻」だと
表示が出た場合には、手元で数値等を記録するようにしよう。

⇒その後
これまで、体重計に乗っても数値が確定せずエラーになることが多々あった。僕は、秤が置かれている床の平面度の問題があるのではないかと疑っていたが、体組成値センサーにもなっている秤のガラス表面と私の足の裏の間の電気抵抗値が大きすぎて認識しないらしいということが分かった。それで、秤のガラス表面を綺麗に拭いてやってから秤に乗るか、わずかに水の水滴が秤の表面にあるような状態の際に秤に乗ると、数秒で認識することが分かった。

それでも、秤は私と妻を間違えることが時々ある。その時はマニュアルに沿って、秤表面の右側中央部のボタンを触って、妻⇒Guest⇒私 と対象者を変更し、秤中央のボタンを触ってその内容を確定すればいい。 そのあと、念のためもう一度秤に乗れば、私だと認識してくれる。

しかし、妻と間違えて認識した後、上記のように補正すると、体重値が増えるのはなぜなのだろう???

Windows10 にUSB接続した Xperia、本体フォルダの表示が消えた

Windows10 PC にUSB接続した Xperia (スマホ)で、Windows10 PCから Explorer を使って SDカードへの書き込みなどを行っていたら、Explorer から Xperia 本体フォルダの表示がいつの間にか消えていた。

Explorer での作業を一旦中止し、Xperia (スマホ)のPC との接続状態を確認したが、Xperia はPCとの接続可能状態になっている。

XperiaExplorer を一度閉じて、
再度、Windows10 PC の Explorer を起動させ、Xperia のフォルダを開いたが、Explorer 上に表示されるのはSDカードのみ。


Windows10 PC を再起動してみることにした。

Xperia_2 PCを再起動させ、PC と USB接続している Xperia 本体のパスワードを入れ、編集可能状態にして、
PCのExplorer を開いてXperia をクリックすると、
本体 とSDカード 2つのフォルダが表示された。

04/20/2016

Windows10 タスクバー上のアイコンが右クリックを受け付けない

Windows10、最近タスクバー上にあるアイコンを右クリックしても、反応が無く、メニューが表示されなくなった。

加えて、Windows スタートボタンの(左)クリックあるいは、キーボードを押しても反応が無い。
これでは、電源を落とせないでは無いか・・・


リセットボタンを押して再起動させると・・・ 
タスクバー上にあるアイコンに対して、マウスの右クリック機能回復。 Windows スタートボタンの(左)クリックあるいは、キーボードからの入力も復帰した。


ググってみると、同様の事例が報告されていますね。
次回発生したら、ここ(↓)に書いてある方法などを試してみようと思う

Windows10において、タスクバーの一部で左クリックによる表示がなされない件について

Shutdown からの起動時に「not a bootable disk」と表示される

PCの仕様は、
マザーボード: Z87-pro
CPU: Intel Core i7-4770K @3.50GHz
メモリー: 32.0GB
BIOS: Version 2005
OS: Windows10 Pro 64bit

エラーの発生状況は、

①シャットダウンからの起動で、背景が黒画面の状態で「This is not a bootable disk. Please insert a bootable floppy and press any key to try again ...」と表示される。

②表示を無視して、Enterキーを押すと、起動準備に入り、Windows10が起動する。


背景が黒画面の状態で発生しているので、OSには関係なく、BIOSのところでの問題と思われたが、意外なところに伏兵がいた。

実は正確な時刻を確認したいと思って、数日前に Garmin のGPS を USBケーブルで PCに接続したままとしていた。そのため、そこに起動ファイルがあるとBIOSが想定したらしい。

BIOS 側 の 《 Boot Menu 》 を確認すると、下図のように設定していた。
Dsc_0115
僕は、PC とUSBケーブルで繋がっていた Garmin GPS eTrex30 を取り外し、

「Discard Changes & Exit」を選んで、BIOSには何も手を加えず PC を再起動させた。

その結果、ノーマルに起動した。

04/19/2016

十日町の棚田を見に・・・

2016年4月13~14日、新潟県十日町の松代・松之山の棚田を見に行った。
今回の目的は、棚田と桜とを組み合わせた写真が撮影出来ると良いなぁと思って出かけたのだが・・・棚田の中に桜があるのは、観光パンフレットにある「儀明の棚田」ぐらいで、棚田の中に桜の木は殆ど見つける事が出来なかった。

観光パンフレットにある棚田の写真をじっくり見ると・・・桜の木らしいのが写っているのは、「儀明の棚田」の写真しか無さそうだという事がわかった。

儀明にも行ったが、私の持っている望遠レンズは、120mmなので、パンフレットにあるようなアングルまで接近して撮影は出来なかった。

棚田は、まだ新緑が芽吹く前の枯れ葉色の中にあったので、写真の中に切り取った桜の花弁の色は、あまり目立たなかった。

宿泊は、松之山温泉の薬湯か、芝峠温泉『雲海』かと迷ったが、幸い『雲海』に泊まることが出来た。前夜雨が降ったこともあり、早朝ホテルから見えた雲海は、素晴らしかった。

《芝峠温泉》 早朝の雲海、谷川岳、苗場山を臨める・・・
露天風呂からの景色が良い!

Dsc_0017 Dsc_0234 Dsc_0024 Dsc_0032







《棚田風景》
 「棚田に桜」をイメージしていたが・・・棚田の中に桜は殆ど無かった。
Dsc_0060a Dsc_0065 Dsc_0069a Dsc_0307





Dsc_0188 Dsc_0174 Dsc_0318Dsc_0326







《野草など》 ツクシやアズマイチゲ、ナガハシスミレ など
Dsc_0071 Dsc_0227 Dsc_0217 Dsc_0287

トレッキングに使えるWebクエリを使ったマクロ( 2日3時間+ 7日6時間)天気予報

Webクエリを使うマクロ、こんどは 3日間 3時間天気予報と、10日間 6時間予報を組み合わせて作ってみた。しかし、マクロに間違いないはずなのに・・・途中で必ず停まってしまう。

もしかして、使用制限されているのか・・・。原因は明確には分からないが、こちら側からWebへの処理要求が早すぎるのではないかと考え、次の処理まで 5秒間一時停止するコマンドを追記した。

 5秒間一時停止するVBAコマンド : Application.Wait [Now() + "0:00:05"]

これを入れてマクロを起動させたところ、処理に時間はかかるが、途中で停まってしまうことはなく処理を終了させる事が出来た。
多分、これを使うユーザーのインターネット回線速度などの環境で、処理のスムーズさが変わるかもしれない。もし、通信環境が良ければ、一時停止コマンド部分をコメント行にして使うのが良いと思う。

アップロードしたマクロは、トレッキングする地域の天気予報取得用URLに対して、日本気象協会のWebから、最初の2日間は 3時間天気予報、その後の7日間は 6時間天気予報を取得し、表にする。

雨天なら、その時間帯のセルを薄い青色で、2mm/h以上の降雨量の場合には、少し濃い青で、5mm/h以上の場合には赤色で塗るようにした。(5mm/hの場合に、赤色のセルにするというのは前回公表のマクロには入れていなかった処理)

これを使いたいと思うユーザーは、私がアップロードした表の2列目のデータを準備すれば、Webクエリにより容易にこのような天気予報表を作成する事が出来る。

天気予報を調べる地域用URLの作成に関しては、僕が以前に書いたブログ記事を参照すると良いと思う。

ダウンロード用データとマクロ

「weather_forecast3h6h_trek_schedule_cmbined_sheet_20160418.xlsm」をダウンロード

マクロの実行のボタンを設定
マクロを毎回開くのでは面倒なので、表の左上にマクロ実行用のボタンを設定した。
ボタンの設定は、Excelの「開発」タブをクリックして、
Photo ⇒挿入アイコンをクリックし、
 メニュー窓の左上にあるボタンの形をしたアイコンをクリックする。
(赤でマーキングしたアイコン)

マウスのカーソルが十時線に変わるので、ボタンを作成したい場所の左上をクリック、次に右下になる場所でクリックしボタンを作る。

ボタンを作成すると、マクロの登録という窓が開くので、
該当するマクロを選択クリックし、OKボタンをクリックする。

ボタンの場所・サイズが気に入らなければ、ボタンの何処かをマウスクリックすれば、ボタンの編集が出来るので、移動、拡大・縮小 など行い位置などを確定する。

ボタンの中でマウス右クリックし、メニューを表示させて、「テキストの編集」を選び、ボタンの名前を記入する。

ボタンの文字や色を変更する場合には、マウスの右クリックでメニューを表示させて、その中から「コントロールの書式設定」を選びクリック、
フォントや文字の色、フォントの太さなどを変更する。

マクロ実行ボタンを追加したファイル
「weather_forecast3h6h_trek_schedule_cmbined_sheet_20160419.xlsm」をダウンロード


このマクロで処理した結果事例
Weather_forecast3h6h_trek_schedule_



















⇒その後

 マクロ中の一時停止処理の入れ方や、時間を変更しても、またこの処理方法を根本的に変更してみたが、Webクエリの処理中で止まったままになってしまう。
 この状況を改善する方法が見つからない・・・。


結局 10日間6時間毎天気予報(下記↓)しか実用的にならないみたいだ。
「weather_forecast_trek_schedule_cmbined_sheet_20160420.xlsm」をダウンロード

04/17/2016

旧中山道を歩く(計画:木曽福島~美江寺)

トレッキング予定の場所について、2日前に気象庁の10日間天気予報を使って、雨の降らないタイミングをチェックした。その天気予報情報に基づき、「此処しかない!」と思って、4/20~4/24の間で、木曽福島~美江寺を歩く計画をした。往復のバスチケットの購入、この行程の中での宿泊予約は、全て行った。


しか~し、その計画を立案してから 2日経った今日、同じ地域の10日間天気予報を確認してみると、「何たることか!」計画日の真ん中に、旅行計画時には無かった雨天情報がばっちり入っているではないか。

雨天予報が入った地域の予報状況を調べてみると、『 2mmほどの降雨が50%の確率で発生する可能性がある。』 2mmという雨は、傘無しで歩くには、ちょっと嫌な降雨量だ。


「ショックだ!」てるてる坊主でも持参しないと・・・

雨具の準備をしておかなければいけないし、雨天が懸念される日の昼食の場所の事も再検討になる。

計画立案は、出発日の 2日ほど前まで待ちたかったが、妻籠宿では宿泊場所が少なく、希望者が多いので、もう少し前に決断せざるを得ない。10日間天気予報を使う案は、アイデアとしては良かったと思っているが、天気予報の精度があまり良くないことを思い知らされた。

《 計画段階での天気予報:予報期間 
4/15~4/24 》
Plan1






















《 2日後のチェックの際の天気予報:予報期間 4/17~4/26 》

 ・21日の中津川、恵那、瑞浪などの地域で雨天予報になっている。
 ・24日の雨天情報は消え、天気予報は「晴れ」になっている。

Plan2





















困ったな~。先ほど天気予報をチェックしたら 21日は 10mm/h の大雨になっている! 10mmなんて酷すぎる。まるで嵐のようだ・・・きっと雨のため途中で足止めをくらいそうだ。
日程を 2日ほど後ろにずらしたいところだけど・・・妻籠の宿の変更が難しそうだ・・・

⇒バス予約・宿泊予約共 変更が出来て、2日間後ろ倒しで計画変更できた。バス予約については1300円ほどのキャンセル料金が発生したが、土砂降りの雨の中を歩くより、日程が成立するならその方が良い。 あとは、この日程の中で急な降雨が無い事を祈るばかりだ。

04/15/2016

Windows10 アップグレード後フリーズし易い・・・原因調査中・・・

Windows8.1からWindows10へのアップグレード後、システムがフリーズし易くなっているように感じる。
私のPCのハードウェア仕様は、
 ・プロセッサ : Intel Core i7 4770K @3.50GHz
 ・実装メモリ : 32GB
 ・マザーボード : Z87-pro


他のユーザーでも同様の事例が無いかとググってみた。『困ったー:困ったことを調べたブログ(【Windows10】アップグレード後、よくフリーズが起きる場合は?)』というのを見つけ、そこに記載の方法で、自
分のシステムを調べてみた。


私のシステムの場合、
1)ブルースクリーンは出ていないので、そこに書かれる「エラーメッセージ」も存在しない為、そこから原因の推測は出来ない。

2)フリーズが起きやすくなっている主要な原因
 ①ドライバーやソフトがWindows10に対応しきれない
 ②メモリやハードディスクの空き容量が不足
 ③インストール時にメモリやハードディスクが故障
 ④その他

これらのポイントに沿って、調べる事にした。

私のPCでは、
これまでの使い方の中でフリーズは何時起きるか分からず、フリーズを発生させる為の手順をシミュレートすることも出来ない。

そのため、「セーフモードで起動」させて、そこから原因を探ることは難しい。

3)先ず、トラブルシューティングを使ってみた。参考にさせて戴いたブログの手順通り作業して・・・
 「ウインドウズキー」+「X」 を押して、コントロールパネルに入り、
⇒ 「システムとセキュリティ」 ⇒ 「セキュリティとメンテナンス」 と辿り、表示された窓の中の中央部付近にある「メンテナンス(M)」をクリックする。
⇒ アコーディオン によって詳細な内容確認窓が開くので、
1
その中の問題レポートの解決策を確認 から 「信頼性履歴の表示」 (左図で赤く囲った部分)
をクリック。

問題の履歴を確認してみた。







2
























私のPCでは、ディバイスが関わる動作の停止は見られず、「Microsoft.Messaging_8wekyb3d8bbwe!ppleae38af2e007f4358a809ac99a64a67c1
」 がこの期間で数回発生しており、気になります。

それで、その部分にマウスカーソルを合わせ、ダブルクリックすると・・・
3


























障害が発生しているアプリケーションのパス、障害モジュールの名前などが表示された。

かなり気にかかる情報だといえる。

4)メモリのチェック
①メモリー診断
Windows
「ウインドウズキー」+「X」 を押して、コントロールパネルに入り、

 ⇒ 「システムとセキュリティ」 ⇒ 「管理ツール」 ⇒ 「Windowsメモリ診断」 をダブルクリックする。

左図の表示が出るので、作業中のファイルがあれば、閉じておかないと・・・


メモリー診断には、約50分かかった。
問題は検出されなかった。




②タスクマネージャから、パフォーマンスの確認
 ・使用中領域   3.2GB
 ・利用可能領域 28.5GB
 特に問題は無いと思われる。

5)システムをチェックする
 「ウインドウズキー」+「X」 をクリックして、「コマンドプロンプト(管理者)」を選んでクリックする。
1_2  コマンドプロンプトから、 sfc /scannow  と入力して「Enter」キーを押し、システムチェックをスタートさせる。

私のPCでは、整合性違反は感出されなかった。






6)ディスクイメージをチェックしてみる
「ウインドウズキー」+「X」 をクリックして、「コマンドプロンプト(管理者)」を選んでクリックする。
2_2 コマンドプロンプトから、 Dism /Online /Cleanup-Image /ScanHealth  と入力して「Enter」キーを押し、イメージに破損が無いかを調べる。
⇒ 左図のように、問題は検出されなかった。







もう一つ
Dism /Online /Cleanup-Image /CheckHealth
もチェックして、イメージに破損があったかをチェックした。
⇒ これにも問題は検出されなかった。

7)トラブルシューティングで見つけた障害モジュールなどは、マルウェアなどの影響の可能性が考えられるので、Webで見つけた「イルカのマルウェア対策研究室」の情報を参考に、各種マルウェアに対応した検査ツールMalwarebytes Anti-Malware (略称:MBAM)をダウンロードし、処置してみることにした。
Malwarebytesのホームページに行き、そこからフリーバージョンのファイルをダウンロードする。2016/4/15現在の最新ファイルは、「mbam-setup-2.2.1.1043.exe
」だった。

②ダウンロードしたファイルをダブルクリックして、インストールし、実行させてみた。
14点の問題を検出したが、その内容は基本的にレジストリに関するもので、僕が通常使っている「CCleaner」との違いは、何処にあるのだろうか・・・と思った。
 SkyWrap.dll に関する問題点の指摘・問題点の検出は無かった。

SkyWrap.dllに関して調べてみると、
・「SkyWrap.dll's description is "Microsoft Skype" 
・SkyWrap.dll is usually located in the 'c:\Program Files\WindowsApps\Microsoft.Messaging_2.12.11012.0_x86__8wekyb3d8bbwe\' folder.

となっているので、Malwareではないことが分かったが・・・

04/12/2016

ココログでソースコードを見栄え良く掲載するには・・・

ココログでソースコードを表示する際に、WordPressのように「ソースコードを切り出してきて表示している」かのような表現が出来ないものかと、かねてから思って居た。
Web検索してみると、「SyntaxHighlighter」というサイトからファイルをダウンロードし、ココログの管理ページから必要なファイル類をアドオンすれば、ソースコードテキストを囲んだ左側部分に、コード番号列を配したソースコード表示が出来るらしい。(詳細は「Todotaniのはやり物Log:
Syntax Highlighter 3.0の使用方法 」、「よしなしごと(技術関連の備忘録):ココログでソースコードをかっこよく表示する」等に詳しく書かれているので参考にすると良い。)
SyntaxHighlighter
 : 2004年に Alex Gorbatchev 氏により制作され、2016/4/12現在の最新版は 3.0.83(July 2, 2010)  というバージョンらしい。

《手順》
「Todotaniのはやり物Log:Syntax Highlighter 3.0の使用方法 」を参考に、やってみる。
①先ず、必要なファイルを
SyntaxHighlighter」からダウンロード。
 ・「
syntaxhighlighter_3.0.83.zip」 をダウンロードした。
 ・ファイルを展開すると、下図のようなフォルダとファイルが入っている。
Syntaxhighlighter1









②ココログに今回の設定のためのフォルダを用意する。
 ココログの「管理ページトップ」⇒「コントロールパネル」⇒「ファイル」と辿り、
 この「ファイル画面」で、次のような2つのフォルダを作成する。
  ・scripts
  ・styles

③次に②のフォルダに入れるファイルの選択とアップロード
 ダウンロードした scripts フォルダ には、多くの Brush ファイルがあるので選択に迷う。

僕は、下記 6個の言語用ファイルを選択し scripts のフォルダーにアップロードした。今回アップロードしたファイル以外の言語用(PHP、Ruby等)のものが必要になれば、またその段階でアップロードすれば良いので、必要最小限のファイルとした。
 ・shBrushCss.js
 ・shBrushJScript.js
 ・shBrushPlain.js
 ・shBrushVb.js
 ・shBrushXml.js
 ・shCore.js

同じくダウンロードした styles のフォルダからも、アップロードするファイルを選択する。表示するテーマを、Eclipse風、Emacs風等有り選べるので、
全てのファイルをアップロードしておいて楽しむのも良いらしいが、僕がアップロードしたのは、下記の 2つのファイル。
 ・shCore.css
 ・shThemeDefault.css

④ブログページにアクセスした際に、Syntax Highlighter を起動させる必要がある。
 これは、ブログのサブタイトルのところに 使用する JavaScript と CSS を書き込めば良いらしい。
 このためには、サブタイトル部に書き込む為の javascript を作っておかなければならない。
それは、テキストで作って貼り付ければ良いから・・・僕は Sublime Text3 で下記のようなものを作った。
Syntaxhighlighter2











⑤上記のテキスト部分をコピーして、
「ブログ」⇒「設定」 と辿り、「ブログのサブタイトル」部分に 貼り付ける。

「変更を保存」をクリックし、「サイトに反映」をクリックする。このとき全てのサイト内ファイルに反映する必要は無いと思うが・・・。 環境の設定は、ここで終了。

さて、ソースコードなど上手く表示出来るだろうか・・・ 


上記の javascript に適用してみよう・・・、

表記は Brush name 「XML」の場合、shBrushXml.js をダウンロードしてあるので、Brush aliases は「 xhtml 」を使う。
pre の記載は、
<pre class="brush: xhtml;"></pre> のようになる・・・

HTMLの編集画面にして ⇒
<pre class="brush: xhtml;"></pre> と書いて ⇒ この後、テキストを「~」部分に貼付ける。
記事の作成画面では、この貼り付けたテキスト部分が見えないぞ!

でも、このようになった。









Brush name の選択は、「NetyaSun : ソースコード表示 6.Brush nameを選択」にあるので参考にするのがよい。

上記テキスト表示で、
マークが表示されている・・・入れた記憶が無いが・・・何だろう?⇒「SyntaxHighlighter」からのメッセージだった!

次のブログ記事でも「Syntax Highlighter
」を使おうと思ったが・・・メッセージが表示されて、有効にならない。

04/08/2016

Web天気予報を使って(中山道)トレッキング日程検討用ツールシート

Webクエリを使い連続した地域の天気予報を入手するマクロ(前回紹介したもの)を、更に改良してみた。
・これを使えば、トレッキングルート上の道標をとおる時刻と、その時の天気予報がどうなるかを組み合わせて見る事が出来る。
・下表で、左部分は、地域と天気予報を組み合わせたもので、右側部分は道標とその場所を歩く予定時刻が記載されて居る。
Photo_2

























《これを活用する場合の準備内容》

①事前に、トレッキングルート上の基準位置に対して、そこからの各ポイント迄の歩行距離と時間を一覧にしておく。 
Photo_3
 























添付した私のExcel表では、基準位置から各道標ポイント迄の距離と、その距離を歩行するに要する時間は、GoogleMapを使って求めた。
②マクロを実行させて、添付のような結果を得るためには、
 ・第1列:地域名(これは、使用者のデータ作成の間違いを防止するために入れるもので、計算では使わない)
 ・第2列:日本気象協会の天気予報を直接Webから読み取るためのデータで、天気予報を得るに一番適したその地域用のURLを作って入れる。
 ・第3列(C列)から第42列(AP列)迄を空欄にしておく。(ここに天気の状態が書き込まれる。)
 ・第43列(AQ列)から後ろ側の記載方法は任意であるが、私のやり方では、
  第43列(AQ列)に道標の名前
  第44~45列(AR~AS列)は、事由記載項目
  第46列(AT列):GoogleMapで求めた2地点間歩行距離
  第47列(AU列):GoogleMapで求めた2地点間歩行時間
  第48列(AV列):ある一日の基点からの累積距離(第46列の累積値)
  第49列(AW列):ある一日の基点からの累積時間(第47列の累積値)
  第50列(AX列):ある一日の基点のスタート時刻値から累積した予想到達時刻
  第51列(AY列):ある一日の実時刻記入欄
  第52列(AZ列):その位置の標高値(計算では使っていない。参考値の記載)
  第53列(BA列)以降は、事由記載のコメント欄など。

 再計算を行う際には、必ず 第3列(C列)から第42列(AP列)迄を空欄にすること。
 Webから入手したデータは、1地域データを読み込んだあと、(第101行、第61列)から右下の領域に書き込み作業を行う。
 一行の作業が終了した際には、同じ領域を次のデータのための作業領域として使う為に、第BE列から第BO列までを削除している。

 得られた結果は、ユーザーが指示した天気予報地域別に、一日を4分割した6時間毎の天気予報データを10日間分にわたり表示したものが一覧表になり。ユーザーが予め準備したトレッキング位置、時刻と突き合わせる事が出来る。

 これにより、いつ頃雨に降られる可能性があるか・・・、雨天を避けてトレッキングするためには、どのように日程を組めば良いかが分かりやすくなる。

《Download》
下記よりExcelデータ(含Macro)がダウンロードできる。
「weather_forecast_trek_schedule_cmbined_sheet_20160412.xlsm」をダウンロード

《ファイルの更新内容》
2016/04/10:
空欄列を一部非表示としていた為、全列表示に修正。
2016/04/12:10日目の天気予報が未だ発表されていない場合、処理が停まってしまうので、マクロを修正した。

《マクロ》

Sub WeatherScraper()

Dim i As Long, j As Long, k As Long, m As Long
Dim imax As Long, jmax As Long
Dim URLR As String
Dim URL As String, URLS As String
Dim charlen As Range
Dim killrow1 As Long, killrow2 As Long
Dim rain As Integer   '雨の際のセルの色を付けるため 雨⇒20 雨天以外は色無し⇒0
Dim rainhard As Integer   '雨量が多く設定色番号 33 を使うときの雨量(現在設定は 2㎜以上) 
Dim qrainstr As String, qrainnbr As String, qrain As Long   'qrainstr は降水量セルに書かれた文字、qrain は降水量

jmax = 50       '天気予報記載行数 = 1日5行で10日分なのでその合計 50行
rainhard = 2   
'多降水量と設定[濃い青 33]にする数値

i = 1
URLR = ""   


label1:
'同じ(重複する)エリアについてWebからデータ読み込みを行わせないようにするための処置。
If URLR = Range(Cells(i + 2, 2).Address) Then
GoTo label2
Else

'作業エリアを、次の処理のため削除する。
Range("BE:BO").Delete   

End If

'天気予報のURLをセットする。
URLR = Range(Cells(i + 2, 2).Address)

If Cells(i + 2, 2) = "" Then 

'B列のデータが無くなれば、処理を終了する。
GoTo label9
Else
'URL用データが有る限り、Webからデータを読む為の処理。 
URLS = "URL;http://" & URLR
End If
 

With ActiveSheet.QueryTables.Add(Connection:= _
  URLS, _

  Destination:=Range(Cells(101, 61).Address))      
  .Name = "?kd=1&tm=d&vl=a&mk=1&p=1"         
  .FieldNames = True         
  .RowNumbers = False   
  .FillAdjacentFormulas = False         
  .PreserveFormatting = True         
  .RefreshOnFileOpen = False         
  .BackgroundQuery = True         
  .RefreshStyle = xlInsertDeleteCells         
  .SavePassword = False         
  .SaveData = True         
  .AdjustColumnWidth = True         
  .RefreshPeriod = 0         
  .WebSelectionType = xlAllTables       
  .WebFormatting = xlWebFormattingNone         
  .WebPreFormattedTextToColumns = True         
  .WebConsecutiveDelimitersAsOne = True         
  .WebSingleBlockTextImport = False         
  .WebDisableDateRecognition = False         
  .WebDisableRedirections = False         
  .Refresh BackgroundQuery:=False
End With   

 
'天気表示のセル内での二重表現部分を変更する。 
For j = 1 To jmax       
   Set charsell = Range(Cells(101 + j, 62).Address)       
   csell = Len(charsell)  'セル内の文字数を数える。 
   If csell Mod 2 = 0 Then       
   csel2 = csell / 2       '二重に書いているので数値を半分にする。 
   dadd = charsell.Value   'セルに書かれている文字データ 
   sadd = Mid(dadd, 1, csel2)    'セル枠に書かれている文字の前半分   
'セル内の文字が二重表示か否かの判定をして、二重表現ならセル内の文字は前半分にする。 
   Range(Cells(101 + j, 62).Address).Value = sadd
   Else       
   End If
Next j   

label2:

'セルの中を調べて、『雨』という文字が含まれていたら関連するセルを『青』で塗りつぶす。
For j = 1 To 10
For k = 1 To 4

rain = 0

If WorksheetFunction.CountIf(Range(Cells(103 + (k - 1) + 5 * (j - 1), 62).Address), "*雨*") Then   
  rain = 20
  Else
  rain = 0
End If 

'降水量が書き込まれたセル[qrainstr]には、文字形式で「2㎜」などと書かれている。
'全角1文字[㎜]の左側の文字を数値[qrain]にして、rainhard 以上なら青い色を濃い青 33 にする。
qrainstr = Range(Cells(103 + (k - 1) + 5 * (j - 1), 65).Address)
If InStr(qrainstr, "㎜") = 0 Then
If j = 10 Then GoTo label3
GoTo label9

End If 

qrainnbr = Left(qrainstr, InStr(qrainstr, "㎜") - 1)

qrain = Val(qrainnbr)
If qrain >= rainhard Then
rain = 33
Else
End If

label3:
If i = 1 Then
'最初のみ日付と時刻を書き入れる。
'セルの書式、セルの結合をしておく。
Cells(1, 3 + 4 * (j - 1)) = Cells(102 + 5 * (j - 1), 61)
Cells(1, 3 + 4 * (j - 1))
.NumberFormatLocal = "G/標準"
Range(Cells(1, 3 + 4 * (j - 1)), Cells(1, 6 + 4 * (j - 1))).Merge
   

Cells(2, 3 + (k - 1) + 4 * (j - 1)) = Cells(103 + (k - 1) + 5 * (j - 1), 61)
Cells(2, 3 + (k - 1) + 4 * (j - 1))
.NumberFormatLocal = "hh:mm"

Else
End If

'関連するセルの色を変更する処理
For m = 1 To 6   
   Cells(103 + (k - 1) + 5 * (j - 1), 61 + m).Interior.ColorIndex = rain
Next m   

Cells(2 + i, 3 + (k - 1) + 4 * (j - 1)).Interior.ColorIndex = rain
Cells(2 + i, 3 + (k - 1) + 4 * (j - 1)) = Cells(103 + (k - 1) + 5 * (j - 1), 62)   

Next k

Next j

'B列のデータが有る限り処理する為カウンターを1つ進めて、最初の処理点に戻す。
i = i + 1

GoTo label1


label9:
imax = i - 1

'直ぐに必要としないデータ領域を非表示にする。

Columns("B").Hidden = True
Columns("AR").Hidden = True
Columns("AS").Hidden = True
Columns("BA").Hidden = True
Columns("BB").Hidden = True
Columns("BC").Hidden = True

'セルの文字配置を中央に揃える
Range("C:AP").HorizontalAlignment = xlCenter

End Sub

04/06/2016

Google Earth の Install 時に1603 というエラー発生

Googleearth_install Google Earth をインストールしようとした際、左図に示したようなエラーが表示された。

調べたところ、エラーの原因は、 PC内に 「 Google Earth 」 を 既にインストールしているにもかかわらず、インストールを強行しようとした為らしい。
しかし、この画面以外の情報を出さずに このようにこっそりエラーを表示するとは・・・ もう少し情報を表示してくれれば・・・


Systemアカウントは、インストールしようとしたフォルダーについてのフルコントロールの権限が無い事もその原因にあるらしい。それでマイクロソフトがこの原因について書いている。

Google Earth アプリの存在を下記のようにして確認してみた。
スタートボタン⇒すべてのアプリ を選択し、調べてみると・・・「Google Earth あった!」

旧をアンインストールして、新しい(ファイルバージョン 1.3.29.5)をインストールすることにした。⇒不具合無くアンインストールし、インストール時もエラーの発生は無かった。

04/04/2016

ブラウザが行ったパフォーマンスをタイムラインを開いて知る方法

きっかけは、Googleマップでの経路検索結果を、リスト出力させる方法は無いものかと調べていた。もしかして、これにはブラウザが関与しているかも・・・なんて勝手な想像をして、ブラウザを Chrome から Mozilla Firefox に変えて、いろいろなボタンの設定内容を調べていたら、Mozilla には『フレームレートが落ち込むなどパフォーマンスの問題の兆候があるときはタイムラインを開いて、記録中のある時点でブラウザが何を行っていたかを知ることができる』という機能があることを知った。

Photo このタイムラインを見るためには、Mozilla Firefox ブラウザを開いてから、[Cntl]+[Shift]+[Q] を押せば、ブラウジングでアクセスが発生した際のタイムラインを見る事が出来る。
その画面の右側には、スライドバーがあるので、タイムライン表示を遡って見る事もできる。
タイムラインで使われている棒グラフの意味は、ここに書かれている。


ブラウジングの際の全てのタイムラインを見るだけではなく、「HTML」「JS」「画像」「メディア」などに分けて別々に見る事も出来る。

タイムライン表示を終了させるには、タイムライン表示画面の右上にある[×]をクリックすれば良い。





《他の操作》
「すべて」表示から「画像」表示に移るには、「画像」ボタンのところをワンクリックすればいい。

「画像」のタイムライン表示から、「HTML」のタイムライン表示に移るには、「HTML」ノボタンをクリックしその後で「画像」のボタンをクリックすれば、「HTML」のタイムラインだけの表示になる。

意外なところで処理時間を要しているのを知る事ができたりする。なかなか興味深い。

04/03/2016

ココログ記事作成中の文字削除で、写真の拡大が出来なくなった

ココログのブログ制作で、同じ操作を行いアップロードしたが、記事の作成段階で、写真の配置が思うようにならなくて、スペースの追加・削除を繰り返し、ブログとしての形が整ったので、保存した。

記事を登録・保存後、マウスクリックを使って写真が拡大出来ない事を知り、HTMLで開いて、その違いを調べてみた。

下記、上側のソースはマウス操作で写真拡大が出来るもので、下側のソースはそれが出来なくなったもの。違いが分かるようにスペースなどを加えて並べて置いてみた。

下側の写真に無い部分は、
<a href= ・・・ >  ・・・ </a> の朱記部分になる。

①拡大出来る写真のソース
<a href="http://spice-cabinet.cocolog-nifty.com/photos/uncategorized/2016/04/03/websheet4.jpg">
<img alt="Websheet4" title="Websheet4" src="http://spice-cabinet.cocolog-nifty.com/blog/images/2016/04/03/websheet4.jpg" width="580" height="245" border="0" style="float: left; margin: 0px 5px 5px 0px;" /></a>

②拡大が出来なくなった写真のソース
<img alt="Web" title="Web" src="http://spice-cabinet.cocolog-nifty.com/blog/images/2016/04/03/web.jpg" width="580" height="216" border="0" style="float: left; margin: 0px 5px 5px 0px;" /></p>


《補修作業》


HTML編集にして、②の方に①と同じように

<img alt=・・・・・ />の前側に <a href="http://spice-cabinet.cocolog-nifty.com/photos/uncategorized/2016/04/03/web.jpg"> を追加して、後ろ側には同様に </a> を追加した。

これで、ブログを書き換えた後、保存 ⇒ マウスクリックで画像の拡大が出来るようになった。

Webクエリを使い連続した地域の天気予報を入手するマクロ 最終

Webクエリを使い連続した地域の天気予報を入手するマクロ(前回紹介したもの)を、大幅に改良し、縦軸を地域、横軸を日程にした出力(下表)を追加し、下表のように雨天予報時刻帯には、セルに色を塗って、「何時なら雨に降られずにその地域を旅行出来るか」などの検討が容易にできるようにした。

このマクロの応用としては、他の(例えば東海道などの)街道歩きとか、複数日に渡る広範な地域を旅行する際に、どのようなスケジュールで行けば雨天を避けられるかなどに使える。
表示も少し見易くできたので、旅行プラン上にある地域についての天気予報URLを調べてSheet3のように準備しておけば、旅行スケジュールの立案に便利なツールとして利用できると思う。

《使用上の注意点》
① Sheet3 (下表) の形式で Webクエリするためのデータを準備する。

Sheet3
・マクロで用意したデータ領域は、左表の12地域として作成してある。変更がある場合にはマクロ側の変数値 imax を変更する必要がある。
(下図↓参照のこと)
Imax





② Sheet4, Sheet5, Sheet6 を予め準備する。

③ Sheet3 に戻り(Sheet3 をアクティブにして)、
 ツールバーの「開発」⇒ツールアイコン「Visual Basic」をクリックする。

④ Visual Basic の窓が開くので、「
」ノボタンをクリックし マクロを起動させる。
 マクロ実行中のエラーは、Sheet4 ~ Sheet6 が準備されていなかったり、その中に消されていないデータが存在する場合に発生したものと思われる。

⑤シートが作成され、マクロが停止する。
 私のデスクトップPC( Windows10 64bit OS )では、56秒かかった。PCの環境で、処理時間は違ってくると思う。
 このとき、Sheet5 は作業用の Worksheet なのでデータは削除されている。
 ・マクロで作られたデータシートは、
    Sheet4 : 行が日程を、列が地域を表す
    Sheet6 : 行が地域を、列が日程を表す

《Download》
下記よりExcelデータ(含Macro)がダウンロードできる。

「nakasendo_weather_webquery_20160403_version.xlsm」をダウンロード

《注記》
降水量の記載の単位[㎜]は、全角1文字で書かれているので、文字処理で InStr 関数を使う際には注意のこと。

《Sheet4 の表示》
Websheet4
















《Sheet6 の表示》
Web

04/02/2016

Webクエリを使い連続した地域の天気予報を入手するマクロ

先日、掲載したブログ『VBAとExcel Webクエリを使い複数地域の天気予報を入手する』を、マクロを使って自動的にExcelの表に纏める事が出来たので、ここに記載しておく。

特別な処理はしていないと思うが、このマクロを使って確認した条件は、
①Windows10 64bit OS
②Microsoft Office 2010 の中のExcel
③Excel の
WorkSheet には、左記の形のデータを「Sheet3」に作成しておき、Sheet4」をこの結果を記載できるように準備した。
④マクロは、Sheet3 が表示されている(Active な状態
)で起動させる。
 結果は、Sheet4 に作成される。

⑤地域データを変更したければ、添付するExcelシート(Sheet1,Sheet2)から必要な部分をコピーして、Sheet3 を作り 実行すれば良い。
⑥最終結果の表(Sheet4)は、直ぐに見ないデータ列は非表示としてあるので、必要に応じて再表示すれば良い。
⑦下図は、マクロを使って処理した結果(それ以外の手作業は行っていない)を示す。
添付図では、なるべく沢山の情報を見られるようにズーミングしている。文字が小さく、データも右側は枠から飛び出しており読めないかもしれない。
ただし、このマクロを使えば、ここまで出来ることが分かると思う。
10web

「nakasendo_weather_webquery.xlsm」をダウンロード

下記にそのVBAマクロを掲載する。上記ファイルをダウンロードすれば、マクロも含まれている。
ダウンロードした後、
①「Sheet3」を開き、⇒「開発」タグをクリックし、⇒「Visual Basic」のアイコンをダブルクリックすると、マクロが表示される。
②ツールバーアイコンの中から「
」ボタンをクリックすれば、このマクロを実行できる。


この表を作成するに際し、いろいろなテクニックを調べ・使って作成したので、その内容は併記してあるコメントを見れば容易に分かると思う。また、別の用途でも参考になると思う。

Sub WeatherScraper()
'マクロの起動は、天気予報を求めるURLデータを記載した Sheet3 を開き実行すること。
'Sheet4 が設定されていること。但し、その中のデータはこのマクロで全て削除されて使われるので、要注意!


Dim i As Long, j As Long, k As Long
Dim imax As Long, jmax As Long
Dim URLR As Range
Dim URL As String
Dim AreaR As Range
Dim Area As String
Dim daddR As Range
Dim dadd As String
Dim charsell As Range
Dim csell As Long, csel2 As Long
Dim saddR As Range
Dim sadd As String
Dim charlen As Range
Dim killrow1 As Long, killrow2 As Long
Dim sh1 As Worksheet, sh2 As Worksheet

imax = 12   '天気予報情報を読み取る数
jmax = 50   '天気予報記載行数 = 1日5行で10日分なのでその合計 50行
killrow1 = 72  '不要行記載部分の開始行
killrow2 = 132 '不要行記載部分の終了行

For i = 1 To imax
  '天気予報URLの地域名を Area に格納する。
     Set AreaR = Range(Cells(i + 1, 2).Address)
     Area = AreaR.Value

  '天気予報のURLをセットする。
     Set URLR = Range(Cells(i + 1, 3).Address)
     URL = "URL;http://" & URLR.Value

  'Excelの Webクエリで天気予報情報を読み取り、Sheetの(F20から)右下部分に書き取る。
     With ActiveSheet.QueryTables.Add(Connection:= _
     URL, _
     Destination:=Range(Cells(21, 7 * (i - 1) + 1 + 5).Address))
     .Name = "?kd=1&tm=d&vl=a&mk=1&p=1"
     .FieldNames = True
     .RowNumbers = False
     .FillAdjacentFormulas = False
     .PreserveFormatting = True
     .RefreshOnFileOpen = False
     .BackgroundQuery = True
     .RefreshStyle = xlInsertDeleteCells
     .SavePassword = False
     .SaveData = True
     .AdjustColumnWidth = True
     .RefreshPeriod = 0
     .WebSelectionType = xlAllTables
     .WebFormatting = xlWebFormattingNone
     .WebPreFormattedTextToColumns = True
     .WebConsecutiveDelimitersAsOne = True
     .WebSingleBlockTextImport = False
     .WebDisableDateRecognition = False
     .WebDisableRedirections = False
     .Refresh BackgroundQuery:=False
   End With

'天気予報の地域名を天気表示列の最上部に記載する。

     Range(Cells(20, 7 * (i - 1) + 2 + 5).Address).Value = Area

'天気表示のセル内での二重表現部分を変更する。
     For j = 1 To jmax
        Set charsell = Range(Cells(21 + j, 7 * (i - 1) + 2 + 5).Address)
        csell = Len(charsell)  'セル内の文字数を数える。
        csel2 = csell / 2       '二重に書いているので数値を半分にする。
        dadd = charsell.Value   'セルに書かれている文字データ
        sadd = Mid(dadd, 1, csel2)  'セル枠に書かれている文字の前半分
  'セル内の文字が二重表示か否かの判定をして、二重表現ならセル内の文字は前半分にする。
         If Mid(dadd, 1, csel2) = Mid(dadd, csell2 + 1, csel2) Then Range(Cells(21 + j, 7 * (i - 1) + 2 + 5).Address).Value = sadd
         GoTo label1
label1:
     Next j
     Next i    

'不要な行の削除 (killrow1 から killrow2 迄を削除)
     Rows(killrow1 & ":" & killrow2).Delete  

'列の幅を自動調整する。
     For i = 1 To imax
     Range(Columns(7 * (i - 1) + 6).Address, Columns(7 * (i - 1) + 6 + 7).Address).Columns.AutoFit
     Next i

'不要な列の削除 (削除列は先頭列にダブる情報なので削除する)
'削除は列番号が変わらないようにするため、最右列データ部分から左列データ方向に削除  


For k = 1 To (imax - 1)
    Range(Columns(7 * (imax - k) + 6).Address).Delete
Next k  

'データを現 Sheet3 から Sheet4 にコピーする。(シートの定義)
Set sh1 = Worksheets("Sheet3")
Set sh2 = Worksheets("Sheet4")

'先ず、 Sheet4 のすべてのセルの内容を削除
Range("A1").Clear
'Sheet3 の天気予報データの内容を Sheet4 にコピーする。
  sh1.Range(Cells(20, 6).Address, Cells(killrow1 - 1, 7 * (imax - 1) + 6 + 7).Address).Copy _  
  Destination:=sh2.Range("A1")

'Sheet3にWebクエリで作ったデータ部分を削除する。
'不要な行の削除 (20行目から(killrow1-1)行目迄を削除)

   Rows(20 & ":" & (killrow1 - 1)).Delete

'Sheet4 に作業を移して
   sh2.Activate

'直ぐには 使わない/見ない 不要列を非表示にする。
'表示するのは「日付」「天気」「降水確率」「降水量」で、それ以外のデータは非表示とする。
'天気のみの表示とするためには、下のマクロで column(4・・・, column(5・・・,を他と同様に記載し追加する。

For i = 1 To imax
Columns(3 + 6 * (i - 1)).Hidden = True
Columns(6 + 6 * (i - 1)).Hidden = True
Columns(7 + 6 * (i - 1)).Hidden = True
Next i

'地域の範囲を明確にするため、地域名記載の該当するセルを結合する。

For i = 1 To imax
Range(Cells(1, 2 + 6 * (i - 1)), Cells(1, 7 + 6 * (i - 1))).Merge
Next i

'データ部分に格子罫線を引く データセルは A1 から Cell(52,7*(imax-1)+1) まで
For i = 1 To imax
Range(Cells(1, 1), Cells(5 * 10 + 2, 7 + 6 * (i - 1))).Borders.LineStyle = xlContinuous
Next i

End Sub

04/01/2016

VBAとExcel Webクエリを使い複数地域の天気予報を入手する

中山道宿場町での天気予報を連続的に取得する方法を、ExcelのVBA で行ってみた。

《トライアル第一段階》
資料は、『エクセルの神髄(鵜原パソコンソフト研究所)』さんが書いた『WEBデータの取得方法』の中のQueryTablesを参考にし、使わせて戴いた。

私には、VBAの基礎知識が無い状態で始めたので、
先ず資料の Sub sample1() にあるリストをそのままVBAのエディタの中にコピーし、
このsample1の中に書かれている URLの記述部 のみを、入れ替えてみた。

このリストには、WebSelectionType = xlAllTables
Excel と指定しているので、シートの中には、天気予報の table 部分のみ そっくりデータがコピーされた事を確認した。

換言すると、
オリジナルの『http://info.finance.yahoo.co.jp/ranking/?kd=1&tm=d&vl=a&mk=1&p=1』を
天気予報の『http://www.tenki.jp./forecast/3/23/4830/20432-10days.html』に入れ替えただけである。この方法で、天気予報の table 部分のみ そっくりデータがコピーされた。

参考にさせて戴いた
エクセルの神髄(鵜原パソコンソフト研究所)』にも書かれていたが、極めて簡単にデータが取得できることが分かった。

《トライアル第二段階》
URLデータは幾つかあるので、 Range("$A$1") 部分を、自動で連続的に変更できるようにした。トライアルしてみたところ、URLのテーブルを置く場所と、Webからデータを読み取って、その結果を書き出す場所は、同じWorkSheetに置かないとマクロでエラーが生じて処理が出来なかった。
また、セルの中に書かれている天気の二重表現を単独の記述とする方法は、この処理内での処置方法が分からないので、別に外部処理とする事にした。


《処理の手順とVBAマクロ》
1)地域と天気予報URLを下図のように、Excelのシート上に作成した。
Url_2このデータは、「12データ」まで書いてあり、マクロも「データ数が12」であるとして記述した。

データは左列から、番号、地域名称、URLアドレス(http:// を省いて記載した) として並べた。


2)マクロは下図のように記述した。
Weatherscraper_macro 
①読み込みデータ数は12個としたので、データ数を変更する場合には、マクロの記述を変える必要がある。

②Webからの読み取り結果は、1)のデータの下部に書き込むようにした。
ここでは、Sheetの20行目から下に書くようにした。

③データ書き込みに際し、地域名が分からないので、1)に地域名を書いておき、それを書き込み表示するようにした。

④この天気予報データでは、URLを実施した日から10日間の天気予報になる。
天気予報を知りたい 地域のURL のみで構成されているので、日付などを変更する手間が無く使えるのが良い。

« March 2016 | Main | May 2016 »

July 2017
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

Recent Trackbacks

無料ブログはココログ