Quantcast
Channel: t-hom’s diary
Browsing all 493 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

VBA マージソートの実装と図解

前回はトランプを使ってマージソートを説明した。thom.hateblo.jp今回は実際にVBAでマージソートを書いてみる。目次準備分割するコードマージするコード完成コードの全体ソートの呼び出しコードマージソート本体ソートのテストコードマージソートの存在意義準備まずはソートの対象を用意しないといけないので、配列を作ることにした。Sub MStart()'配列Arrの準備Dim...

View Article


Image may be NSFW.
Clik here to view.

コスパが決め手のSCOTCH GRAIN ~8年履いた革靴、まだまだ現役。

3万円の靴…というと、「高っ」という反応が殆どだ。ところが、トータルのコスパを考えるとそうでもない。ビジネスシューズは安いものなら3千円くらいから売っている。高くても1~2万くらいのものを買う人が多いと思う(知人がたまたまそうなのかもしれないが)安い靴を履いていた頃私が社会人1年目の頃に履いていたのは5~7千円クラスのもの。...

View Article


Image may be NSFW.
Clik here to view.

VBA 式と式の評価 ~数式だけが式じゃない~

プログラミングの世界では式の評価という言い回しが登場する。VBAの書籍では見かけない言い回しであるが、関数やオブジェクトの動作について説明・理解するのに便利な概念なので覚えておくと良い。式といえばまず数式をイメージする方が多いだろう。あの忌まわしい数字と記号の羅列である。(数学好きな人、ごめんなさい。)また、評価という言葉は、「高評価・低評価」など、一般的には物の良し悪しに言及する際に用いられるが、...

View Article

Image may be NSFW.
Clik here to view.

VBA Sheetsの後にドットを入れても入力候補の自動補完がされない理由

'============▼2016/5/31追記▼============Workbooksオブジェクトは存在しないと書きましたが、Microsoft MVPの伊藤さんから誤りを指摘いただいたので修正しました。伊藤さん、ありがとうございます。【参考】SheetとSheetsとWorksheetとWorksheets:エクセルマクロ・Excel...

View Article

Image may be NSFW.
Clik here to view.

VBA Cellsの正体は、全セルを包むRangeオブジェクトである

セルを行・列の数値で指定するCellsはRangeと並んで基礎中の基礎であるが、その正体を知る者は少ない。まあ別に知ったところで使い方が変わるわけではないのだが、知っておいて損になるものではないので紹介しよう。今回も評価という用語を用いるので、意味が分からない方はこちらを参照。thom.hateblo.jpさて、次のコードを例に評価プロセスを追ってみよう。ThisWorkbook.Sheets(1)...

View Article


Image may be NSFW.
Clik here to view.

VBA なぜ引数が一つのときは、カッコを付けても付けなくてもプロシージャを呼び出せるのか

初心者の方はプロシージャ呼び出しの時にカッコを付けるかどうか迷う方もいると思う。基本ルールは、Callを書く場合と、戻り値を利用する場合にカッコを付け、それ以外では付けてはいけないである。以下のように、不要なカッコを付けると、コンパイラに叱られてしまう。しかし困ったことに、この基本ルールには例外がある。引数がひとつなら、単体でカッコを付けても呼び出せてしまうのだ。たとえば以下のようなケースである。S...

View Article

Image may be NSFW.
Clik here to view.

執筆環境のグレードアップ

パームレスト私は普段からプログラミングの学習やブログの執筆などでキーボードを良く使う。それで結構いい値段のキーボードを使っているのだが、パソコン専用のローデスクを使うようになってから今一つ入力しづらい。スライド式のキーボードテーブルは、これ以上引き出すことができないため、腕を置く場所がない。仕方なくキーボードの下のわずかなスペースに手を置いて入力してたのだが、上端にあるキーが押しづらく、入力のたびに...

View Article

Image may be NSFW.
Clik here to view.

VBA Rangeでセル範囲に付けた名前を参照

Excelでは、セルに任意の名前を付けることができる。任意のセルを選択した状態で、数式バーの左にある名前ボックスに名前を入れてEnterで確定させるだけだ。セル範囲に対しても同様の操作ができる。付けた名前は数式で参照させることができる。行や列を挿入すると、名前が指すセル範囲も自動的に移動してくれる。一度つけた名前を消したり範囲を変更するには数式タブから名前の管理を開く。すると次のようなダイアログで編...

View Article


Image may be NSFW.
Clik here to view.

VBA インターフェースを活用してコードの抽象度を上げるテクニック

以下のような注文票にマクロでデータを記入することを考えてみる。人間が記入する場合は、次のように考えながら記入していくだろう。「注文票の、ひとつ目の商品名は"パソコン"で、単価は10万円、個数は40個。二つ目の商品は"複合機"で、単価は150万円、個数は2個。」これをVBA風に書くと、こうなる。Sub注文記入()With注文票.注文(1).品名 ="パソコン".単価 =100000.個数...

View Article


Image may be NSFW.
Clik here to view.

プログラミングだって立派な趣味だ

家でプログラムを書いているという話をすると、仕事中毒だと言われることがある。わざわざ休日に家で仕事をしているつまらない奴だと思われているようで癪である。でもプログラミングだって立派な趣味だ。絵を描いたり、作曲したりするのと同じ、創作活動だ。夢中になって時間を忘れてしまうことだってある。残念なことにプログラミングというと、どうしても仕事のイメージが強いらしい。確かにプログラミングがどういうものなのか知...

View Article

Image may be NSFW.
Clik here to view.

VBA Withを使ったコードをWith無しのコードに変換するマクロ ~ スタックの応用 ~

今回は、Withを使ったコードをWith無しのコードに変換するマクロを作ってみる。何の役に立つんだというツッコミはなしで。目次マクロの概要実現方法を検討する入れ子になったWithの扱い方VBAでスタックを実装スタックを使ったWithを外すコード課題マクロの概要変換のターゲットとするコードはこちら。Sub hoge()Dim R As Range Set R = Selection With R...

View Article

Image may be NSFW.
Clik here to view.

VBA 業務フローチャートをマクロで簡単に作成する

フローチャートはプログラミングでよく用いられていたが、最近は専ら業務の流れを説明する図として利用されている。特に部門をまたがる業務の全体像を把握するには便利である。しかし、図なのでとにかく作成が面倒くさい。どうしてもボックスのサイズをそろえたり、位置を揃えたり、コネクターをつなげたりといった細かい作業に時間を取られてしまう。今回はマクロを使ってフローチャートを簡単に作成する方法について紹介する。目次...

View Article

VBA 初学者こそ、なんでもVBAでやるべし

Excelには高度な機能が備わっており、VBAを使わなくても例えば関数やピボットテーブルなどの機能で問題が解決してしまうことも多い。その意味で、VBAでなんでもやろうとするのは効率が悪い。でも、ことVBAの学習においては、それらExcelの機能を知っていることがむしろ弊害になってしまうこともあるように思う。だって、すでに機能としてあるんだったら、作る必要がなくなってしまう。だったら別のものを作ればい...

View Article


Image may be NSFW.
Clik here to view.

VBA 新しい色の指定方法 ~XlRgbColor定数

VBAで使える色定数は以下の8種類がある。vbBlackvbBluevbCyanvbGreenvbMagentavbRedvbWhitevbYellow私も今までこれ以外使ったことが無かったが、先日オブジェクトブラウザを探索していたらXlRgbColor列挙型なるものを発見した。rgbAliceBlueとか、rgbAntiqueWhiteといった色名が登録されており、定数として利用できる。わざわざ色...

View Article

Image may be NSFW.
Clik here to view.

VBA 配列とコレクションの違いをメモリ上のデータ構造から理解する

VBAでは複数データを格納できるデータ型として、配列とコレクションがある。それぞれ一長一短あり、どちらが優れているというものではないのだが、どちらかといえばデータの追加・削除が簡単に行えるコレクションのほうが使い勝手は良いかもしれない。さて、今回は配列とコレクションのデータ構造に焦点を当ててそれぞれの違いを説明する。配列のデータ構造例えばInteger型の配列を次のように作成する。Dim...

View Article


amazonアソシエイトのウィジェットがChromeで自動再生されなくなったのでランダムに商品を並べる機能をJavaScriptで自作する。

このブログはamazonアソシエイトに参加しており、その広告収益を運営費に充てている。先日までこのブログのサイドバーにはA8.netの固定バナーを表示していたが、まったく収益になってなかったので、そちらを削除して空いたスペースにおススメの小説を掲載することにした。当初はamazonのスライドショーウィジェットが良さげだったのでそれを使う予定だったのだが、配置してみたところ自動再生されない。調べたとこ...

View Article

Image may be NSFW.
Clik here to view.

Excel TRIM関数で消えない謎の半角スペースをVBAでなんとかする

先日、仕事で受け取ったExcelデータにTRIM関数で除去できない謎の半角スペースが混じっていた。その現象を再現したのがこちら。A1セルとA2セルは全く同じに見えるが、A1セルの1文字目はトリムできない謎のスペース。A2セルの方は通常のスペースである。このようにTRIM関数を使っても、スペースが消えてくれない。VBAで謎のスペースを調査いったいこのスペースは何なのか。VBAで調べてみた。まずはふつう...

View Article


Image may be NSFW.
Clik here to view.

だれだ、俺の紅茶に砂糖を入れたのは!まずい。。

まぁ、実際に入れられたわけじゃないんだけれども。今朝コンビニでサンドイッチと紅茶を買った。こちらの商品キリン 午後の紅茶 あたたかい ストレートティーPET 345ml×24本出版社/メーカー:キリンビバレッジ発売日:...

View Article

Image may be NSFW.
Clik here to view.

VBA 脱初心者を目指す ~ Functionを使いこなすにはHowではなく、Whatに注目する

VBAではFunctionプロシージャを使いこなせるようになったら、中級の域に達したと言っていいと思う。あくまで個人的な意見であるが。さて、Functionプロシージャの仕組み自体は、それほど難しいものではない。ただ初心者の方と話をしていると、Functionを使うと「あっちいったりこっちいったり」するので難しいとのこと。ひょっとするとコードを読み込んでいくなかで、Functionの中身まで読んでし...

View Article

VBA オブジェクト変数の宣言時にNewすると何がまずいのか

オブジェクト変数の宣言と使用については、以下の2パターンが存在する。■パターン1 宣言と同時にNewしてしまう方法 Dim C As New Collection■パターン2 宣言とオブジェクトのSetを分ける方法 Dim C As Collection Set C = New...

View Article
Browsing all 493 articles
Browse latest View live