『図形の縦サイズを指定時間内、大きくしたい』(momo)
はじめまして。ももといいます。
マクロに興味があるんですが、なかなか覚えられなく、このサイトを知りました。
どうか、教えていただけないでしょうか?よろしくお願いします。
もともとある一つの図形が、セルA1に入力された日付のAM8時からAM0;45時まで、
少しづつ縦方向だけ大きくしていきたいです。
大きくする分量は、調整したいです。
また、セルA2に入力された次の日も、同じ時間から始まり、同じ時間まで縦方向だけ大きくしていきたいです。
どのようなマクロを書けばできるのでしょうか?
何卒、ご教授よろしくお願いします。
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
ご質問の真意が測りかねています。 マクロを学習したい、掲示板に出会った、それで質問をしたい、ということのようですが、 そのテーマはなにか具体的な要望が他の方からあって、それに応えようとしているのですか? それともあなたが思いついたテーマということですか?
その仕組みができたとして、何に使うのですか? 一人が保有しているブックで図形を大きくしても余り意味がないことだと思うのですが、 質問の趣旨をご説明いただけませんか? 余り意味がないようなものを議論しても、お互いに得る物が少ない気がしますし、 場合によっては徒労に終わるのではないかと懸念します。
> AM8時からAM0;45時まで AM10:45までですか?
想像するなら、以下のようなことでしょう。 ・タスクスケジューラでブックを開いて処理を開始する。 ・Application.Ontimeで、下方向に拡大するプロシージャを一定間隔で繰り返し実行する ・所定の時刻を過ぎたら、その繰り返し処理をストップする と言う方向だと思います。
(xyz) 2025/09/08(月) 21:02:52
それは条件付き書式でやるべき事柄です。 日付と時刻をセルに入力しておき、 (日付+時刻)<= NOW() のときに塗りつぶし色をセットすればいいだけです。 難しいマクロを使う必要はありません。 というか、そういう目的のために作られているのが条件付き書式です。 ご検討下さい。
# 初動の方向性を間違えると、トンデモない事態になります。お気をつけ下さい。 (xyz) 2025/09/09(火) 18:19:34
学習だけが目的だと考えた場合、あなたはそのテーマから、 どんな手法を学習したいと思っているのですか? あなたが仮に普通の会社員さんだとして、今回提示されたテーマは殆ど関係ないのではと 懸念します。 いや、もちろんそのテーマに関連した仕事をしているので、ということなら失礼しました。 そうであれば、あなたがご自分でできているところを示して、どこに具体的に詰まっているのか 説明していただけますか?そのほうが実際的で意味があると思います。
(xyz) 2025/09/10(水) 00:00:24
マクロのコードを探るには、「マクロの記録」をしてコードを探るところから
始めます。
参考URL>>
https://excel-ubara.com/excelvba1/EXCELVBA303.html
'
'B2セルを選択 Range("B2").Select '図形の挿入(四角をB2セルに合わせて) ActiveSheet.Shapes.AddShape(msoShapeRectangle, 54, 18.75, 124.5, 18.75).Select '図形の高さを変更(B3セルまで) Selection.ShapeRange.ScaleHeight 2, msoFalse, msoScaleFromTopLeft ''図形の高さを変更(B4セルまで】 Selection.ShapeRange.ScaleHeight 1.5, msoFalse, msoScaleFromTopLeft End Sub *************終わり***********
日本語で書いた部分は、私が行った操作を追記しました。
これで、図形を挿入したり変形したいのこーどはわかります。
次にWEBで検索して、図形を挿入する参考になりそうなマクロがないか、
「VBA 図形挿入」とかで検索します。
参考URL>>
https://excel-ubara.com/excelvba1/EXCELVBA397.html
https://www.moug.net/tech/exvba/0120023.html
上記のサイトをみると、シート上の座標が必要になるので、
「Excel マクロ 座標」などで検索して探してみます。
https://dz11.hatenadiary.jp/entry/2017/11/17/094716
それらを参考に書いたコードが下記になります。
Sub test()
Dim shp As Shape
'仮に図形を挿入する Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 10, 10, 10, 10)
'挿入した図形を変形していく Set図形変形 shp, Range("B2"), Range("B2") Set図形変形 shp, Range("B2"), Range("B3") Set図形変形 shp, Range("B2"), Range("B4") End Sub
'図形をセルに合わせて変更
'rngTop:先頭セル
'rngBottom:末尾セル
Sub Set図形変形(ByRef pShp As Shape, ByRef rngTop As Range, ByRef rngBottom As Range)
With pShp .Top = rngTop.Top .Left = rngTop.Left .Height = rngBottom.Top + rngBottom.Height - rngTop.Top .Width = rngTop.Width End With End Sub
ただし、最低限のVBAの基礎知識がないとここまでなかなかたどり着けないかと思います。
参考URL>>
https://eurus.dti.ne.jp/~yoneyama/Excel/vba/
http://officetanaka.net/excel/vba/
https://www.relief.jp/Excel-VBA/
https://excel-ubara.com/
このあたりで勉強しながら、詰まったところをここで質問するといいと思います。
最後に、時間を予約してマクロを実行するには、
「VBA 実行時間の予約」で検索してみると、
何分後とかマクロを実行するコードがわかると思います。
がんばってみてください。
(まっつわん) 2025/09/10(水) 10:38:48
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.