アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。ExcelのVBAで、日程表からスケジュールを自動作成するようなことをやりたいです。具体的には、添付Excelの通り、sheet1にある日程を元に、sheet2へスケジュール(オブジェクト+イベント名)を自動挿入するようなマクロを作りたいです。1,2行目にある2024年(1-9月)、及び、枠線も自動挿入できると尚うれしいです。
そもそも、ExcelVBAでそこまでのことができるのか?できるとすると、どのような方法で挿入することができるのか、アドバイスを頂けませんでしょうか?どんな些細なヒントでも結構です。よろしくお願いいたします。

「Excel VBA 日程表からスケジュー」の質問画像

A 回答 (2件)

こんにちは



>そもそも、ExcelVBAでそこまでのことができるのか?
>できるとすると、どのような方法で挿入することができるのか 
可能と思います。
ロジカルに判断ができ、手操作で可能なことは、基本的にVBAでも処理が可能です。

個々の方法については、検索して調べてみれば情報はたくさん見つかると思います。
また、「マクロの記録」を利用して作成すれば、記述方法の参考も得られるでしょう。

以下に、大雑把な処理の考え方の一例を。(他にも考え方はあると思いますが)
※ クリアなシートに新たに作成するものと仮定します。
(既存のシートに追加するなどの場合は、もう少し複雑になると思います)

1)データの範囲を調べる
2)データ範囲の中で、日付の最大値、最小値を調べる
3)2)の日付範囲に合わせて、年月欄を作成、セル幅を揃えて、枠線を引く
4)データ範囲の各データについて、以下の処理をループ
 4-1)開始、終了日付に合わせて図形を作成
  (自由図形で作成するか、フロチャートの台形などを利用)
 4-2)図形のテキスト欄に項目タイトルを入力
 4-3)最終項目のみ「★」とタイトルを入力
のような手順で処理を行うことで可能と思います。

必要に応じて、事前に入力データのチェックを行っておく方が良いでしょう。
(例えば、入力日付が昇順に並んでいるかなど)
日付が逆転している場合の処理等も考慮しておく必要があります。
期間が短いと、項目名が表示しきれないケースも発生すると考えられますが、その場合にどうするのかも考慮しておく必要があるかも知れません。
    • good
    • 1
この回答へのお礼

ご丁寧な回答をありがとうございました。よく理解できました。

お礼日時:2024/01/13 08:17

全体的にマクロの記録でやってみて、あとはパラメータをDoやForで回せば、なんとかなる範囲だと思います。



> どんな些細なヒントでも結構です。

・図形を描いてテキストを入れる
Sheets("Sheet2").Shapes.AddShape(msoShapeFlowchartManualInput, 82.5, 63, 79.5, 30).Select
With Selection.ShapeRange
.TextFrame2.TextRange.Characters.Text = Sheets("Sheet1").Cells(2, 2).Value
.TextFrame2.TextRange.ParagraphFormat.Alignment = msoAlignCenter
End With

・罫線をひく
Sheets("Sheet2").Select
Range(Cells(2, 2), Cells(2, 10)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).Weight = xlThin
Selection.Borders(xlEdgeTop).Weight = xlThin
Selection.Borders(xlEdgeBottom).Weight = xlThin
Selection.Borders(xlEdgeRight).Weight = xlThin
Selection.Borders(xlInsideVertical).Weight = xlThin
    • good
    • 1
この回答へのお礼

コードの作成、連絡までして頂いてありがとうございました。

お礼日時:2024/01/13 08:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A