• ベストアンサー

EXCEL/VBAで右へ連番付きのワークシートの追加

こんにちは。早速教えていただきたいことがあります。 上記の件ですが、アクティブシートより右方向へシートの追加をしたいです。 またその時に名前に規則性をつけたいです。 例)16年度4月・16年度5月~16年度3月  という感じで 頭の16年度はそのままコピーにてその続きとして追加するシートの数を指定し連番を振りたいのです。 初心者です。 シンプルで読みやすいものを教えてくださるとうれしいです。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

どの辺が不明な点で、どのあたりまでは自力で書けますか? 下記は(あえて)全て希望通りにしていませんが参考程度にはなるでしょうか、、、 実行して日付を入力するとその年月から12枚のシートを作成します。 (4月から翌年3月までを同一年度として作成) Sub aaa() Dim ws As Worksheet, myDate myDate = Application.InputBox("開始日入力", "日付指定", _            Format(Date, "yyyy/m/d"), Type:=2) If Not IsDate(myDate) Then Exit Sub On Error Resume Next For i = 0 To 11  With Worksheets   Set ws = .Add(after:=Worksheets(.Count))   Select Case Month(myDate) + i    Case 1 To 3, 13 To 15      ws.Name = Format(DateSerial(Year(myDate) - 1, _           Month(myDate) + i, 1), "e年度m月")    Case Else      ws.Name = Format(DateSerial(Year(myDate), _           Month(myDate) + i, 1), "e年度m月")   End Select  End With Next i End Sub

wakudo
質問者

お礼

お礼が遅くなりましたことをお詫びいたします。すみませんNCU さんからのご指摘をいただき自分の身勝手さに気づき反省しているところです。 にもかかわらずpapayukaさんはヒントとしてご回答していただき本当にありがとうございました。NCUさんにもお話しておりますが、色々自分でも試行錯誤してきました。動かないんです。本当に困っていたのです。ただ自分が書いたものが稚拙と思われるのが恥ずかしくて質問の中にかけませんでした。すみません。papayukaさんのご回答をヒントにもう少しがんばってみたいと思います。ありがとうございました。

その他の回答 (1)

  • NCU
  • ベストアンサー率10% (32/318)
回答No.2

試してみたがどこでどういうエラーが出ました、という形で質問して下さい。 やりたい事を書いて「コード下さい」、というような依頼が、この掲示板だから許されるという事はないと思いますよ。

wakudo
質問者

お礼

アドバイスありがとうございます。 いわれてみてはっとしております。 本当にその通りですね。甘い考えでした。不愉快な気持ちにさせてしまい申し訳ありませんでした。 それで補足させていただきたいのですが、実は過去に一度上手く動いた経験があります。それでそのときのデータや参考書を開いて探したり書いてためしたりしておりました。それでもなかなか上手くいかなかったのです。ではなぜ自分が書いたものを説明に触れなかったかと申しますと本当に深い知識をお持ちの方々がみられているという意識が働き恥ずかしくて書くことができませんでした。(笑われるのではと思い) まぁ笑われても仕方ないくらいのスキルなのでしかたのないことなのですが。 自分の思いと質問を投げかけられた方の受け取り方というのはやはり異なる可能性が大きいということを再認識しました。 以後気をつけます。アドバイスありがとうございました。

関連するQ&A