• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBAで日報作成したい)

EXCEL VBAで日報作成したい

このQ&Aのポイント
  • EXCEL VBAを使って日報を作成する方法について教えてください。
  • 具体的には、行を追加する方法とカレンダーを作成する方法について知りたいです。
  • EXCEL2013を使用しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

変数の宣言もエラー処理もない手抜き版ですが、こんな感じでカレンダー作成できます。 Sub MakeCalendar()   '現在の情報をクリア   nLastRow = Range("C5").End(xlDown).Row   Range("B5:F" & nLastRow).ClearContents      '一ヶ月分ループを回して日と曜日をセルに入れる   dStart = DateSerial(Year(Now()), Range("A5"), 1) '対象月の1日   For i = 1 To Day(DateSerial(Year(Now()), Range("A5") + 1, 1) - 1)     Cells(i + 4, 2) = i     Cells(i + 4, 3) = Format(dStart + i - 1, "aaa")   Next i End Sub

yakkun2338
質問者

お礼

FEX2053 さん、ご連絡ありがとうございます! 何度もありがとうございます!! ご教授いただきましたロジックで行追加、カレンダー作成両方とも私がやりたかった通り完璧に動作しました!! すごいです。感動しました。^^ この度は本当に本当にありがとうございました!!

その他の回答 (2)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

ボタンは1つ1つがフォームコントロールやActiveXコントロールになるので、「行追加」のボタンがどんどん増えていくのはお勧めしません。 ボタンは1つにして、選択セルの下に1行追加されるようにした方が良いと思います。 Sub 行追加()   nRow = ActiveCell.Row   If nRow < 5 Then Exit Sub '選択セルが4行目より上なら終了   Rows(nRow + 1).EntireRow.Insert   Range(Cells(nRow + 1, 3), Cells(nRow + 1, 6)).Value = Range(Cells(nRow, 3), Cells(nRow, 6)).Value End Sub 「カレンダー作成」ボタンを押下した時の挙動についてはもう少し明確にしましょう。 ・年は今現在の年を使用で良いの? ・開始終了時刻は10:00、11:00固定? ・F列のデータはクリア?

yakkun2338
質問者

補足

FEX2053 さん、何度も申し訳ございません。 そしてご連絡ありがとうございます! 詳細なロジックのご説明ありがとうございます!! カレンダー作成は ・年は今現在の年でOKです ・開始終了時刻はクリアしたいです ・F列のデータもクリアしたいです 説明がたりず大変申し訳ございませんでした。 何度も本当に申し訳ございませんが、何卒よろしくお願い致します。

  • FEX2053
  • ベストアンサー率37% (7992/21376)
回答No.1

一言だけ。 ボタンは作るのがめんどくさいので、「カーソルのある行の下に 行追加」と方針を変えて、「カレンダー作成」ボタンと「行追加」 ボタンを並べる方が簡単ですよ。 それでオッケーなら、行を挿入するのは Selection.EntireRow.Insert の1行で済んでしまいます。まあ、これだけじゃ色々な設定が コピーできてないですけどね。発想はそういうだけで済みます。

yakkun2338
質問者

補足

FEX2053 さん早速のご連絡ありがとうございます! ご指摘いただきましたカレンダー作成」ボタンと「行追加」ボタンを並べる仕様でぜんぜん問題ありません。 で、このときのカレンダーと行追加のロジックのすいません、イメージが出来ないのです・・ お手数ですが教えていただけませんでしょうか? よろしくお願い致します。

関連するQ&A

専門家に質問してみよう