Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10全般 : Excel 2010)
ガントチャート内の指定した日付の範囲に矢印ではなく、文字を入力したい。
投稿日時: 19/05/29 23:41:10
投稿者: ototo

ガントチャート内の指定した日付の範囲に矢印ではなく、文字を入力したいです。
具体的には、以下のようなVBAを描きたいと考えています。
 
・開始日と終了日共に入力されている場合は、その期間のセルを結合またはその期間に図形を挿入し、当該セルまたは図形中にあらかじめ指定したセルの文字(予定の内容)を転記
 
・終了日が空欄(1日だけで終わる予定)の場合は、セルの左側に太線を引き、あらかじめ指定したセルの文字を左側に太線の引かれたセルに転記(なお、転記された際には予定を確認できるよう、文字の全体が見えるようにしておく)
 
・削除ボタンで日付の範囲に入力された文字のみ削除
 
 
お忙しいところ誠に恐れ入りますが、ご回答いただければ幸いです。
 
何卒よろしくお願いいたします。

回答
投稿日時: 19/05/30 07:16:04
投稿者: simple

それぞれの作業を試験的にマクロ記録してみてください。
それをもとにして修正して行くとよいと思います。
その過程で詰まったところを具体的に質問するようにしてください。
また追加質問にあたっては、サンプルのレイアウト(行番号列番号がわかるもの)を
最低限提示することをお薦めします。そのほうが議論しやすいでしょう。
 
リクエスト丸投げの投稿は、掲示板を運営している Odyssey Communications Inc.さんが、
禁止事項にあげていますよ。確認して下さい。

回答
投稿日時: 19/05/30 12:56:43
投稿者: Suzu

	A	B	C	D	E	F	G	H	I	J	K	L	M	N
1	ID	文字	開始日	終了日	6月									
2					1	2	3	4	5	6	7	8	9	10
3					土	日	月	火	水	木	金	土	日	月
4	1	い	6月1日											
5	2	ろ	6月1日	6月4日										
6	3	は	6月3日	6月4日										
7	4	に	6月5日											

 
F2 には 6/1、G2には、6/2 のデータが入っています。
(書式設定にて、日付部のみ表示)
 
 
文字を入れるサンプルです。
シングルステップにて実行し、コード内容を確認してください。
 
セルの結合や、罫線は自動記録で確認できるでしょうから改編してみましょう。
 
Sub Sumple()
Dim rng As Range
Dim i As Long

For Each rng In Range(Range("C4"), Cells(Rows.Count, 1).End(xlUp))
  If IsDate(rng.Value) Then
    If IsDate(rng.Offset(0, 1).Value) Then
      For i = 5 To 14
        If (rng.Value <= Cells(2, i).Value) And (Cells(2, i).Value <= rng.Offset(0, 1).Value) Then
          Cells(rng.Row, i).Value = rng.Offset(0, -1).Value
        End If
      Next
    Else
      For i = 5 To 14
        If rng.Value = Cells(2, i) Then
          Cells(rng.Row, i).Value = rng.Offset(0, -1).Value
          Exit For
        End If
      Next
    End If
  End If
Next

回答
投稿日時: 19/05/31 20:12:07
投稿者: simple

予定の開始日と終了日の対応するセルの把握方法は、
Application,Matchを使って検索すると良いと思います。
 

引用:
・開始日と終了日共に入力されている場合は、
  その期間のセルを結合またはその期間に図形を挿入し、
  当該セルまたは図形中にあらかじめ指定したセルの文字(予定の内容)を転記

  いずれもマクロで部品は得られますが、どちらかに決めた方がよいと思います。
  結合セル+背景色のほうが見やすいとは思いますし、
 図形はそれなりに手間がかかりますし、編集、削除もマクロでやるとすると
 手間がかかります。図形以外のほうがお薦めです。
  
引用:
・終了日が空欄(1日だけで終わる予定)の場合は、
  セルの左側に太線を引き、あらかじめ指定したセルの文字を左側に太線の引かれたセルに転記
  (なお、転記された際には予定を確認できるよう、文字の全体が見えるようにしておく)

  全体が見えるようにするには、
  ・オートフィットして幅を広げるか、
  ・フォントを小さくするか
  のいずれかでしょう。試行錯誤してみて、方針を決めたらよいと思います。

トピックに返信