
VBA初心者です。
前にこちらの質問にあったマクロで実行してみたのですが、1時間毎でしか矢印が作成されませんでした。
分単位で矢印の長さが変わるようにするにはどのようにしたら良いのでしょうか?
Sub ガントチャート描画2()
Dim c As Range
Dim org As Range
Dim dst As Range
For Each c In Range("D8:D20")
If c.Value <> "" Then
Call MyFind(c.Text, org)
Call MyFind(c.Offset(0, 1).Text, dst)
With ActiveSheet.Shapes.AddLine(org.Left + 0, _
c.Top + 7, dst.Left + 0, c.Top + 7).Line
.EndArrowheadStyle = msoArrowheadTriangle
.ForeColor.RGB = RGB(0, 0, 128)
.Weight = 3
End With
End If
Next
End Sub
Private Sub MyFind(ByVal src As String, ByRef rng As Range)
Dim r As Range
Set rng = Nothing
For Each r In Range("F5:AJ5")
If r.Text = src Then
Set rng = r
Exit Sub
End If
Next
End Sub
よろしくお願いしますm(__)m

No.3ベストアンサー
- 回答日時:
こんにちは!
列方向に関しては1列が1時間というコトですかね。
細かい分までは判らないかもしれませんが、とりあえずやってみました。
一例です。
Sub Sample1()
Dim i As Long
Dim c As Range, r As Range
Dim myStart, myEnd
ActiveSheet.Lines.Delete
For i = 6 To Cells(Rows.Count, "D").End(xlUp).Row
myStart = Application.Match(Cells(i, "D"), Rows(5), True)
myEnd = Application.Match(Cells(i, "E"), Rows(5), True)
If IsNumeric(myStart) And IsNumeric(myEnd) Then '//←念のため//
Set c = Cells(i, myStart)
Set r = Cells(i, myEnd)
With ActiveSheet.Shapes.AddLine(c.Left + c.Width * Minute(Cells(i, "D")) / 60, c.Top + c.Height / 2, _
r.Left + r.Width * Minute(Cells(i, "E")) / 60, r.Top + r.Height / 2).Line
.ForeColor.RGB = RGB(0, 0, 255) '//←「青」(色は好みで!)★//
.Weight = 2 '//←太さは好みで!★//
.EndArrowheadStyle = msoArrowheadTriangle
End With
End If
Next i
End Sub
※ 最初に記載したように○分の部分は正確に判らないかもしれませんが、
感じとしては「このあたり!」と判別できると思います。m(_ _)m
No.2
- 回答日時:
こんにちは
ご提示のコードがどのような方法をとっているか理解なさっているのかわかりませんが、
「指定時刻と5行目に記載の時間を比較して一致しているものを探す」方式です。
このため、D,E列に記入する時刻は、5行目に存在する時刻と一致するように入力しないとうまく動作しないという大きなデメリットがあるように思われます。
一方で、5行目の表記は連続しなくても自由に設定できるというメリットはありますが、逆に、必ず時刻表示の行(5行目)が必要となります。
この方式とは別の考え方として、スタートを「0時」として以降は「1時間/1セル」として計算するとか、他の方式もあり得ると考えられます。
>分単位で矢印の長さが変わるようにするにはどのようにしたら良いのでしょうか?
計算を分単位に応じて行うようにすれば良いですが、上記のような条件群のうち何を実際の前提条件とするかによっても、コードは変わってくるものと考えられます。
いずれにしろ、考え方としてはどの場合も同様で、「1時間/1セル」という前提で良いのならば、
与えられた時刻(シリアル値)に対して
Hour(シリアル値)
Minute(シリアル値)
でそれぞれ時刻、分が得られますので、これによりセルの位置を決定し、
セル幅×分数/60
でそのセル内でのチャートの表示長さを算出することができます。
仮に、全てのセル幅が一律であるという保証があるなら、
(時間数 + 分数/60)× 単位セル幅
で、線分の長さを直接求めることもできるでしょう。
なお、この値はシリアル値の差分から
(シリアル値-INT(シリアル値))×24×単位セル幅
で直接求めても同じ結果になるはずです。
線分の開始位置も同様の要領で求められますので、「開始位置」から「開始位置+線分長さ」の位置までラインを引けば、分単位に対応したラインを引くことができるでしょう。
No.1
- 回答日時:
回答ではありません。
提案となります。① このレイアウトではジャスト9時とかが、どこだかわかりにくいですよね?
下図のようにセル結合して2セルで1時間にされた方が良いと思いますがいかがでしょうか?
② 1分単位で表示するならば、1分1ピクセルの倍数にされた方が良いと思いますがいかがでしょうか?
1分1ピクセルの場合、下図のようにセル結合し時にはセル幅が「3.13」になります。
③ 時刻表示ですが、表示形式を「[hh]:mm」にして24時間以上も「時間:分」表示にされた方が良いと思いますがいかがでしょうか?

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
このQ&Aを見た人はこんなQ&Aも見ています
-
今年はじめたいことは?
今年はこれをはじめたい!ということを教えてください!
-
いちばん失敗した人決定戦
あなたの「告白」での大失敗を教えてください。
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
テレビやラジオに出たことがある人、いますか?
テレビやラジオに取材されたり、ゲスト出演したことある方いますか?
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
時間を入力するとタイムスケジュールに矢印で表示させたい
Excel(エクセル)
-
エクセル2016で時間を入力して線で反映させる方法について
Excel(エクセル)
-
エクセルで日にちを入力すると矢印が自動的に引かれるとか。
Excel(エクセル)
-
-
4
日報に自動で矢印線をひきたい
その他(ソフトウェア)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
【Excel】 セルの色での判断は...
-
EXCEL VBA セルに既に入...
-
セルをクリック⇒そのセルに入力...
-
excelの特定のセルの隣のセル指...
-
(Excel)数字記入セルの数値の後...
-
エクセルの書式設定の表示形式...
-
Excelでのコメント表示位置
-
枠に収まらない文字を非表示に...
-
エクセルのセルの枠を超えて文...
-
【エクセル】IF関数 Aまたは...
-
エクセル オートフィルタで絞...
-
エクセルの一つのセルに複数の...
-
Excel 例A(1+9) のように番地の...
-
対象セル内(複数)が埋まった...
-
数式を残したまま、別のセルに...
-
Excelで数式内の文字色を一部だ...
-
Excelで住所を2つ(町名迄と番...
-
文字列として"(ダブルコーテー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
貼り付けで複数セルに貼り付けたい
-
エクセルで指定したセルのどれ...
-
excelの特定のセルの隣のセル指...
-
(Excel)数字記入セルの数値の後...
-
セルをクリック⇒そのセルに入力...
-
枠に収まらない文字を非表示に...
-
【エクセル】IF関数 Aまたは...
-
【Excel】 セルの色での判断は...
-
Excelでのコメント表示位置
-
エクセルの一つのセルに複数の...
-
エクセルのセルの枠を超えて文...
-
Excelで数式内の文字色を一部だ...
-
EXCEL VBA セルに既に入...
-
エクセルの書式設定の表示形式...
-
Excel 例A(1+9) のように番地の...
-
数式を残したまま、別のセルに...
-
エクセル オートフィルタで絞...
-
Excelで、「特定のセル」に入力...
-
ハイパーリンクの参照セルのズ...
-
対象セル内(複数)が埋まった...
おすすめ情報