試してみた

ある文字列を含むセルを行単位でグループ化して非表示にしたい

本日職場で、こんなリクエストを見た。 ※公開可能なように、内容は一般化しています。みんな大好き「なんちゃって個人情報」に於いて、 性別が「男」の行を全て非表示にしたい。 単純に非表示にすると存在に気づけないので、グループにしたうえで畳んでおき…

輪唱で例えてみた話

みなさんご存じの輪唱。例えばこちらの「静かな湖畔」。 ※音が出るのでご注意ください。 www.youtube.com前の人が二小節歌ったところで、次の人が最初から歌い始める。 小学生の時に、多くの人が音楽の授業で習ったことと思う。「静かな湖畔の森のかげから」…

組合せ表を作る 2.重複を認めない

先日は、部品1~部品4が各々AからCの何れかの値を取り得るとき、 その全ての組合せ表を作ることに挑戦した。 infoment.hatenablog.com今回は、A~CではなくA~Dの何れかの値を取るものとして、 それらが重複しない場合のみの組合せ表を作成してみよ…

組合せ表を作る 1.すべての組合せを考える

詳細は割愛するが、仕事で3つの装置の部品を組み合わせて何某か評価することとなった。評価するための組合せ表が必要となったので、作ってみた。 エッセンスのみ、一部だけ表すと、こんな感じだ。 これをマクロで作成するなら、例えばこんな感じだろうか。 …

1から30までを12列で並べる

前回は、名簿を段組みにする100本ノックに挑戦した。 infoment.hatenablog.com 今回は、段組みについてのお話。 例えば、1から30までの数字を、12列で折り返して並べたいとする。 こんな感じだ。 このとき、30番目の数が何行何列目に来るか知るには、…

0.1を2進数で求めようとして、その大変さに気づいた話

前回は、2進数の求め方を自分なりに整理してみた。 infoment.hatenablog.com 今回は、小数点以下の数を2進数で求めるお話。 前回紹介したように、0以上の場合、低い位(つまり0に近いところ)から 順に、その位に入る数を求めていった。小数点以下の場合…

2進数の求め方を説明しようとしたらできなかった話

例えば、10進数における「123」を2進数で表すとき。 はるか昔、↓こんな計算方法を習った。 画像の引用元はこちら。 k3su.xyz 先日長男から、「何でこれで求まるのか」と訊かれて説明しようとして、 言葉に詰まってしまった。はて、何でだろう。分かっていた…

名前の分からないソート

前回は、VBA100本ノックで「シートの並び替え」に挑戦した。 infoment.hatenablog.com 今回は、問題を解きながら思いついたことを一つ。 バブルソートやクイックソートがある中で、こんな並べ替えを思いついた。 並べ替えたい 配列A内の要素のうち、最大値i…

円の内側の更に円の内側で円を転がす(奇麗な模様にならない?)

先日から、円の中で円を転がす多重スピログラフに挑戦している。 infoment.hatenablog.com 今日も、前回の続きから。 前回作ってみて分かったこと。1. 円の中の円に更に円を置き、その中心の軌跡を描くと奇麗な模様になる。 ↓ こんな感じだ。 2. 上記にもう…

円の内側の更に円の内側で円を転がす(式の一般化)

先日から、円の中で円を転がす多重スピログラフに挑戦している。 infoment.hatenablog.com まとまった時間が取れない中で、さらに考えがまとまらず、結構な時間が 掛かってしまった。 今日も、前回の続きから。 横着して、今回はコメントを説明に代える。 Su…

円の内側の更に円の内側で円を転がす ~途中経過(煮詰まってます)~

先日、数回にわたってExcelでスピログラフを再現してみた。 infoment.hatenablog.comこれを考え出すと、すぐに脳みそがオーバーヒートするので、今回は少し 時間をおいてみたのだが・・・現在、煮詰まってます。 とりあえず、今はこれで精いっぱい。次回に続…

円の内側で円を転がす ~n個の円に対応(第一部.完)~

先日から、Excelでスピログラフを作成している。 infoment.hatenablog.com 今日も、昨日の続きから。 昨日は、式の一般化には成功したものの、散布図の種類設定がまずかった。 例)軌跡を描かず、点が散布されただけのパターン。 仕方ない。都度設定しなおす…

円の内側で円を転がす ~n個の円に対応(式の一般化)~

先日から、Excelでスピログラフを作成している。 infoment.hatenablog.com 今日も、前回の続きから。 前回は、三つの小さな円を同時に回転させてみた。作ってみると、円が一つ 増えるたびに 変数宣言 6回 変数の再宣言(Redim) 6回 変数の計算 6回 計算結果…

円の内側で円を転がす ~途中経過(煮詰まってます)~

先日から、円の内側で円を転がしている。昔ながらのおもちゃ 「スピログラフ」 の再現に挑戦中。現在ここまで来たけど、煮詰まってる。 式の一般化まで、もう少し時間が掛かりそうです。経過報告まで。

円の内側で円を転がす ~もう少し情報を整理~

前回は、円の内側で小さな円が転がっている感を出すために、点を一つ 追加した。仮に、動点Pとでも名付けよう。更にこれをもっと滑らかに 動かすために、表の更新は一旦計算した値を配列に格納し、丸ごと張り 直すことで更新してみた。 infoment.hatenablog…

円の内側で円を転がす ~もう少し滑らかに~

前回は、円の内側で小さな円を転がすことに挑戦した。 infoment.hatenablog.com今日は、これを少し改善するお話。 前回作ってみて感じた問題点は、以下の二つ。 小さな円が自転しているように見えない(公転だけ) 動きがカクカクしていて、滑らかでない と…

円の内側で円を転がす

円の内側で円を転がす様子を描画したら、面白いかなと思った。まず大きな円の半径を 、小さな円の半径を とするとき、 小さな円が大きな円の中心から見て 回転したときを考えてみる。 Excelの数式では、sinやcosに与える角度の単位は「°」ではなく「rad」。 …

グラフで遊ぶ

Excelで散布図を描いて、遊んでみた。以下二つの数式は、原点(0,0)で接する。↓ こんな感じ。 何か、もっと面白いことできないかなと、 色々と模索中です。

是非はともかくとして、Application を Appと略してみた。

マクロで自動処理する際、処理の高速化などを目的として画面更新を 一時的に停止する場合がある。↓ そのための、超有名な一文がこちら。 Application.ScreenUpdating = False ところで先日、Applicationと入力中に突然、猛烈に面倒くさくなった。 「Appl」ま…

テキストボックスに合わせてフォントサイズを変えたい(未解決)

テキストボックス内の文字サイズを、テキストボックスの幅に 合わせて変更したくなった。 ↓ こんなイメージ。 色々と調べるうちに、ここに辿り着いた。 docs.microsoft.comこれは便利!ということで、早速実行してみる。 Sub Macro1() Selection.ShapeRange.…

テーブルから別テーブルへの転記 ① Findメソッドで探して転記

最近Excelで、テーブル間の転記を自動化する依頼を頻繁に受けている。 そこで、これについて思うところを数回に分けて書いてみようと思う。 例えば、↓ こんな感じのテーブルがあるとする。 ここで、↓ このテーブルの情報を、商品コードをキーにしてテーブル…

範囲Bから範囲Aを除外する

先日、高校数学の「集合」を、VBAで理解することを試みた。 infoment.hatenablog.com 眺めていて、ふと思った。これって、範囲の引き算に使えないか? 範囲Bから範囲Aを取り除いた、新たな範囲を取得したい。 作戦は至って単純で、こんな感じだ。 範囲…

短めのコードで特定のセル範囲を編集不可に

先日、このようなご質問をいただいた。 短めのコードで特定のセル範囲を編集不可にすることは可能でしょうか? そこで、色々と考えてみた。 今回は、こんな作戦を立ててみた。 ワークシートのSelectionChangeイベントを用いる。 編集不可の範囲を変数に格納…

連想配列を用いた無作為な並べ替え

↓ このようなお題をいただいたので、挑戦してみた。 データをランダムに並べ替えてください。 今回の作戦は、こんな感じだ。 1. 並び変え用の通し番号を格納した、連想配列を作成する。 2. 1~15の中から一つ、無作為に自然数を取得する。 取得は、RANDBE…

OR の 代わりに Like を使う

最近のお気に入りは、OR演算子の代わりに、Like演算子を使うこと。 使える場面は限られるが、例えば下記のような場合。<条件> 文字列の一文字目がAまたはBまたはCのとき、〇を返す。 上記以外の場合、×を返す。 昔は、こんな風に書いていた。 Function …

社名をキーに、各商品の合計額を求めるアレコレ

コロ子さんのブログに書き込みしたところ、過去記事を紹介していただいた。 koroko.hatenablog.com念のため、おさらい。 ↓のような表に於いて、社名ごとに商品の合計額を知りたい。 私の過去記事では、 辞書に、全商品の金額を格納した配列をセットするパタ…

配列からの値貼り付けに関する覚書 ③ ところどころに数式を含むテーブルに、レコードを丸ごとベタッと貼り付けたい

先日、四苦八苦した体験談からのご紹介。 例えば、こんなテーブルがあるとする。 このテーブル、実は年齢の列だけ数式がセットされている。 このような条件のもと、レコードを追加したい。 例えば、この追加レコードを配列に格納して、テーブルに ベタっと追…

辞書には配列を入れることもできるし、辞書を配列にすることもできる

今日は、辞書(Dictionary)について気づいたお話。 辞書には、色んなものが入る。例えば、配列も入れられる。 例えば、毎度おなじみ「なんちゃって個人情報」にて。 名前をキーにして、各行を配列に格納したのち、それをアイテムにしてみる。 Sub Test() ' …

色々な日付の表記

面白いテーマがあったので、挑戦してみた。#VBA100本ノック 7本目A列は文字列データ(表示形式が文字列)で日付が入っています。日付とみなされる場合はB列に月末日付をmmddの形式で出力してください。日付け以外の場合は空欄にしてください。例.B2は「0930…

4つの同じ数字で1~10を作ってみる

先日、このようなことをやってみた。 infoment.hatenablog.comついでなので、以下にも挑戦してみた。 ・同じ数字を4つ使って、1~10を作ってみる。例えば、1を4つで10は出来ない。そのような場合は、「解なし」とした。 結果がコチラ。 1111~9999のうち、…