午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

エクセルExcel2007

Kittlerの方法でしきい値を求めるのを、エクセル2007とC#WPFで書いてみた

ヒストグラムを2分する時のしきい値はどこが最適なのかを求める この場合なら左右対称なので真ん中 しきい値を4にして0~3と4~7に2分すれば丁度いい それぞれの範囲の値から平均値と分散を計算して、それを使って正規分布をグラフにすると こんな感じのがで…

C#で累積分布関数っぽいの、配列の値から作った正規分布の指定区間の面積(割合)を台形の面積で求めてみた

正規分布の面積 x(横軸)が0~1までの塗りつぶしてあるところの面積が、全体の何%なのかを知りたい エクセル2007ならNORMDIST関数を使えばラクにできる、新しいエクセルならもっとラクかも 平均=0、標準偏差=0.7のときxが0~1までの面積の割合は =NORMDIST(1,…

画像にノイズ付加するアプリ、一様分布乱数から正規分布乱数生成、エクセルのNORMINV関数で正規乱数

画像にノイズ付加してみた ピクセルの輝度値に乱数を加えればノイズになる 一様分布になる乱数と正規分布になる乱数、正規乱数 一様分布 エクセルのRAND関数の結果1000個のヒストグラム どの範囲もだいたい同じ個数になっている、こういうのを一様分布ってい…

エクセルで2次のガウス関数(確率密度関数)、正規分布関数のNORMDIST

前回からの続き 2次の確率密度関数(ガウス関数)は1次同士を掛け算したものでいいらしい 変数xと変数yだった場合 こうなるみたい エクセルならNORMDIST関数2つの掛け算になって =NORMDIST*NORMDIST これだけ 標準偏差=1のときx,yが-2~2までのガウス分布 …

エクセルで1次のガウス関数(確率密度関数)、正規分布関数のNORMDIST

1次元のガウス関数をエクセルで 前回の画像のぼかし処理で使った 3x3のガウスぼかしのカーネル ガウシアンフィルタとかマスクとかも呼ばれる これ 等高線のグラフにして横から見る 上から 5x5のカーネルの場合 中心の注目ピクセルに近いほど重みが増す それ…

エクセルVBAとC++とC#とVB、それぞれのバブルソートの処理時間

アプリやプログラム言語の違いで処理速度がどれだけ違うのかバブルソートを書いて試してみた エクセルのVBA Visual Studio Community 2017のC++ Visual Studio Community 2017のC# Visual Studio Community 2017のVB この4つで1万件のランダム数値配列をバブ…

エクセルVBAで、ソートアルゴリズムとデータの違いによるソート処理時間比較

前回まででいろいろなソートアルゴリズムをVBAで書くのは満足したので今回はそれらを使って計測 計測した環境は OS:Windows 10 Home 64bit エクセル:エクセル2007 CPU:AMD PhenomⅡ X3 720BE @3.0GHz OS以外は2007年から使い続けている10年前のパソコン 前…

エクセルVBAでクイックソート

クイックソート 基準値を配列の中から選んで基準値以上の値を配列の右へ、基準値以下は左へ寄せてから基準値の場所で配列を二分割、この処理を分割した配列それぞれで繰り返す 'vが配列、tは並び替える範囲の先頭の添字(index)、bは最後尾の添字 Sub QuickSo…

エクセルVBAでヒープソート

ついにヒープソートなんだけど、その前に選択ソート 選択ソート - Wikipedia https://ja.wikipedia.org/wiki/%E9%81%B8%E6%8A%9E%E3%82%BD%E3%83%BC%E3%83%88 最小値を探し出して順番に並べるだけ 最初は配列全体から最小値を探す、見つかった値は配列の1番…

エクセルVBAでマージソートその2、再帰処理の必要がないボトムアップ方式で速くなった

前回 gogowaten.hatenablog.com エクセルVBAでマージソートと再帰処理(再帰呼出し)...も難しいなあ ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ http://blogs.yahoo.co.jp/gogowaten/14807202.html 本当は速いはずのマージソートがシェルソートや…

エクセルVBAでマージソートと再帰処理(再帰呼出し)...も難しいなあ

マージソートMergeSort マージソート - Wikipedia https://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%BC%E3%82%B8%E3%82%BD%E3%83%BC%E3%83%88 うーん、わからん マージソート | アルゴリズムとデータ構造 | Aizu Online Judge http://judge.u-aizu.ac.jp/onli…

エクセルVBAでシェルソート

今回は挿入ソートの改良型のシェルソート シェルソート - Wikipedia https://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%BD%E3%83%BC%E3%83%88 挿入ソートでは常に隣と比較していたのを離れたところと比較してから、だんだん近くのものと比較…

エクセルVBAで挿入ソート

挿入ソート、InsertionSort 挿入ソート - Wikipedia https://ja.wikipedia.org/wiki/%E6%8C%BF%E5%85%A5%E3%82%BD%E3%83%BC%E3%83%88 今までのバブルソートからコムソートは交換して並べ替えていた 挿入ソートは名前の通り挿入して並べ替えていく 3,5,6って…

エクセルVBAでコムソート

今回はコムソートCombSort 順番に gogowaten.hatenablog.com エクセルVBAでバブルソート ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ http://blogs.yahoo.co.jp/gogowaten/14787146.html ↓ gogowaten.hatenablog.com エクセルVBAでシェーカーソー…

エクセルVBAでシェーカーソート

前回のバブルソートからの続き gogowaten.hatenablog.com エクセルVBAでバブルソート ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ http://blogs.yahoo.co.jp/gogowaten/14787146.html シェーカーソート ja.wikipedia.org 基本はバブルソートと同…

エクセルVBAでバブルソート

エクセルVBAでバブルソート バブルソート 隣の数値を比較して 左が大きい場合は数値を入れ替え 左が大きくない場合は入れ替えしない この処理を左から右へ行う 右端まで達したら、また左から繰り返す 繰り返す(ループさせる)回数は数値の数-1 だいたいこんな…

午後ツールその63、不具合修正

2017/02/22 右クリックメニューにシート一覧作成ができなくなっていたのを修正 ExTextBoxに"図形移動をセルの枠に合わせる"の切り替えボタン追加 これがエラーで動かなくなっていたのを直した 図形の移動をセルに合わせるかどうかの切り替えボタン このボタ…

午後ツールその62、画像付きテキストボックスRebirth

2017/02/17 画像つき 近くのセルへ移動 左上のセルへ移動 高さをセルに合わせる 枠の色を見出しと同じにする 枠灰色に戻す 見出しの色変更、ランダム色変更 2017/02/16 画像つき 見出し付きに画像追加 画像に見出しと本文追加 再整形 2017/02/15 画像つきテ…

午後ツールその61、見出し付きテキストボックスは一区切りついた

2017/02/14 ほとんどのボタンをアイコン化 見出しなし作成でセル範囲全体から1つ作成するボタン追加 だいぶスッキリした ボタンの配置は古い方と全く同じ 2つの矢印のボタンが追加したもので これはリボンの午後ツールのExTextBoxタブにあるボタンの この2つ…

午後ツールその60、処理速度改善、ボタンのアイコン化

2017/02/13 処理の効率化で約2倍速くなった ラベルは枠なしで作成するようにした、枠なしだとセルに合わせたとき重ねてもピッタリになる 作成時に文字装飾を反映するかどうか選べるようにした 常に反映する装飾は フォント名、フォントサイズ、フォントカラ…

午後ツールその59、午後のTextBoxにいろいろ追加、変更

エクセルのアドインの午後ツールの午後のTextBoxにいろいろ追加、変更 2017/02/12 幅をセルに合わせる 幅と高さ両方をセルに合わせる 左上のセルに移動 作成時に選択セル数1000以上で確認メッセージ表示 見出しの位置切り替え 2017/02/11 エクセルのバグ?で…

Visual Basic Editorでユーザーフォームを閉じたときにコード画面のままにするには

Visual Basic Editorでユーザーフォームを閉じたときにコード画面のままにするには 標準モジュールからユーザーフォームをモードレスで表示してから閉じる 通常だとユーザーフォームを閉じるとコード画面を開いていてもデザイン画面が表示されるけど、なぜか…

グループ化図形の中の図形のTopLeftCell取得方法とコピペで消えてしまうParentGroupの取得

グループ化図形の中の選択図形のTopLeftCellを取得したい 図形1から3までの文字を入れた図形3つをグループ化して、その中の図形3を選択した状態 この図形のTopLeftCell(左上にあるセル)を取得したい場合 期待するのはB5セル 普通に書いて Sub test3() Dim s …

午後ツールその56、図形の中の文字列をセルにコピーする

前々回のボタンアイコンを変更、ボタン1個追加 アイコンを変更しただけで機能は同じで 選択セル範囲をテキストボックスにする 追加したボタン 追加したボタンは前回に載せた テキストボックスの文字列をセルにコピーするマクロを実行するボタン 図形を選択し…

図形のテキストボックスの段落のタブの配置をVBAで正確に取得できないことがあったので調べてみた

図形やテキストボックスの中の文字列をセルにコピーするマクロ '選択状態の図形の文字列を近くのセルへコピー '複数行なら複数セルを使用 Sub ShapeTextToCell() Dim i As Integer Dim str As String Dim s As Shape Set s = Selection.ShapeRange.Item(1) '…

午後ツールその55、選択セル範囲を図形のテキストボックスにする、印刷用の点線を消すマクロを追加

この前作っていた選択セル範囲をテキストボックスにするマクロをアドインに取り入れてみた ついでに図形の選択と印刷の点線を消すマクロも加えた ExTextBoxタブのtest1から6までがテキストボックス作成のボタン 選択セル範囲からテキストボックスを作る6つの…

ボタンの名前からコントロールIDを探すマクロ、IDを使ってセルの右クリックメニューに既存のボタン追加

セルの右クリックメニューに既存のボタン追加 よく使う機能(ボタン)を追加した 値の貼り付け、書式の貼り付け、行列を入れ替えて貼り付け、図をファイルから挿入 エクセル2007専用 Sub ボタン追加するマクロ() Dim bName As String: bName = "形式を選択して…

選択セル範囲を図形のテキストボックスにするマクロその5、テキストボックスの余白と行間隔

列幅の自動調節 普通は調節したい列の右側をダブルクリックで調節するか Columns("b").AutoFit これだと一番長い文字列に合わせられるけど 短い文字列の幅に合わせたいときもある! B列の幅の調節でB3の「いいい」に合わせたいとき Range("b3").Columns.Auto…

選択セル範囲を図形のテキストボックスにするマクロその4、フォントの取り消し線、下付き上付き文字、下線

今までフォントの設定で反映していたのは文字色、フォント名、フォントサイズ、この3つだったけどその他も対応することにした セルの書式設定のフォント設定画面 よく使うのは太字くらいかなあ、全く使わないのは下線と文字飾り、それでも全部対応することに…

選択セル範囲を図形のテキストボックスにするマクロその3、図形の四角形をテキストボックス化

"普通のテキストボックス"と"図形にテキストを追加したもの"とではどんな違いがあるのかを少し調べてみた 結果は ほとんど違いがない 移動させるときは図形のほうがラク 初期の見た目が違うけど設定で全く同じようにすることができる これからはテキストボッ…