文字列をとりだすVBA

VBAで文字列マッチングしたけれど、文字列の中身だけが必要だというときにMid関数を使用して中身を取り出すことができます。

正規表現のmatchプロパティなどで位置を取得したりします。

 

MID(String,開始位置+1、終了位置-開始位置-1)

上記でできます。

 

デザインパターンのstateパターンへの取り組み方

デザインパターンにはたくさんの先人の知恵が詰まっています。

stateパターンもそのうちの一つ。

 

私が思うメリット

stateパターンのメリットは状態に関する分岐を一箇所にまとめることができる点だと考えています。

 

stateパターンを使用するためにすること

1振る舞いの整理

まずどのような振る舞いがあるか整理します。

実際の振る舞いは思っていたとおりの数だったでしょうか?

ここで言うところの振る舞いとは、人間の行動で例えると歩くとか走るとかになります。

2状態の整理

次は状態の整理をします。

状態は様々な要素の組み合わせによって決定されることになります。

表などに書き出し状態に名前をつけます。

人間のお昼ごはんの行動に例えると

・時間が12:00-14:00

・人がお昼ごはんを食べていない

・人が空腹を感じている

・食料を持っている

上の状態の時、持ち物のご飯を食べるという振る舞いを実行させるといったようなことです。

・時間が12:00-14:00

・人がお昼ごはんを食べていない

・人が空腹を感じている

・食料を持っていない

・冷蔵庫に食材がある

・キッチンがある

・キッチンが使用できる

・ご飯を作る元気がある

上の状態の時、食材を加工して料理をつくり昼ごはんを食べる振る舞いを実施するなどになります。

今回はふたつの振る舞い二つの状態という状態と振る舞いが二つでしたが、状態の方が少なくなることもあります。

3stateパターンに置き換える。

stateパターンに置き換えます。

実際はデータストアを用意したりしますが、そこは出来ていると仮定していきます。

置き換えのときは振る舞いを定数にしてswitch文を使用して振る舞いを振り分けるのが良いかなと思います。

 

stateパターンのクラス図やシーケンス図は割愛します。

wikipediaや有名な本とかがたくさんあるので探してみてください。

 

vbaで参考にしたサイト

 

色の参考に

http://www.geocities.jp/nekonoyu_jp/vb001/vb001.html

プロパティの参考に

https://msdn.microsoft.com/ja-jp/library/office/ff841208.aspx

プロパティとかの参考に

https://msdn.microsoft.com/ja-jp/library/office/ff840244.aspx

チェックボックスの作成の参考に

ほとんどこちらの方のを参考にさせていただきました。

http://www.excel-excel.com/tipsctr/vbac_6.html

削除はもっと簡単に削除できる方法もあったのですが、原因不明のバグが生じたので安定的なこちらの方法を使用しています。

excel vba のプログラムのかけらを作ったので

簡単なチップを作ってみたので一通り紹介と記録

今回はは、githubに情報展開したのでそちらのリンクを貼ります。

githubのリンク

Mynote

はじめてgithubのGist使ったから細かいことよくわからないけど、とりあえず記録して。

リストデータからを動的にチェックリストを作成するためのプログラム群になります。
お納めください。

今回のコードではリストその物を動的に作成できるわけではないです。
リストを動的に作成することもできますが、チェックリストを作成することに重きを置いた記録になります。

前提として、これらのプログラム群を一つのモジュール内に作成しています。
クラスは使用していないです。

const …と書かれている変数群が記述されたコードはサブプロシージャやfunctionプロシージャ内に記述すると切替したときにオーバーフローのようなバグが発生してしまいますので、フィールドに記述してください。 詳細なバグの理由に関しては検証していません。

クラスで使用する際はクラスフィールドにモジュールに記述するときはモジュール内に記述します。
モジュールには、Option Explicit を先頭に書いていますが今回は割愛しています。

リストのcheckboxはOLEObjectのcheckboxを利用しています。
データの取得はあらかじめ準備しておいたテーブルリストオブジェクトのflg列に格納して行毎に取得することを想定する作りになっています。

コード毎の解説はまたやる気が出た時に頑張ってみます。  

全部のせた分です。

myNoteSummery

powershellでファイルの名前を変更したり(他)

powershellで新しいフォルダを作る方法

mkdir dirctory_Name

powershellでフォルダ内の一覧を出力する方法

ls

powershellでファイル名を変更する方法

PS C:\Work> Rename-Item 古い名前.md -newName 新しい名前.md  

とりあず上のコマンド使えばファイル操作がなんとなくできるようになる。

Vimを使うようになった。

vimテキストエディタです。 幾つかのモードに分かれているエディタです。

No. mode extra
1 normal モードのコントローラ
2 insert 文字入力
3 commandLine コマンド入力
4 visual 選択

上記は僕の解釈が多分に含まれている。
結構間違ってるかもである。
今はまだテキストエディタとしてもしっかり使えているわけでない。
コピーペーストがファイルエンコードなどの設定の影響でしっかり使いこなせていないためです。 そのあたりは不便です。

いいなっておもったところは、デフォルトでシンタックスハイライトをいろんな言語してくれるところです。
今後も使っていきなれようと思っています。

command

クリップボードにコピー visualモードでコピーする行を選択して【"*y】
保存 コマンドモードで :w (ファイル名)
閉じる :q
強制的に閉じる :qa!

テーブル作成時にハマったところ。

テーブルを作成する時にsyntax errorでたくさん弾かれてしまった。
今思えば簡単な見間違いや打ち間違いでミスしていたのでけど、当時見落としてしまったので記述。

正しい記述

CREATE Table database_name.TableName (
ID tinyint primary key auto_increment,
first_name varchar(20),
last_name varchar(20),
birthday date,
street varchar(100)
);  

上記でよいのだが、
typo
(→{
unsigned→unsinged
table→tabl

typoはこわいというお話でしたです。