háčkování -脱力あみもの日記-

編んだり編まなかったりしてる毎日

Excel VBA:Excelキーボードショートカットを知ろう

編み図描画ツールの作成が相変わらず止まっていますが、またVBAでまったく違うツールを作ったりしていました。

職場でExcelのキーボードショートカットの一覧を作成しているときに「ただの一覧ではつまらないな」と思ったのが発端。
そのキーの位置がわかるような仕掛けにしてみたんだけどどうかしら?!
一応、周りの反応はなかなか良かったよう。

Excelキーボードショートカット一覧
Excelキーボードショートカット一覧

黄色い列をダブルクリックすると対応するキーの位置の色が反転する仕掛けです。
動作は下記動画で見てやってください。 youtu.be
反転した色は数秒で元に戻るのと、範囲外をダブルクリックした場合は何も動作しないようにしてあります。

「"あみ"もの」…ではなく「"あみ"だくじ」を作ったはなし

最近はどうなのか?

去年の3月からリモートワークになり一日中WindowsPC触っていて、Macをほとんどいじらない生活が続いている。
仕事用は会社から渡されているけど、いろいろあって自分用のWindowsPCも買ってしまったし。

編み図描くツールは作りたいと常々思っているのに進んでいない。。。

編み物には全く関係ないけど

ところで、少し前に必要があってチーム分けをするためのあみだくじマクロを作った。
初期画面で"くじを引く人数"と"何チームに分けるか"を入力すると人数分の縦線の入ったシートを作成する。

f:id:turutchi:20210506074006p:plain
あみだくじ初期画面
   ↓
f:id:turutchi:20210506074156p:plain
あみだくじシート作成

このシート上、任意のセルでダブルクリックすると横線を引くので、あみだくじを作っていく。
ちなみにすでに横線が引かれている場合は、ダブルクリックで削除し、隣り合ったセルにはつづけて横線を引くことはできないようにしてある。
もちろんくじ範囲の外でも横線は引けない。
f:id:turutchi:20210506074235p:plain

[結果表示]を実行するとあみだくじ下部にチーム名がランダムに表示されるしくみなのだ。
(赤で囲んだ部分)
f:id:turutchi:20210506074314p:plain

と、ここまで作って放置していた。
というか、これだけでもあみだの役割は果たしているし、これ以上の要望もなかったしね。

この連休ヒマすぎたので

でも、このあみだの線をたどって抽選結果まで出せたら面白いなと思い、この何の予定もない連休中に機能を追加させてみた。
一連の動作を動画にしてみたが、字幕がついていないのでわかりにくいかもしれない。

でもまあ見てやってください。

youtu.be
赤い線であみだの線をたどっていく動作をどうしたらいいかというのもそれなりに苦労したんだけど、なにより次の人の抽選を開始する際に線の色を元通りにするのをどうするか悩んだ。

横線はダブルクリックで引けるようにしているけれど、あみだの範囲外や隣り合った場所には引けないようにしてあります。

youtu.be

あ、そうそう、tumblrからの動画表示はなんだかとても遅いので、今回からYoutubeに変更したのだけどどうでしょう?

※さらに動画を入れ替えました(2021/11/20)

Excelでかぎ針の編み図描画ツールをヨボヨボ作る 3

はじめに

かぎ針の編み図作成用アプリっていうものがどこかにないものかと探して探しつづけたのですが、これがもう まーーーーーったく 見つからず、あまりにも見つからなすぎたある日、自分で作ってしまえばいいのだと思い立ってしまいました。 Excel 2016 for Macですが!

・・・というわけで、かぎ針編み図の描画ツール作成日記が始まったわけですが、この日記は主に作成過程を忘れているであろう未来の自分のために書いています。
おまけにここはHowToブログではないため今のところ自分が書いたVBAのコードは載せる予定はありません。

いつでき上がるかも分からないヨボヨボのツールを作る過程を見届けてくださる方は見てやって下さい。

前回の日記

1段目の最後まで編み目を描き入れたら2段目を描く準備をするようにした
hackovani.hateblo.jp

今回の機能追加

  1. 1段目に限らず、今作業している段の最後まで編み目を描き入れたら次の段を描く準備をする。

  2. 作業している目は表側を編むの段なのか(左に編み進む)、裏側を編む段なのか(右に編み進む)を判断して目を描き入れた後、次の目に進む。

  3. 1段目(奇数段目)は通常表側だが、例外もあるのでその場合はチェックボックスにチェックを入れれば逆に進むように対応させる。

1.2.についてはVBAでアクティブセルが何段目の編み目なのかを判断させようと思っていたのだけど、ワークシート上で計算式を使用して算出した方が少しは軽快に動作しそうなので方針を変更した。
f:id:turutchi:20200118172358p:plain
表か裏かは仮設置ではあるが今は「U2」セルに表示させている。ここを見て次の動作を決めるようにしているのだ。

表裏の表示はもちろん3.にも対応していて、そのためにチェックボックスを暫定的に設置(「A2」セルあたり)した。ここのチェックによって右向き左向きの判断を変更できるようにしている。

ちなみにExcel 2016 for MacではActiveXコントロールを選択することが出来ないため、フォームコントロールチェックボックスを使用した(するしかなかった)。でもこの制限があるおかげでシート上で計算させる仕様に変えようと決めたので結果的には良かったのかも。

youtu.be

段数を表示する列(T列)についてもVBAであーしてこーして入力させようと考えていたけど、この記事を読んでこれまた方針を変えたのだ。
Excelのユーザ定義関数をVBA無しで作る - kamocyc’s blog

数式に名前をつける方法を利用して、1つ下のセルの値に+1した値を表示するように。

将来的には途中に段の追加・削除なども出来るような機能を追加したいので、その場合にもここはポイントになりそうじゃない?!

未来の自分用にメモ

今後追加したい機能リスト
  • 編み図描画用のエリア以外のセルには編み目を描かない。

  • 描いた目まで編むと毛糸(例えば並太換算で)何メートルくらい編んだことになるか計算して表示させる。

  • ってか、長編みだけじゃなくて細編み、中長編みの素材画像も作らないとね。

  • あとはデザイン、レイアウトもなんとかしたい。

  • そもそも初期設定をどこかで決められるようにしよう!

Excelでかぎ針の編み図描画ツールをヨボヨボ作る 2

かぎ針の編み図作成用アプリっていうものがどこかにないものかと探して探しつづけたのですが、これがもう まーーーーーったく 見つからず、あまりにも見つからなすぎたある日、自分で作ってしまえばいいのだと思い立ってしまいました。 Excel 2016 for Macですが!

・・・というわけで、かぎ針編み図の描画ツール作成日記が始まったわけですが、この日記は主に作成過程を忘れているであろう未来の自分のために書いています。
おまけにここはHowToブログではないため今のところ自分が書いたVBAのコードは載せる予定はありません。

いつでき上がるかも分からないヨボヨボのツールを作る過程を見届けてくださる方は見てやって下さい。

前回の日記

選択したセルに編み目を描き、描いたら次の目のセルを選択、その動作を繰り返すようにした。 hackovani.hateblo.jp

今回の機能追加

段の最後の目まで編み目を描いたら、次段の編み目を描く準備をする。

まず段の最後の1目まで描いたと判断したら、InputBoxで次段の立ち上がりを何目にするか(1-3)入力を促すようにした。 youtu.be

[0]か[キャンセル]ボタンクリックで次段には行かずに終了し、[1]から[3]を入力すれば高さを調整した行を追加して、立ち上がりのくさり編み目を描く。
今確認したら入力を促すメッセージ文が出てないな。後で確認せねば。


2020/01/10追記

コードを確認したけど特に問題なさそうだったので、試しに夫のWindowsPCで動かしてみた。 f:id:turutchi:20200110212021p:plain
ちゃんと表示されるじゃないか!

調べてみたらこんなの見つけた。この現象とはちょっと違うんだけどInputBoxメソッドのPromptには問題ありそう。
Excel for mac 2016(バージョン16.14.1)のVBAで、Application.Inputboxのボックスが正常に表示されない。MacOS Sierra 10.13.5

なんだよ、こんなところにも for Mac の罠が潜んでいるのかよ! InputBox関数に変更しても違う問題が起こりそうだしどうしたらいいのか。
よしっ!とりあえずこの問題は先送りしよう。


ちなみにそれ以外の値を入力した場合はちゃんと入力するまで質問は消えない。

では、今回は[3]を入力してみる。(画像の素材の準備が長編みとくさり編みしかないから)
youtu.be

3目分の高さの行を挿入して、立ち上がりのくさり編み目を描きいれる。 段数表示する列(動画ではT列)に"2"と入力したら、2段目の1目目のセルを選択して、準備OK!

と、今日はここまで。

未来の自分用にメモ

今回の立ち上がりの目数の入力については、数字を入力+[Enter]キーまたは[OK]ボタンをクリックするという2段階の操作なのが気になる。
Excel 2016 for Mac では UserFormが使えない ので仕方ないのだ。Keydownも使えないし。 代替案は模索中だけど、ヨボヨボツールだからまあいいか、と思っていたりもする。

次は奇数段か偶数段かを判別して、左右どちらに進むかようにしようかな。
今は奇数段の左に進むコードしか書いてないから。

前回と今回使った主なVBA関数やメソッド

Application.InputBox メソッド
Intersectメソッド

今後追加したい機能リスト
  • 1段目が表側になることしか考えてないけど、裏側になる編み方も有り得るので、対応させる。

  • 編み図描画用のエリア以外のセルには編み目を描かない。

  • 描いた目まで編むと毛糸(例えば並太換算で)何メートルくらい編んだことになるか計算して表示させる。

ヨボヨボの編み図作成ツール

Excel 2016 for Macで編み図を描くツールを作りたい

かぎ針の編み図を描くアプリというものが検索しても見当たらないので自分で作ってみようと思う。Excel(しかもfor Mac:以降for Mac)で。←もう何度目かの宣言

古い人間なので【Flash】とかで作りたいくらいなのだが(ふるっ!) ・・・というのは半分くらいは冗談なんだけど、勉強も兼ねてExcel VBAでやってみよー、と思ったのだ。

ただ私のExcelはfor Macなわけで、Windows版と比べて出来ないことが随分あるらしい。

あー、もう面倒くさい!もういいっ!
それならあえて全然速くない!動作が軽くない!手で描いた方がいいんじゃないかっていうくらい便利じゃない!っていう三重苦のヨレヨレでヨボヨボなツールを作ってやるっ!!

ヨボヨボのツール作り開始

最初は色々すっ飛ばして一番のメイン、編み目を1目ずつ入力していくところを作ることに決めた。

  
あ、ちなみにVBAのコードは特に載せないので、代わりに動画で説明します。

youtu.be

編み目を入れたいセルを選択した状態でボタンをクリックすると編み目の画像(今回は長編み目かくさり編み目)が入力される。
その後、次の目のセル(奇数段は左隣のセル、偶数段は右隣)に移動する。
これの繰り返し。

ちなみにU2セルには今いる場所がわかるようにアクティブセルのアドレスを

=ADDRESS(CELL("row"),CELL("col"),4)

で表示させているが、これはツール作成と書き進めていくVBAには全く関係ないパーツなので気にしなくて良いかも。

あと編み目画像は素材用のシートを用意してそこに配置、必要に応じてコピーしてくる。
今は仮で長編み目とくさり編み目しか作ってないけど、実際に必要になる編み目の画像ってどのくらいなんだろう。ちょっとずつ作りためていかないとかな。

さて、次はどうしましょう。
一段目の最後まで行ったら次の段への進み方をどうするか考えようかな。