t-hom’s diary

主にVBAネタを扱っているブログ…とも言えなくなってきたこの頃。

2019-01-01から1年間の記事一覧

ローソク足チャートでダイエットの経過報告

前回ローソク足で体重管理するという記事を書いた。 今回はプログラミングと全く関係ないけど、まぁ前回記事を書いてからそろそろ2週間だし経過報告しとかないとどうせ三日坊主だろとか思われるものアレなので。。てな感じで現在のグラフがこちら。 1カ月で1…

ローソク足チャートで体重管理

先日、別の記事で紹介した自動体重記録システムだが、このなかにローソク足チャートを表示させたいというものがある。 今回はプログラミング関係ないけど、これをちょっと説明してみようかと。 ローソク足チャートについて ローソク足チャートは主に株の値動…

VBA 数値をふりがなに変換するマクロ

VBA

今回のマクロは、数値をふりがなに変換するマクロの紹介。 例えば1なら「いち」、290なら「に / ひゃく / きゅう / じゅう」という具合だ。これの何が難しいかというと、単純に数値の読み「1~9」と位の読み「じゅう・ひゃく・せん」を組み合わせればできる…

VBA 減量のためのカロリー計算

VBA

ちょっと最近太りぎみなのでそろろそマジでダイエットでもしようかと思い立ったところ、世の中には種々様々なダイエット法が存在していて、一体どうすれば良いのか混乱する。ただ基本的には、シンプルにこういう式で表すことができる。 摂取エネルギー > 消…

VBA 電波の図形を作成するマクロ

VBA

今回は電波の図形を作成するマクロを作った。 といってもサイン派みたいなのではなく、イラストでよくある電波でてますよーというアイコンみたいなもの。 下図のように基本図形の「円弧」を使って作画するのだが、手動でやるとどうにも綺麗にできないのでプ…

PythonでGUI版 筋トレメトロノームを作成 その2

前回は筋トレ用メトロノームをGUI化した。 thom.hateblo.jpなるべく紹介済の機能に絞って書いたのでコードがとても冗長だ。 前回GUIパーツをそれぞれ変数に入れて扱っていたため、今回はPythonのデータ型(リスト、タプル、ディクショナリ)を使ってもう少しス…

PythonでGUI版 筋トレメトロノームを作成

前回の記事ではPythonで筋トレ用メトロノームを作成した。 thom.hateblo.jp前々回ではTkinterを使ったGUIのサンプルを紹介した。 thom.hateblo.jp今回は、これらを組み合わせて、GUI版の筋トレ用メトロノームを作成してみよう。 動作イメージ 動作は前回のCU…

Pythonで筋トレ用メトロノームを作成

前回の記事ではPythonでGUIを体験するプログラムを紹介した。今回はPythonで筋トレ用メトロノームを作成。 音がメインなので、GUIは作らないが、CUIでも十分実用的なプログラムが作れるということで紹介。 学習モチベーションUpに繋がると嬉しい。 実行イメ…

VBA経験者向け、Python入門用 GUIサンプル

今回は、ちょっとPythonを触ってみたいVBA経験者に向けて、簡単なGUIサンプルを紹介する。 Excel VBAではマクロの実行結果がシートに反映されるので、ある意味それ自体がGUIプログラミングと言えるが、殆どの言語では黒い画面に"Hello, World!"から入門する…

Python Tkinterで画面遷移

前回作成したPythonのルーチン読み上げツールだが、GUIメニューを作ってそこから起動するような形にしてみた。 thom.hateblo.jp動機は、将来的にツールを増やしていく場合、Bashスクリプトのダブルクリックで起動するのが面倒だから。机に立てかけたタッチス…

Pythonでルーチン読み上げツールを作ってみた

最近Pythonをかじりだした理由として、Rapsberry Piで使う目的で日常ルーチンを読み上げてくれるツールを作ったことがきっかけ。※読み上げといってもテキスト合成ではなくて、単にwavファイルに入れておいた音声を再生するだけです。 タイトルでがっかりさせ…

プログラミング言語はひとつマスターすれば他もできる?

プログラミングでは、ひとつの言語をマスターすれば、どんな言語でも使えると言われている。 この言説には賛否あるけど、ある意味正しくて、ある意味間違いだと思う。より正確に言えば、新しく学ぶ言語と既にマスターしている言語に共通する概念についてはス…

VBAで外部ツールを使わずに簡易テスト駆動開発をやってみる。

VBA

最近会社の会議でTDDが話題になった。 TDDとは何か?まずWikipediaを引用してみる。 テスト駆動開発 (てすとくどうかいはつ、test-driven development; TDD) とは、プログラム開発手法の一種で、プログラムに必要な各機能について、最初にテストを書き(これ…

VBA 開発中マクロブックのバックアップを取るマクロ

VBA

開発中のマクロで、こまめに保存しておきたいケースがあったのでコードを書いてみた。 これは開発中のブックに埋め込んで利用する前提。私は標準モジュール「DevTools」に保存して使っている。 Sub BackupFile() 'Microsoft Scripting Runtimeへの参照設定が…

Excel VBAでスクロール可能なフォームのアイデア

Excel VBAでフォームを作る際に、項目が多くてウインドウの高さに収まりきらないことがある。 そこで今回はスクロールによってフォーム全体をウインドウに収めるアイデアを紹介する。言葉では何がやりたいのか伝わりにくいと思うのでまずは動作イメージから…

VBA 連続して与えられた数の最大値、最小値を求めるクラス

今回は連続して値を投げ込み、その最大値・最小値を求めるクラスを紹介する。 かなりシンプルなのでわざわざ記録しておくこともないかなと迷ったけど、クラス初心者向けにはちょうど良いサンプルになりそうなのでとりあえず。 クラスモジュールのコード クラ…

VBA 呼び出し履歴を使ったデバッグ

VBA

VBEditorには呼び出し履歴という機能がある。たとえば、プロシージャProcAからプロシージャProcBを呼び出した際にProcBで実行時エラーを吐いて中断したとする。 このとき、中断モードでプロシージャ呼び出しを遡ることができる機能である。本記事ではこれを…

VBA Debug.Print、Debug.Assertの代用クラス案

Debug.Print、Debug.Assertはいずれもデバッグ用の機能なので、リリース版のコードには不要である。 かといって消してしまうと、次にコードを修正するときに面倒なので残しておきたい。そこで代用クラスを作ってみたので紹介。まずクラスモジュールを挿入し…

VBA アサーションチェックとは

最近Twitterで何件か、Debug.Assertについて語られているのを見かけたので乗っかってみる。Debug.Assertの使い方自体は以下で述べたので今回はその意義を中心に説明してみようと思う。 thom.hateblo.jp アサートとは Assertという英単語には、主張する・断言…

VBA ユーザーフォームでDual Listboxを作成

今回紹介するのは、複数アイテムの選択でよく見かけるDual Listbox UI。 一応説明しておくと、左のリストからアイテムを選択し、右へ移動させ、最終的に右にあるものが選択したアイテムとして扱われるユーザーインターフェースだ。構造はそれほど難しくない…

VBA 繰り返される定常業務の工数を見える化するアイデア

VBA

サービス業において、業務工数を見える化するというのはとても難しい。 実績ベースで工数入力をしている職場は多いと思うけど、実際のところその方法は担当者の匙加減で何とでもなってしまう。工数分析をしようと思ったら、工数は理論値で出して、実績との乖…

VBA 特定日付が、第何週目の何曜日なのかを求める関数

VBA

今回は特定日付が、第何週目の何曜日なのかを求める関数を紹介する。 といっても曜日はWeekday関数やFormat関数で簡単に求まるので、今回紹介するのは月のうちの何週目に相当するかを求める関数だ。まず、特定月のうち何週目に当たるのかは、次の関数で求め…

PowerPoint VBA スライドにプロジェクトのスケジュール図をプロットするマクロ

VBA

今回はパワポでよくあるこういうスケジュールスライドを作るVBAコードを紹介。 と言っても現段階では完成度は低いのであまり期待されると困ってしまう。ところどころハードコーディングしているし、クラスモジュール内でSelectionを参照しちゃってるし、変数…

VBA マクロのバージョン番号の付け方

ソフトウェアは一度作って終わりではなく、公開後もバグの修正や機能向上のため修正を繰り返すことになる。 マクロも同様で、通常はバージョン番号をつけて管理したりする。バージョン番号の付け方は特に決まっているわけではないが、一般的には次のルールに…

VBA Win32API GetAsyncKeyStateを使ってマクロ実行時に特定キーが押されているかを検知する。

VBA

今回はWin32APIのGetAsyncKeyStateを使ってマクロ実行時に特定キーが押されているかを検知するコード。 この手の情報は既に沢山出ているが、検索したサイトはいずれも情報が完全ではなかったので少し苦労した。では、早速完成コードを紹介する。 今回はシフ…

VBA フローチャート作成ツールBread Chartに挿入機能検討

VBA

先ほど新版を公開したところだけど、以前から悩んでいた機能がなんとか実現できそうな感じがしてきたので、取り急ぎコードだけここに書いておく。 thom.hateblo.jp 実現したい機能 たとえば下図のようなことをやりたいとする。 しかし、単純に列ごと切り取っ…

VBA フローチャート作成ツール(BreadChart)の更新 Version 1.2

VBA

GitHubで公開しているフローチャート作成ツールをアップデートしたので変更点のご案内。 入手場所 こちらからアクセスしていただき、 github.com以下のDownloadボタンで入手できます。 更新内容 Configシートでシェイプの色を指定できるように変更 Process・…

忙しすぎる人に確実に読んでもらう為のメールの送り方について考察

今回は忙しすぎる人に確実にメールを読んでもらうためのテクニックについて自分の考察を紹介する。ここでいう忙しすぎる人とは、「忙しすぎて諦めの境地にいる人」のことだ。諦めの境地なので、基本的に人の頼み事なんて知らんぷり。電話しても日中に繋がる…

VBA 狙った範囲だけをAutoFitするマクロ

VBA

以下のような表を作ったとき、普通にオートフィットをかけるとA1セルに入力されたタイトルの幅もカウントされてしまい、幅がおかしくなる。 ↓AutoFit後 今回はこれを何とかするマクロ。元ネタはこちら。こういった表、よく作るんですが、列幅のオートフィッ…

VBA そのマクロ集約、ちょっとまった!

たとえば、とあるデータを次のようなステップで加工しているとする。それぞれのマクロはボタンを押すだけで完了する。 だったら、わざわざ3つもボタンを押させる意味はあるのか。 普通はそう考える。そしてボタンを3つ押す作業を一つのボタンに集約する。こ…

当ブログは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。