タグ

ブックマーク / thom.hateblo.jp (9)

  • ローソク足チャートで体重管理 - t-hom’s diary

    先日、別の記事で紹介した自動体重記録システムだが、このなかにローソク足チャートを表示させたいというものがある。 今回はプログラミング関係ないけど、これをちょっと説明してみようかと。 ローソク足チャートについて ローソク足チャートは主に株の値動きを表すために使用されるが、上下に変動が激しいデータの傾向を掴むのに向いているので体重管理にも使える。 下図がここ一週間ちょいの体重の変動だ。(後述するが、緑がDown、赤がUpと、海外の株価で一般的な配色と逆にしている。) どうやって見るか、図で示すとこんな感じ。 今回のチャートではローソク1 = 1日なので、このチャートは日足(ひあし)と呼ばれる。 上記の場合、朝のOpenに対して夜のCloseの方が値が小さいため、陰線(いんせん)と呼ばれる。 逆に朝と夜で体重が逆転した場合、箱の色が変わる。 こちらは陽線(ようせん)と呼ばれる。 HighからL

    ローソク足チャートで体重管理 - t-hom’s diary
  • VBA経験者向け、Python入門用 GUIサンプル - t-hom’s diary

    今回は、ちょっとPythonを触ってみたいVBA経験者に向けて、簡単なGUIサンプルを紹介する。 Excel VBAではマクロの実行結果がシートに反映されるので、ある意味それ自体がGUIプログラミングと言えるが、殆どの言語では黒い画面に"Hello, World!"から入門するのが通例で、GUIの話は入門書の後半に差し掛かるあたりでちょろっと紹介される程度だ。 一方でGUIについて詳しく書かれた専門書は、黒画面での修行が終わったことを前提にしているので難しい。 黒画面 → 華がないのでやる気がでない。 GUI → 難しいのでやる気がでない。 つまり、ちょっとPythonを触ってみて、GUIが使えることを実感して、モチベーションをあげてから格的に入門したいという方に向けた体験用コードで、しかもVBA経験者向けというのがなかなか無いので、今回書いてみた次第。 作るもの サンプルなのでシンプル

    VBA経験者向け、Python入門用 GUIサンプル - t-hom’s diary
  • オブジェクト指向でつまづく7つのポイントと処方箋 - t-hom’s diary

    こちらの記事で伊藤先生も書かれているように、この数年でVBAのクラスモジュールに関する情報が充実してきている。 これからクラスモジュールについて学習しようと考えている方も沢山(期待を込めて)いらっしゃることと思う。 そこで今回は、オブジェクト指向を学習するにあたってつまづきやすいポイントを紹介し、その処方箋としてアドバイスを書いてみようと思う。 私がオブジェクト指向でつまづきやすいポイントは以下の7つだと考える。 オブジェクト指向の目的が理解できない オブジェクト指向の悪評に惑わされる オブジェクト指向の用語がややこしすぎる オブジェクト指向の前に覚えるべきことを覚えていない オブジェクト指向の一部の特長を過大に受け止めてしまう オブジェクト指向での具体的な実装方法が分からない オブジェクト指向の活用方法が分からない これらは私自身がつまづいたポイントでもある。こうしてみると結構ある。 で

    オブジェクト指向でつまづく7つのポイントと処方箋 - t-hom’s diary
  • Excelのセキュリティ設定と怪しいファイルの対策 - t-hom’s diary

    Excelには、悪意のあるマクロによってコンピューターが被害を受けることがないようにいくつかの防御機構が備わっている。 しかしExcelマクロの解説書・解説サイト等では利便性の観点からか、設定を無効化しましょうという方向での解説が多く、セキュリティリスクについては「注意しましょう」という漠然とした勧告か「自己責任で」という免責のみで具体的に何をどう気を付ければ良いのかが書かれていないことが多い。 今回は、これらの防御機構の紹介と、正しい活用方法、外した場合の具体的なリスクについて説明する。 Excel 2013を基に紹介するが、これらの機能はExcel 2010にも存在する。(2007にも恐らくあるけれど、持っていないので不明) 目次 (1) 保護ビュー 説明 設定箇所 (2) 標準ブック形式へのマクロ保存不可 説明 (3) セキュリティの警告 説明 設定箇所 (4) VBAによるマクロの

    Excelのセキュリティ設定と怪しいファイルの対策 - t-hom’s diary
  • Prism.jsの紹介と日本語文字列が認識されない件の対応方法 - t-hom’s diary

    目次 Prism.js(プリズム)とは Prismの入手 Prismの使い方 日語文字列の問題 Prism.jsを日語文字列に対応させる方法 7/30 追記:コード中のコメントもおかしいのでPrism.jsを再修正 Prism.js(プリズム)とは Prism.jsとはWebサイトやブログにプログラムのソースコードを掲載する際、要素ごとに色付けしてくれるツールである。 以下は、Prism.jsの適用前と適用後のイメージ。 私のWebサイトの一部では同種のツール「SyntaxHighlighterと」を利用しているが、Prism.jsの方がサイズが軽量で動作も速いとのことなのでこちらに乗り換えようかと検討中。 ※ちなみに、はてなブログはわざわざツールを使わなくでもコードの色分機能が最初から備わっている。今回は別のサイトの話。 さて、今回Prism.jsを試してみたところソースコード中に日

    Prism.jsの紹介と日本語文字列が認識されない件の対応方法 - t-hom’s diary
  • 業務マニュアルを作る際に重要な3つのポイント - t-hom’s diary

    今回は業務マニュアルを作る際に重要な3つのポイントを紹介する。 私が重要だと思うポイントは、指示の明確さ、メンテナンス性、読みやすさの3点である。 以下にそれぞれ詳しく解説する。 指示の明確さ 業務マニュアルは作業者に対し、何をすればよいのか明確に伝える必要がある。 これまで見てきた指示文のスタイルはおおむね3パターンある。 行為名で終わるパターン 以下の例では「行為名」で終わっているためコンパクトにまとまるが、状況によって勘違いの元になる。 1) ○○の設定変更 2) ○○をクリック 3) サーバーの再起動 たとえば、手順2で○○をクリックしたことで自動的に再起動されるにも関わらず上記のような表記になっていると、作業者への指示が不明瞭ということになる。 動詞で終わるパターン 以下の例では「動詞」で終わっているためややコンパクトにまとまるが、こちらも状況によって勘違いの元になる。 1) ○

    業務マニュアルを作る際に重要な3つのポイント - t-hom’s diary
    kinacco
    kinacco 2017/06/28
    マニュアル作るときいつも悩むので、参考にさせていただきます!
  • VBA Boolean型をTrueやFalseと比較することの是非について - t-hom’s diary

    If文の条件式でBoolean型をTrueやFalseと比較することは昔から論争の種だった。 たとえば以下のようなIf文。 If IsNumeric(x) = True Then If IsDate(x) = False Then わざわざTrueやFalseと比較しなくても、このように書くことができる。 If IsNumeric(x) Then If Not IsDate(x) Then Boolean型を返す関数をTrueやFalseと比較するのは初心者に多い書き方であるが、上級者のなかには冗長であることは承知のうえであえてTrueやFalseと比較するという方もいる。以降、この勢力を比較派と呼ぶことにする。 そしてこれに反対する勢力、つまり後者の書き方を非較派と呼ぶことにする。 ※ちなみにここで論じるのはあくまでBoolean型とTrue/Falseとの比較の是非であって、それ以外の

    VBA Boolean型をTrueやFalseと比較することの是非について - t-hom’s diary
    kinacco
    kinacco 2017/05/09
    それがし比較派でござる。関数名が長くなってしまうと、If の次の「NOT」を見落としやすいので「=False」の書き方に統一しようぜっていう、前の会社にいた時の規約がクセになっております。
  • VBA マクロが遅い・速いという議論は、要件ありきの話 - t-hom’s diary

    VBAのコードについて、よく、この手法は遅いから使うなという話を聞く。高速化万歳! またはその逆で、高速化のためにわかりやすさを犠牲にするなどナンセンスだ!という話も聞く。 この記事では前者を「$バンザイ」、後者を「$ナンセンス」と呼ぼう。 $バンザイと$ナンセンスはどちらも自分の考えが正しいと信じており、否定しようものなら青筋を立てて反論してくることだろう。 問題はそこにある。あまりにも感情移入しすぎている。 私が思うに、$バンザイと$ナンセンスはどちらも正しくない。個々の要件、シチュエーションが考慮されていないからだ。 $バンザイは、マクロが高々1分速くなったところでビジネス的には大して変わらないという観点が抜け落ちている。 実行に15分かかる処理が14分になったところで、気づきもしないだろうし、そのような高速化にあまり意味はないと思う。 また、月に1度しか発生しない作業なら、2分を1

    VBA マクロが遅い・速いという議論は、要件ありきの話 - t-hom’s diary
  • VBA マクロの高速化のためのApplication設定をクラスモジュールにまとめる - t-hom’s diary

    今回はちょっと変わったクラスモジュールのテクニック案。 異端扱いされそうな気がするので、思いついた私自身、採用には慎重なのだけれど、アイデアとしては面白いと思ったので備忘録として公開してしまうことにした。 さて、過去にPropertyプロシージャを使った高速化テクニックというのをやった。 thom.hateblo.jp 今回も基的にはApplication設定を変更するだけなのだが、クラスモジュールを使って更に怠慢にやろうという話。 作り方 クラスモジュールを挿入し、オブジェクト名を「OneTimeSpeedBooster」に変更する。 このクラスの名前付けは超重要!! そもそも馴染みのない異端テクニックなので、何がしたいのか名前で示さないと訳が分からなくなる。 クラスに書くコードはこちら。 Private Sub Class_Initialize() With Application

    VBA マクロの高速化のためのApplication設定をクラスモジュールにまとめる - t-hom’s diary
    kinacco
    kinacco 2017/03/19
    自分は標準モジュールでやってました。 クラスのコンストラクタとデストラクタでやるのですね!これ好きです。
  • 1