肩の力を抜いて

読者です 読者をやめる 読者になる 読者になる

肩の力を抜いて

まあ、落ち着いてコーヒーでも飲んでいきなさい。俺、コーヒー苦手だけど。

「ExcelVBAを実務で使い倒す技術」、いよいよ発売です(書評)

f:id:tadaken3:20170424194727j:plain

みなさん、こんにちは! タダケン(@tadaken3)です。

今回「ExcelVBAを実務で使い倒す技術」タカハシさんに献本いただきましたので、早速紹介したいと思います。ありがとうございます。

気になる目次も紹介します。

  • 第1章 脱初級への第一歩は「道具であるVBE」を使いこなすことから
  • 第2章 イミディエイトウィンドウの神髄
  • 第3章 バグを制するものはVBAを制する
  • 第4章 システムの成功と失敗の分かれ目は設計にあり
  • 第5章 できる担当者のコーディングは発想からして違う
  • 第6章 リーダブルコードでVBAを資産化する
  • 第7章 「変化」への耐久性を持たせるためのVBAの作法
  • 第8章 VBAは個人作業のみならず「チーム」にも革命をもたらす

ExcelVBAを実務で使い倒す技術は良き先輩となる本

この本の感想を一言で述べるとプログラミング初心者にとっての「良き先輩となる本」です。とくに、プログラミング経験がなく、周りに開発者の先輩・メンターがいない状態で、VBAでプログラミングを学ぼうと思う初心者の方にとっては、最良の先輩となるはずです。

例えば第3章では「エラーコードの読み方」がまとめられています。この手の内容は、開発者であれば、現場の先輩などから、おのずと習得して行くことだと思います。しかし、独学だとそうは行きません。そこで、本書が役に立つのです。

他にも、「検索の上手な使い方」や「読みやすいコードを書くためのコツ」といった、入門書には書いていないけど、開発をする上でとても役に立つ情報がこれでもかというくらい盛り込まれています。

初心者だけでなく、再入門にも!

また、初心者だけでなく、今まで何度かVBAやプログラミングに挑戦したけど、うまくいかなかったという方にも本書はとてもおすすめです。基本的なループや条件分岐といった文法を超えて、実際にプログラミングを仕事で役立てる方法を、学ぶことができます。

今までバラバラだった知識が、つながって一つの線になる感覚です。基本となる軸の通った知識があれば、どんな形でも応用ができるようになると思います。本書を読めば、コピペや写経から脱却して、オリジナルのコードを書けるようになるはずです。

まとめ

個人的には第7章『「変化」への耐久性を持たせるためのVBAの作法』がとても参考になりました。こういった作ったコードを、長期的に資産として活用していくための視点もふくまれているため、ほんとにためになる本だと思います。

ぜひ、書店やネット通販を通じてお手元にどうぞ。

ExcelVBAを実務で使い倒す技術

ExcelVBAを実務で使い倒す技術

GO言語、はじめました。

みなさん、こんにちは! タダケン(@tadaken3)です。 すっかり更新が滞ってしまいました。

突然ですが、GO言語に入門しようと思ったので、その経緯をブログに綴っておこうと思います。

なぜ、GO言語なのか

会社では基本、Python・Rなどでオレオレツールを作っていたのですが、他の人に使ってもらう際に、PythonやRをインストールしてもらわないといけないので、何かいい方法はないかなと思っていたら、GO言語にたどり着きました。

プログラミングは、基本、ネット記事や書籍をあさりながらやっていたので、独学だったということもあり、自分用のツールばかり作っていたのですが、そろそろ、一般に公開できるものが作りたいなと思ったのもきっかけです。

GitHubなんかに自分の作ったツールを公開できれば、かっこいいなあと。

GO言語のメリット

node.jsなどとも迷ったのですが、以下の2点で、GOに決めました。 結構単純な理由です。

言語仕様のシンプルさ

GOは、機能の割にはシンプルな言語仕様で作られています。そのあたりがPythonに近いのかなと思って、勉強することにしました。

シングルバイナリの手軽さ

GOで書かれたプログラムは基本的に単体で実行可能なシングルバイナリとして提供できます。いったんコンパイルしてしまえば、MacLinuxWindowsといった様々な環境で利用することができます。そのため、簡単なCLIツールなどを作るのに向いています。

まとめ

せっかくなので、このブログで定期的に学習の予定を公開できればいいなと思っています。 もしよかったら、アドバイスだったり、おすすめの書籍など教えてもらえるとうれしいです。

ガラポンTVの導入

PC、スマートフォンでテレビを見たいなと思っていたので、「ガラポンTV」なるガジェットを導入しました。

テレビを捨てる決断ができたのコレのおかげだったりします。時折、ニュースとかは見たいので。

ガラポンTVはどんなガジェットか一言で説明すると、最大8チャンネルのテレビを約4ヶ月間ずっと保存してくれるHDDです。 いわゆる全録レコーダーというやつです。

4ヶ月分も録画できるので、例えば、話題になったドラマなどをあとから一気見したりすることも可能となります。 どうして、こんな大容量を録画できるかというと「ワンセグ」で録画しているためです。

料金体系は買い切り型と月額型の2つあって、ボクは月額型にしました。 料金は月/1250円。1年で15,000円、テレビを買うより、かなり低コスト。

初期設定がちょっとややこしいのですが、無事に、「ガラポンTV」を使って、録画を始めることができました。 使い込んだら、レビューしたいと思います。

八年越しの「持たない暮らし」

実家に帰ると、モノが多いと感じる。 うちの母親は、ものが捨てられない人なのに、加えて、季節のイベントごと大事に思う人なので、 実家では、季節ごとの飾り物などがあって、非常にモノが多い。

その反動か、ボク自身は空間が広い部屋が好き。 この考えは、大学生のときに読んだ金子由紀子さんの「持たない暮らし」という本にすごく影響を受けている。 ちょうど当時のブログの書評が見つかったのでリンクを記載しておきます

お部屋も心もすっきりする持たない暮らし

お部屋も心もすっきりする持たない暮らし

金子さんの本の内容としては、

・モノを減らして、その分、知恵や工夫で楽しい暮らしを実現しましょう

といった内容だったと記憶してる。 今、はやりの「断捨離」や「ミニマリスト」といったことを先取りしていた内容だった。 本の内容はぼんやりとしか覚えてないのだけど、 一つだけずっと覚えているフレーズがあってそれが、これ。

「出ていくモノの量が、入ってくるモノの量と同じであれば、モノは増えない。」 「入ってくるモノの量が、出ていくモノの量より多ければ、モノは増えていく」

すごく当たり前のことなんだけど、部屋にものが増えていく理由を、端的に表しているなと 当時、すごく感動した。この原則のおかげで、モノを買う前には、モノを処分する。 モノを買ったら処分する。変に収納を追加しないっていうのが実践できたのかなと。

個人的に11月から新生活に入るので、いろいろなことがリセットされる。 これを機会に、ほんとうの意味での「持たない暮らし」を実践していきたいなと思い、 せっかくなので、ブログに残してみた。あと、もっとナチュラルにブログを更新したいと思う(これ何回も書いてる気がするけど)

PS. 当時のブログの日付を見ると2008年だった。 あれからもう八年もたったのかと思うと感慨深い。

PS2. ちなみに、母はもらったボールペンなども溜め込むタイプで、家に100本ぐらいボールペンがあった。 大げさではなく本当に。 インクが出ないボールペンもあったので、勝手に整理して捨てたら、すごく怒られたのは今でいい教訓です。

ものを減らすこと【自分メモ】

tadaken3.hatenablog.jp

引き続き、引越しに向けて、部屋の整理をしている。 せっかくの機会なので、テレビ以外にも、ソファを処分予定。 大きいものをなるべく処分していくつもり。 できれば、トランクケース一つに入るぐらいまで荷物を減らしたいと思っている

ちょうど、この本に影響されたので。

必要十分生活

必要十分生活

本書かれていたことで、実践してみたこと

  • バスタオルを使用しない。体を拭くのはスポーツタオルで十分。バスタオルを使用しないことで、洗濯の手間を削減。
  • 洗面所に一日一回以上使うものは置かない。そうすることできれいに保つ

テレビを処分して思ったこと

この度、諸事情により引っ越しすることになった。そこで兼ねてから考えていた「テレビの廃止」を実行することにした。たまたま、友人が結婚を機会に二人暮らしをするタイミングだったので、テレビはその友人夫妻に引き取ってもらった。

テレビがなくなってまず、思ったことは、部屋が広くなった。もともとも32インチのテレビだったので、それほど大きくなったわけではないのだけど、テレビを処分することで部屋が広くなった。テレビを処分したことで、レコーダー、ゲーム機、テレビ台なども処分することができて、配線周りもスッキリした。もともとゲーム機もたくさんあったので、わざわざHDMIを切り替えたりする手間からも開放された。テレビのリモコンも探さなくて住むようになった。

これは逆に考えると、「テレビ」というものを維持するために、「HDDレコーダー」「ゲーム機」「DVD」「テレビ台」といったテレビに関連する他のモノの管理をしていたんだなと、改めて感じた。

http://www.setuyaku-life.net/?p=11444

世の中って 私たちが消費するように、すごくよくできた構造になっています。

意識しないと、ひとつ買うだけで終わりません。

「持たない暮らし」で調べてみたブログにこんなことが書いてあった。たしかにそうだなと自分でも納得。モノを買うと、それと関係のあるものがどんどん増えていく。せっかくテレビを減らしたので、増やさないよう気をつけていこう。

カウントダウンタイマーをツイッターに自動でポストしてみた。

元ネタはこちら 割と本気で家庭用Slack Botを作ってみた

普通の機能だけではつまらない。せっかく夫婦で使っているので、夫婦っぽく記念日の情報とか流してみることにしました。

はてなカウンティングでカウントアップを作成し、そのスクリーンショットを撮って切り抜き、Gyazoにアップロードします。

記念日とキリの良い日数のときにお知らせしてくれます。「fukabot 記念日」と言うとすべての記念日情報を教えてくれます

上記のエントリーの中に、夫婦の記念日をお知らせする機能をSlackで実装されていたので、再現してみました。ただ、ぼくは結婚してないので、お正月までの日数をツイッターに投稿してみました(かなしみ)

実行環境

  • mac OSX
  • Python 2.7.1
  • Phantomjs

まず、はてなカウンティングで、カウントダウンタイマーを作成。

pyantomjsで作成したはてなカウンティングのURLから、キャプチャ画像を取得

var page = require('webpage').create();
page.viewportSize = {width: 1024, height: 768};
var url = 'http://counting.hatelabo.jp/count/i9nv7u2esv'
page.open(url, function () {
    window.setTimeout(function () {
        page.render('newyear.png');
        console.log("saved capture");
        phantom.exit();
    }, 200);
});

その画像をImage Magickで加工して、Twitterに投稿している。

#!/usr/bin/env python
# coding: utf-8

import json
from requests_oauthlib import OAuth1Session
import os

current_path = os.getcwd()

CK = 'your_key' # Consumer Key
CS = 'your_key' # Consumer Secret
AT = 'your_token' # Access Token
AS = 'your_token' # Accesss Token Secert

url_media = "https://upload.twitter.com/1.1/media/upload.json"
url_text = "https://api.twitter.com/1.1/statuses/update.json"

# OAuth認証 セッションを開始
twitter = OAuth1Session(CK, CS, AT, AS)

# 画像投稿
files = {"media" : open('after.jpg', 'rb')}
req_media = twitter.post(url_media, files = files)

# レスポンスを確認
if req_media.status_code != 200:
    print ("画像アップデート失敗: %s", req_media.text)
    exit()

# Media ID を取得
media_id = json.loads(req_media.text)['media_id']
print ("Media ID: %d" % media_id)

# Media ID を付加してテキストを投稿
params = {'status': 'お正月まで〜', "media_ids": [media_id]}
req_media = twitter.post(url_text, params = params)

# 再びレスポンスを確認
if req_media.status_code != 200:
    print ("テキストアップデート失敗: %s", req_text.text)
    exit()

print ("OK")

それぞれ、実行する。

#!/bin/bash
cd ~/Desktop/capture

#phantom.jsでキャプチャを取得
phantomjs capture.js

#image_magickで画像サイズを変更
convert newyear.png -crop 500x250+100+70 after.jpg

#ツイッターに投稿
python update_image_twitter.py

参考URL