ふんわりした生活

本を読んだり仕事でやってみたことなどの日常から、ふんわりと気づきなどを書いていきます

ほんの数秒で仕事が片付くVBAが書きたくて

ネタです。

はじめに

とにかく多数nおVBA関連書籍が出回っていますよね。 Excelのものが中心ですが、それだけExcelで自動化したり効率化したいルーチンがあるのだと思います。

たった1秒で仕事が片づく Excel自動化の教科書

たった1秒で仕事が片づく Excel自動化の教科書

できる逆引き Excel VBAを極める勝ちワザ700 2016/2013/2010/2007対応

できる逆引き Excel VBAを極める勝ちワザ700 2016/2013/2010/2007対応

Excel VBAの神様 ボクの人生を変えてくれた人

Excel VBAの神様 ボクの人生を変えてくれた人

そしてそうした書籍が多数存在しているということは、日本のサラリーマンは常に「数秒で終わらせて楽したい」のです。楽したくてたまらないのです。

わたしがプログラミングの経験がない人間だったとすると、Excel の操作だけでもやっと覚えたのに、VBAも覚えないとダメ?という気持ちになります。

どうしてVBAなのか?

これはもしかすると当たり前のことかもしれません。 なぜなら、日本のサラリーマンが日々利用しているビジネス向けのPCにおいて、Microsoft Officeが導入住みであるケースが多いからです。

社内で共有されるドキュメント、特にデータを含むものはExcel ファイルであることがほとんどでしょう。

そうなればデスクワークといえばExcel 操作であるということも言い過ぎてはいません。

Excel にはむかしからマクロと呼ばれるルーチンを自動化するための機能があります。この機能をつかって同僚が一瞬で作業を終わらせるところを見れば、使おうとするのはごくごく自然な流れです。

用途は?

関連書籍の内容を見ると、大きくは次の5点になります。

  • シートをまとめる
  • サマリーをつくる
  • グラフにする
  • 連絡をする
  • その他の雑務

つまりデータが日々の企業活動において収集されてくるので、それをマネージメント層へ報告するためにExcel を使っているということです。

バスタブ曲線

これはいつか気づくことです。 VBAマクロをつくっても楽になるのは一時のことです。 f:id:m0t0k1m0t0k1:20160727002542j:plain バスタブ曲線というのは、つくるときは高いコストを支払うことになります(労力、人件費、時間など)。つくってしまうと作業が自動化、あるいは効率化されるので楽チンになり、コストは低い状態に抑えることができます。

しかし、その後はふたたびコストが高い状態へうつりかわります。

コストが高くなってしまう大きな原因は次の2点です。

  • 業務そのものが変化するから
  • 業務内容を「知らない」担当者が増えるから

上記のうちもっとも大きな原因が1つ目です。 収集されるデータの増減や不要になったレポート、逆に追加で必要になったレポートをつくるためのコストによりコストが高くなります。

2つ目はバスタブ曲線の底を進んでいるうちは問題になりません。しかし、業務内容が変化を迎えると業務に必要とされることがらについて詳しくないため複合的な学習コストが発生します。

大抵の場合、マクロをつくったのは前任者であり、後任者はマクロをつくるのはおろか、業務の変化に会わせて更新することができません。

マクロはこの時点で捨てられることになります。

必要とされるムダ

経営者から見ると、少しでも高い人件費を抑えたいため、できるだけムダを省いて圧縮して業務にあたってほしいことでしょう。

しかし無用の用という言葉があるように、必要なムダもあります。

コミュニケーションを産むムダ

「どうしてこんなレポートが必要なんだ?」などとグチを言いながら複数名でドキュメントをつくるのもよいものです。 同僚同士がこの作業のムダについてデータを共通の敵としてみたりすることで業務をネタにコミュニケーションが形成されます。 この結果として効率化や自動化という流れになることもあります。

毎回異なるお題目

これはルーチンではない、というものです。 よく似ているけれど、結果は似ても似つかないというものもあります。 こうしたものはギリギリ共通になるものを集めてルーチンと見なして自動化することがあります。

しかし、こうして作成された自動化ツールはたばねた業務の分だけ結果を作り出す必要が出てきます。

初期コストがあまりに高すぎることにもつながりますし、バスタブ曲線の後半で変化についていくためのコストがうなぎ登りになることがあります。

でも、書いたらいいよVBA

プログラマの方々からも忌み嫌われるVBAですが、書けばいいです。遠慮することはまったくありません。

プログラムやアプリかのように動作するのに、ただのドキュメントファイルです。 ExcelやWordといったファイルが破損してしまうと、もう帰ってきません。

それでもファイルさえあれば好きなように動作することができます。ファイルを渡した担当もMicrosoft Office が導入済みなのであれば、ほぼ同じように動作させることができます。

なんて便利なんでしょう。

くじけないコツ

VBAで仕事を数秒で終わらせるために、学習コストや作業コストがバカになりません。下手をすると数日かかってもどうにもならず、くじけてしまうこともあるでしょう。

そうしたときのためにくじけないコツをいくつかご紹介します。

業務を理解しよう

ウェブでサンプルコードをたくさん拾ってきたし、書籍もいろいろ読んだ、でもうまくいかないという場合はあります。

これは自分が自分自身の日々行っている業務を理解していないからうまく書くことができないのです。

VBAのことからは一度離れて、自分自身の仕事を整理すると頭もスッキリしますしオススメです。

いまを生きる

プログラマの方には怒られてしまいそうですが、「マクロの記録」機能を利用しまくって継ぎはぎをつくりましょう。

メンテナンスができない?そんなことは後回しです。つまづいているなら、いまは動くものをつくることの方がよほどか大事です。

使い捨てる

なんとか息の長いツールにしようとします。 せっかくつくるのだから、と上司にも言われるでしょう。 でも、短命なものをつくりましょう。 なんだったら捨ててもかまいません。

書くたびに習熟度が向上していきます。 これで継ぎはぎから使い捨て、きちんとメンテナンスできるツールというように進化していくことができます。

コピペで動くなんて思わない

大抵、時間短縮のためにウェブ検索をして似たようなサンプルを見つけます。 これをコピペするのですが、動くことはあまり多くありません。

「えーっ」となってくじけてしまうのはもったいないです。

シートなどのオブジェクトの名前が違っていたり、マクロが動作する状況にないといったことが原因の多くです。

日々苦労しているレポート、 ずっとつくり続けたいですか? いやなら落ち着いてよく違いを見つけてください。

書かなくてもよくなる方法を考える

ある意味、究極の方法です。

いま自分がやっている作業はほんとうに必要なのか、いらないものはないのか、といったことをヒアリングすることが最初のステップです。

この結果、作業が大幅に短縮されたり、場合によっては作業自体がなくなることもあります。

これならもうVBAなんて覚えなくてもオッケーです!

デキるサラリーマンはVBAを書かない

デキるサラリーマンというのが何なのか。 次の条件を満たすものです。

  • 要求されているものを的確にとらえている
  • 要求に応えるために必要なリソースを集めてくることができる

自分が上記の条件にあてはまる場合、VBAを書く必要はまったくありません。

あなたが「こういうレポートをいついつまでにつくっておいて」と言われるからVBAを書くはめになるのです。 自分がそれを指示する立場になれば、書く必要はありません。

最後に

現在最新のOffice2016ではアドオンがJavaScriptというウェブに利用される技術で記述されるようになっています。

最終的にはこちらにマクロも統合されて、VBAがいにしえの魔法になるのも遠い未来の話ではなさそうに思うのでした。

Surfaceが死んだので供養として教訓を得る

もはやKindle Fire はパソコンのような扱いになってきた。 音楽を聴きながらブログの記事を書いたりすることもできる。 エディタはマークダウンを書くとプレビューすることができる、お気に入りのwri.peだ。 ブラウザさえあれば、もう困るようなことは少ない。

クラウドスマートデバイス

ちょうど一週間前、Surfaceがスリープ状態から復帰することなく電源が入らなくなった。 つまり、お亡くなりになった。 書きためてあった書きかけの電子書籍や仕事のコードなども引き連れて回収不能になってしまった。

このとき、本当にローカルディスクに保存していたことを悔やんだ。もう、アホかおれは、という感じだ。 心配停止のSurface に、心臓マッサージのごとくツーボタンシャットダウンを幾度となく試みていたわけだが、いま考えると悲しい。

死因はおそらくバッテリーなどの電源回りだ。 修理の故障などできず、そのまま交換ということになった。

あのファイル群をクラウドサービスへバックアップしていたとしたら。せめて書きかけでもコミットしておいてプライベートリポジトリへプッシュしていたら。 自分の情報弱者加減にうんざりしたし、とてもオペレーションをしていた人間とは思えなかった。

そんなとき、唯一元気だったのはクラウド上にあったファイルたちだった。Googleドライブをはじめ、ストレージサービスのデータは元気だった。

ChromeBookだったかな、あれは本当に妥当なものだった。

変わりゆくデジタル環境

さきほどものべたが、このブログはKindelで書いている。 キーボードとマウスはパソコン用、Surface で使用していた無線のものだ。 決してKindle 環境が執筆に向いているかというと向いていない。 しかしインターネット接続さえあれば、こうして執筆していくことができる。

いやいや、プログラミングなんかは無理でしょ?と思っていたが、これもオンライン環境が充実してきた。 スクリプトの記述であればむしろPCを用意するのも面倒だし、その場で保存できる。 Google Apps Scriptならその場で実行することもできる。 動作が速くて快適ではないが、十分だ。

それでも実行環境が必要なこともあるでしょう? それはそうだ。 それもAWSなどのサービスがあればクリアできる。ニーズに応じてプランを変更すれば実行環境も手にはいる。 わたしはそうしてサーバで動作確認することもよくある。

多くを求めなければ、入出力デバイスがあれば大抵のことはできるようになった。 タブレットでもネイティブアプリが必ず必要か、といえばそうでもない。 特にKindle OSのようなアプリが少ない環境においてはブラウザだけで事足りる。 画面も小さいので、情報は最低限あればいい。

ミニマルなデジタル環境

きっとアニバーサリーアップデートの頃には新しくなってしまったSurface が手元に戻ってくるだろう。 そうしたときは酷使しないようにしてやりたい。

そうはいっても、きっと次のものはインストールしてしまうだろう。

Visual Studio Code

名前の割りにオープンソースで開発されているテキストエディタだ。AtomのようにElectronベース。 もうこれに染まってしまったのでないと無理だ。

Windows Powershell

もうじきBash on Windows がくるだろ?と言われそうだが、Unix環境を使わないときのほうが多いのであればこちらのほうがずっとやりやすい。 また、.Netの恩恵も受けやすい。

Git for Windows

あの日書いた文章へ戻るにはこれがなくてはならない。 とてもではないが、覚えていない。

Pandoc

マークダウンファイルからすんなりEPUB3ファイルを吐き出してくれる優れもの。 これを知らなかったら今ごろXHTMLの樹海で息耐えていた。

node.js

いまやローカルで動かすときにPowershell の次に頻度が高いのがJavaScriptだということが驚きだが、WSH(Windows Scripting Host)を使っていたころもそうじゃなかったか?と一人突っ込みをしてしまう。

Gulp、Yeomanと助けてくれることがおおい。

Groovy

なぜかJavaを使う必要があるときだけ登場する便利屋。 波かっこがあるのにrubyより好き。

これら以外のものはどうするのか? 画像編集はMacOSにお任せするし、Unix環境が必要になることはほぼない。 というより、いらない。

消えた書きかけの電子書籍

どうすることもできないものが、ローカル保存されていたファイルたちだ。 作り直すことができるものもあったが、書きかけのものはアイデアのレベルにあった。 ということは、書き直す必要はないのではないか、という結論に達した。 この結論に達するまでは日数で計算して悲しくなっていたわけだが、書き直しのチャンスが巡ってきたと考えてしまえばラッキーとも受け取れる。

この際なので、よく考え直して書いてやろうと思う。

どうすべきだったかまとめ

自分用にまとめておきたい。

ツール

とりあえずプライベートリポジトリをつくることができるサービスにgit pushしておくこと。 もっと手軽、気軽に、カジュアルに、ということならオンラインストレージへ突っ込んでおく。

つくりかけのもの

オンラインストレージへ保存する。 少し手間だが、その手間でいろいろ買い戻すことができる。

動画や画像などの素材、完成ファイル

外付けのHDDで十分。ほんとうに必要なものは動画や画像の共有サービスへ公開しておけばダウンロードできる。

電子書籍

EPUBにする前はツールなどと同じ扱い。 EPUBにしてからはオンラインストレージへ突っ込むか、未公開の状態でストアへ登録してしまう。

メモなど

しょうもないものはEvernote 、残しておきたいものはOneDrive、どちらでもいいものは自分あてのGmailへ送っておく。

スライド

PowerPointのものはOneDrive へ。そうでなければオンラインストレージへ突っ込むかGoogleドライブへ。 マークダウンで書いたreveal.js製のものはプライベートリポジトリへ

PDFドキュメント

マークダウンの状態ならプライベートリポジトリへ。 PDFになっていたらオンラインストレージへ。

コード片

Gistへ。

OneDrive API活用術―Javaでクラウドアプリを開発する!

OneDrive API活用術―Javaでクラウドアプリを開発する!

ほんとうの食育って、ごはんを美味しくいただけることを知ることかも

ごちそうさまでした。

つい先ほどお昼ご飯を食べた。 ごはんのことについて書いたこと、一度もなかった気がする。 また、食育とタイトルにあるが、専門家でもないし詳しくもない。 完全にイメージで書いているので誤りがあるかもしれない。

何があったのか

自宅で仕事しているので、お昼には息子達にお弁当がないと残り物がなくて困ることが多い。 本日は息子が幼稚園でカレーパーティーとのことで、ご飯だけは大量にあった。 そこで、わたしも便乗?してレトルトカレーを食べることに決めていた。

実は自宅にあったレトルトカレーは甘口だったのだ。 子どもも食べるから当たり前なのだが。 わたしは中辛以上の辛さを求めて、午前中の仕事を切り上げたら買い出しに行こうと考えていた。 しかし、この暑さ。 買い出しに行かず、この甘口で我慢しようと考えたのだ。

何かスープ的なものもほしいと思ったが、もちろん買い出しに行かずしてスープを得ず。 そんなインスタントなものはなかった。 しかし、冷蔵庫を漁るとサラダの材料だったレタスが残っていることに気づいた。

そこで、レタスを小さく小さくちぎり、コンソメと黒胡椒、塩を少々、まとめて器に入れて熱湯を注いだ。 これだけでも立派なスープが完成した。 レタスは薄いので、熱湯を注ぐだけで簡単に火が通る。

そしてレンジで温めたレトルトカレーをご飯にかけていただいた。

インスタント食品に対する考え方

中辛以上の辛さを求めていたのはなんだったんだろう。 思いの外、カレールーの甘みを美味しく感じることができた。 スープもやさしい味になっていた。

ここでの気づきは、真剣に食べ物に向かえばその美味しさを堪能して、かつ非常に満足感を得ることができる、というものだ。

どうしても食育を考えると手作りのものを想像してしまうが、別にインスタント食品でもいいのではないかと考えた。 手作りで時間をかけたにせよ、インスタントで数分以内に完成するにせよ、いずれも食べ物には間違いない。 あとはそれをどう食べるのかなのだろう。

本日いただいたのはこちらなのだが(食べたあとに書こうと決めたので、残骸で申し訳ない) f:id:m0t0k1m0t0k1:20160705131151j:plain 甘口もうまい。

本日のランチに要した時間はレンジアップの2分間、盛り付けの1分間、あと諸々で5分程度だ。 それでもごはんを美味しくいただけたことはありがたい。 それにレトルトカレーを開発したり製造、品質管理している方々への感謝の気持ちも生まれた。 たまにはじっくり食べるものだな、という本日のランチだった。

2016/6/19 Kindler FireでUSBキーボードを使うと便利

先日購入したKindle Fire HD6ですが、ずっとキーボードがタイプしづらいなーと思ってました。

Fire HD 6タブレット 8GB、ホワイト

Fire HD 6タブレット 8GB、ホワイト

そうでなくても、かなりタッチの感度が悪いのでどうしようかなと思っていたところでした。

そうしたとき、ふとあることに気づきました。 iPhoneと違って、Micro USB端子が使えるということです。

デスクトップとして使う

購入目的が元々、仕事用にしていたので外で利用する想定もなかったため、入力しづらくて少し重い、導入できるアプリの少ないタブレットという感じでした。 でも、USBキーボードを接続したらブラウザでブログなんかを書くには少し不便なところがかえって良いのではないかと考えたのです。

そこで、近所の100均でUSBメスからMicro USBに変換するものを購入してきました。 Amazonで買っても良かったのですが、用事でたちよったので失敗してもまぁいいかという感じでした。

iBUFFALO USB(microB to A)変換アダプター ブラック BSMPC11C01BK

iBUFFALO USB(microB to A)変換アダプター ブラック BSMPC11C01BK

そして、もう使っていなかった有線のUSBキーボードを接続してみたわけです。

すると、まったく問題なく利用することができました。

まったく問題ないの?

実は問題はあります。

どうも接続するキーボードによっては日本語配列にならないようなのです。 わたしが今回接続したUSBキーボードは英語配列になってしまいました。 でも日本語の入力をするのには困りません。

いまこのエントリもKindle Fire で書いています。

むしろ、英語配列のキーボードを選んで利用している方なら困らないのではないかと思います。

さらに、少し困るのは半角全角の切り替えがShift+Spaceになるところでしょうか。 これも慣れの問題なので、それほど困ることはありません。

もうひとつだけあるとすると、タイプに変換などがついてこなくてTypoになってしまうことが結構あることでしょう。 変換が遅すぎてEnterをタイプしたときには変換途中ということも結構あります。

それでも少しゆっくりタイプすればいいだけのことなので、「使えねー」というほどではありません。

iPhoneにはないもの

AndroidにあってiPhoneにないこのUSB端子ですが、これほど「あると意外と便利なのね」と思ったものはありません。 iPhoneではフリック入力が基本なので長文を書くのは結構苦痛でした。 こうした外付けキーボードを利用するだけで1000文字を越える文書のタイプが楽になります。

むかしポメラが欲しかったので、ネットサーフィンすることができるポメラという認識もするようになりました。

キングジム デジタルメモ ポメラ  DM100 ブラック

キングジム デジタルメモ ポメラ DM100 ブラック

ちょっと調べてみたところではマウスも使うことができるようになるそうです。 でも、マウスは要らないんじゃないかな・・・

最後に

思った以上に快適なので、本格的にBluetoothのキーボードを購入しても効率があがるのではないかと思っています。 勘違いかもしれませんが。

文章だけを書いていく方には、特に電子書籍なんかをでんでんコンバータを使ってつくるという方にはもしかするとオンラインのエディタだけで電子書籍をつくることができてしまうのではないかと思います。 表紙画像もオンラインの画像エディタを使ってつくれば大丈夫な気がしますので。

多くを求めなければYoutubeで作業用BGMなどを聴きつつ作業ができるので非常によい買い物です。

ネックとしては、アプリを提供しているベンダーが少なすぎるということです。 ユーザーがものすごく少ないのか、それともアプリを必要としていないのか。 もしかするとAndroidアプリをGoogle Playからインストールできるようにしているのかもしれませんね。

唯一ほしいな、と思うのはブラウザアプリです。 標準ブラウザ以外が選択肢にならないレベルというのは健全な気がしません。

Androidアプリの作り方を覚えたらFire OS向けにするにはどうしたらいいかもしらべてみようかな。

セール中だったのでKindle Fire HD6を手に入れた

タイトルの通り。 以前から自分の出版している電子書籍がどう見えるのか気になっていた。 しかしイマイチKindleを購入して確認しなくてもiPhoneアプリにもWindowsアプリにもMacアプリにもあるから良いかな、と思い込んでいた。 それに、出版前にプレビューできるしね…

だけど先日Amazonを見てたら、HD6が¥8,260だったかな?になってたのを見つけた。

Fire HD 6タブレット 8GB、ホワイト

Fire HD 6タブレット 8GB、ホワイト

これなら仕事用に気軽に買えるぜ!と思って買ってみました。

開封した

開けてみると、超シンプル。 ちょっと前のモノだし、そんなに期待してなかったのでまあまあいいかな、というのが第一印象。 MicrosoftSurface Pro3の感動は無かったけど、8千円台でこれなら良くね?

f:id:m0t0k1m0t0k1:20160614131302j:plain

写真は左からMacBook ProKindleiPhone 3GS

充電用のプラグとマイクロUSBケーブルが付いてるだけ。 いいよ、そういうのが欲しかった。

ケーブル指すと、いきなり起動してきた。 しかも最初からAmazonアカウントがセットアップしてくれてる。 便利。 ということで、いきなり使い始めることができるっす。

アプリは…

次に仕事で使いそうなアプリを入れていくことにした訳ですが。 事前に調べていた通りGoogle PlayではなくAmazonのストアから購入するようになります。 無料でも購入メールがいちいち届いてビビりました。

どうやらrootを取ってandroidとして使ってらっしゃる方が多いようですが、さらっと使ってみたところではiPhoneの方が100万倍使いやすいので、むしろそこまでしなくて良いようにおもいました。

肝心の電子書籍は?

いま書いているプロトタイプの電子書籍をkindlegenコマンドでepub→mobiと変換してKindle Fireへ持ち込みました。 いざ開いてみると…

見た感じが違いすぎる!!!

MaciBookとも違うし、もちろんKindleアプリともなんか違いました。 Windowsとも微妙な違いがあります。 さらにiPhone版のKindleアプリとは段落の表現が全く違いました!

これ、iPhone版のKindleアプリが一番イケてないのでは…

さらにフォントサイズは思っていたよりも大きく、コード片の指定していたフォントサイズは逆に小さすぎるということになりました。

こんな環境で読んでくださっていたとは。 無知とはいえ、不徳の致すところでございました。 さらに確認してから出版しないとダメなんだ、と深く反省しております。

ファーストKindleはどうだったか

まとめますと、次のようでございました。

  • シンプル
  • セットアップ済みなので無線LAN拾うくらい
  • アプリは期待しないこと
  • ブラウザ使いにくいけど、これはそういう用途向けではない
  • 電子書籍の見え方は他のどれとも違った

個人的にはScratch Jrが動くというのが一番の収穫だったかもしれません。 ストアアプリにあるだなんて…

ScratchJr

ScratchJr

なお、意外と厚みもあるし重く感じるのは筋力不足のなせる業なのか。 300gくらいのはずなんですけどね。

最後に、カメラはオマケだと思った方がいいです。 本にカメラ付いてたら、それは単なる付録でしょ?という感じです。

もうちょい使い込んでみたいと思います。 安価なandroidタブレットとしてはアリですが、マトモなモノが欲しいならWindows10のタブレットPCのほうがいいかな?