2019-03-01から1ヶ月間の記事一覧

ゴールシークとマクロ ① 無限遠からのアプローチ(3)

前回は、ゴールシークとの開始値を大きくしすぎると、高次の関数に於いて正しい解が求まらないという問題にぶち当たった。 infoment.hatenablog.com 今回は、この点について更に検証してみる。 検証方法は、以下の通り単純だ。 Sub GoalSeekTest() Range("G3…

ゴールシークとマクロ ① 無限遠からのアプローチ(2)

先日は、複数の解を持つ関数についてゴールシークを行う場合、限りなく大きな値から探しに行くことを検討してみた。 infoment.hatenablog.com 結果、消費税のように単純な計算式の場合、「10の30乗」という大きな値からのアプローチでも、一瞬で計算できるこ…

ゴールシークとマクロ ① 無限遠からのアプローチ

昨日は、「ゴールシークが探しに行く向き」について、いくつか実験を行った。 infoment.hatenablog.com 結果、「二次方程式など複数の解がある場合は注意しましょう」という「もわっ」とした結論で強引に結んでしまった。しかし・・・待てよ? ということで…

ゴールシークが探しに行く向き

Excelには、「ゴールシーク」という機能がある。たまに、お世話になっている。ゴールシーク: 必要な値に対し、適切な入力を探します。とある。例えば、B1セルに消費税抜き価格、B2セルに消費税込み価格を表示したとする。B2セルには、計算式「=B1*1.08」が…

Static変数入門(※私が)

一時期、こんなコードを書いていた。 Sub test() MsgBox PriceDict("りんご") End Sub Function PriceDict() As Dictionary Dim tempDict As Dictionary Set tempDict = New Dictionary tempDict("りんご") = 100 tempDict("みかん") = 150 tempDict("ばなな…

円周率で円周率を求める?

今日は、Excel を使ったお遊びを一つ。三角形の二つの辺とその間の角度が分かれば、余弦定理でもう一つの辺の長さを求めることが出来る。 そこで、正方形 ⇒ 正五角形 ⇒ 正六角形 ⇒ ・・・と進めていき、次第に円に近づけていくことで、疑似的に円周率を求め…

このブログに訪れる方の困りごと

このブログを始めてから、273日が経過した(2019/3/24現在)。 その間に286記事をアップしており、その内容は、直ぐに役に立ちそうなものからそうでないものまで、多岐にわたっている(と思う)。ここで最近のアクセス傾向を見てみると、「最近」と言いつつ…

作成した年月週の表ラベルに実際の値を充て込んでみる ④ 完

昨日は、作成した年月週の表ラベルに既存の値を転記し、更に重複する文字をラベルから消してみた。 infoment.hatenablog.com 今日は、今回の最終回。入出庫情報を元に、在庫の推移表として編集してみる。 現時点での表は、こんな感じだ。 この表の最終目的は…

作成した年月週の表ラベルに実際の値を充て込んでみる ③

昨日は、作成した年月週の表ラベルを扱いやすい形に編集し、既存の値を転記してみた。 infoment.hatenablog.com 今日は更に、表の値が元の書式に戻すため、不要な値を消し込むことに挑戦する。 必要な情報は全て、昨日までに記入済み。従って今日は、さほど…

作成した年月週の表ラベルに実際の値を充て込んでみる ②

昨日は、作成した年月週の表ラベルの値を充て込むために、元の表を扱いやすいよう編集してみた。 infoment.hatenablog.com今日は更に、既存の値を転記するための辞書を作成することに挑戦する。 昨日、ラベルの文字を配列内で編集したのは、ラベルの文字を辞…

作成した年月週の表ラベルに実際の値を充て込んでみる ①

昨日は、開始日と最終日を指定しただけで、年月週の表ラベルを作成してみた。 infoment.hatenablog.com 今回はいよいよ、以下の目標に挑戦する。 目標:作成した年月週の表ラベルに、実際の値を充て込んでみる。 それでは、まず元の表について、今一度眺めて…

年月週の表ラベルを作成する

昨日まで、指定した開始日から最終日までに含まれる週の数を知るために、クラスモジュールを作成していた。 infoment.hatenablog.com 目的は、↓ のような変換を行う必要に迫られたため。 そこで今日は、まず、年月週の表ラベルを作成することに挑戦する。 今…

月を跨ぐ週の数を「2」と数えてみる(訂正)

昨日は、ある期間に週がいくつあるかを数える際、月を跨ぐ週を「2」と数えるためのクラスモジュールを作成してみた。 infoment.hatenablog.com ところが、公開した後に、いくつかの誤記と考慮漏れに気づいた。そこで、今日はまず、昨日の誤記をコッソリ訂正…

月を跨ぐ週の数を「2」と数えてみる

必要に迫られて、月を跨ぐ週を別物として扱うことになった。 例えば、↓こんな感じ。 これを踏まえたうえで、例えば4月1日~5月31日までの週数を求めたい。 色々と関数を作ってみたが、場合分けごとに関数が増えてしまい、扱いがとても煩雑になってしま…

一旦配列に格納したのちに処理したときの失敗談

例えばある列に、8桁の整数が入力されているとする。 これらは年月を表しており、年4桁+月2桁+日2桁となっている(yyyymmdd)。これをDate型に切り替えるために、以下のようなマクロを作成した。 Sub test() Dim myRng As Range Set myRng = ActiveShe…

ファイル起動時に、フィルターによる絞り込みを解除する。

本日、このような相談を受けた。 Excelファイルで作った台帳に、フィルターを掛けている。 これについて起動時に自動で、各列の表示を全選択状態にできないか。 問い合わせの背景: 先日、ある列で特定の値だけを表示したまま保存終了したところ、 他の方が…

ピボットテーブルで、「年月週でグループ化」っぽいことをしてみる

ピボットテーブルで、部品の入出庫履歴を作成した時のこと。月単位での集計に対し、「週単位で見たい」という要望をいただいたので挑戦してみた。 まず今回の記事用に、ダミーデータを作成する。かなりナマクラして作ったデータがこちら。 Sub データ作成() …

行列の交差する値をVBAで取得する、の別解②

昨日は料金表の中から、いくつかの条件に合致する料金を抽出する関数を作成してみた。 infoment.hatenablog.com すると、ことりちゅんさんから、次のようなコメントをいただいた。 DictはStatic変数で良いかな。 ・・・すみません、Static変数って、何ですか…

行列の交差する値をVBAで取得する、の別解①

こちら ↓ にて、INDEX関数とMATCH関数の組合せをVBAでやった場合について紹介されていた。 note.mu これについてコメントを募集されていたので、私も挑戦してみた。 条件をおさらいすると、まず ↓ このような料金表がある。 当該表において、以下の4条件を…

三つの辺の長さから、三角形の面積を求める公式

新聞に、県立高校の入試問題が掲載されていた。 そこで試しに、数学の試験に挑戦。結果は悲惨なもので、 「同じ弧に対する円周角は等しい」 が完全に頭から抜けており、三角形の合同を証明できず。 今からでも、子供と一緒に高校受験をやり直さなければと思…

クリップボード情報を、特定の列に並べ直す ~別解②~

昨日は、クリップボード情報を特定ラベルの列に入力する際、Typeステートメントを使用してみた。 infoment.hatenablog.com 本日は、更なる簡略化に挑戦する。 昨日は、セルに名前を付けて管理してみた。従って、一旦Typeに入れるのではなく、セルの名前を使…

クリップボード情報を、特定の列に並べ直す ~別解①~

昨日は、コピーなどの操作で一旦クリップボードに置かれた文字列(3行)を、選択セルの並びにある特定列に配置してみた。 infoment.hatenablog.com 今日は、昨日の内容を少しアレンジしてみる。 今回アレンジするのは、各価を配置する列番号の取得方法。 昨…

クリップボード情報を、特定の列に並べ直す。

本日は、ネット上にあった課題(困りごと)をテーマに挑戦する。 コピーなどの操作で、一旦クリップボードに置かれた文字列(3行)がある。 これを選択セルの並びにある特定列に配置するというもの。 単純に縦から横に並びを変えるだけなら、Transpose関数…

カレンダーを作成するマクロをクラスモジュールに移植する

昨日は、一括で作成した複数月のカレンダーについて、良い感じの位置とズームで表示させてみた。 infoment.hatenablog.com 今日は、最近では恒例の「作成したものをクラスモジュールにしたら」に挑戦する。 毎度の話だが、別に無理にクラスモジュールにする…

作成したカレンダーを、良い感じの位置とズームで表示する ②

昨日は、作成したカレンダーがパチッと画面内に収まるようにならないか、色々と試行錯誤してみた。 infoment.hatenablog.com 今日は、昨日のお試し版を更に作りこむことに挑戦する。 昨日のブログ公開の後も、更に試行錯誤を繰り返した。ああでもない、こう…

作成したカレンダーを、良い感じの位置とズームで表示する

昨日は、日付を入力したセル(1つ)を起点に、複数月を指定した月数で折り返してカレンダーを作成してみた。 infoment.hatenablog.com しかし実際に作成してみると、画面の外側にはみ出すなどして見難い場合が多く使いにくい。そこで今回は、作成したカレン…

入力した日付を起点に複数月のカレンダーを作成する、の続き。

昨日は、日付を入力したセル(1つ)を起点に、指定ヵ月後までのカレンダーを作成してみた。 infoment.hatenablog.com しかし昨日の時点では、「折り返す」ことをしていなかったため、横長のカレンダーになってしまう。そこで今回は、指定した月数でカレンダ…

入力した日付を起点に、複数月のカレンダーを作成する

昨日はお遊びで、日付を入力したセル(1つ)を起点にカレンダーを作成してみた。 infoment.hatenablog.com 最初はお遊びで作成してみたが、意外と使えそうな気がして、その割に使いにくいことに気が付いた。そこで本日は、その改良に挑戦する。 改めて昨日…

入力した日付を起点にカレンダーを作成する

お遊びで、日付を入力したセル(1つ)を選択して実行すると、カレンダーになるマクロを作ってみた。思ったより、長々としたものになってしまった。 Option Explicit Sub MakeCalender(target_range As Range) ' 選択範囲判定。 ' 複数セルが選択されている…