• ベストアンサー

Excel VBA 12ヶ月分のシート作成

自分で作成した1月切のサンプルシートを 12か月分作成したいのですが ub シートの追加() Worksheets("一月切").Copy After:=Worksheets("一月切") Dim i As Integer For i = 2 To 12 Worksheets(i).Name = i & "月切" Next End Sub どうしてもうまくいきません。 どこが いけないのか 教えて頂たいです よろしく<(_ _)>

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! >自分で作成した1月切のサンプルシートを 12か月分作成したいのですが というコトですが、 コードではSheet名が「一月切」と漢数字になっていますよね? すべてのSheet名を漢数字に!となると少々手間をかける必要があります。 Sub シートの追加() Dim i As Integer, myArray myArray = Array("二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二") For i = 0 To UBound(myArray) Worksheets("一月切").Copy After:=Worksheets(i + 1) Worksheets(i + 2).Name = myArray(i) & "月切" Next End Sub こんな感じでしょうかね! ※ 漢数字ではなく「2月切」「3月切」・・・のように普通に数値で良いのであれば Sub シートの追加2() Dim i As Integer For i = 2 To 12 Worksheets("1月切").Copy After:=Worksheets(i - 1) Worksheets(i).Name = i & "月切" Next End Sub 程度で大丈夫だと思います。 ※ 注意点 ※ 最初のSheet名は必ずコード内にあるように「1月切」とします。 (漢数字ではエラーになります)m(_ _)m

otome1102014
質問者

お礼

早速お返事頂き誠にありがとうございます。漢数字はエラーになるとは 思いつきませんでした まだまだ勉強不足ですねぇ。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELマクロでシート作成&シート名をつける方法

    EXCELでセルK列に入力した名称でシートをどんどん作成したいのですが、 下記のようにやってみましたが、うまく実行されません。 2回目の←の部分で、終わってしまいます。 詳しい方、教えてください。 Sub Macro3() Dim neSheet As String Dim fMax As Integer Dim num As Integer Dim i As Integer fMax = Range("B2").Value num = 2 For i = 1 To fMax neSheet = Range("k" & num).Value Worksheets.Add(After:=Worksheets(1)).Name = neSheet ← num = num + 1 Next i End Sub

  • ExcelVBA シートのコピーについて

    こんにちは! VBAにて連番のシートを作成するマクロを組みました 1日→2日→3日・・・→60日 Sub シートコピー() Dim i As Integer, wst As Worksheet Set wst = Worksheets("コピー元") For i = 1 To 60 wst.Copy After:=Worksheets(i + 2) Worksheets(i + 3).Name = i & "日" Next Set wst = Nothing End Sub 54日まで作ることは出来たのですが、なぜか55日からが作成できません その後シートを消し、もう一度実行すると、1枚もシートが作れません この現象は何でしょうか? また、どうやれば60枚分コピーできるでしょうか?

  • VBA 複数シート選択について

    Sub test() Dim i As Integer i = ActiveWorkbook.Worksheets.Count Worksheets(Array(2, i)).Select End Sub シート2とシートi の選択ではなく、2~iまでの複数シート を選択するにはどのように書くのかご教示下さい。

  • VBAで差し込みシート作成はできないでしょうか?

    sb-yamatoと申します。よろしくお願いします。 ボランティア団体の登録者管理をしておりまして、エクセルVBAで人数分のシートを作成しながら差し込みができないかと悩んでいます。 イメージとしては、ワードの差し込み印刷をすると、人数分のページができると思います。それをエクセルシートでできないでしょうか? 自分なりに作ってはみたのですが、変数iの使い方が悪いのか、どうも上手くいきません。こんな感じです。 Sub シートの作成() Dim touroku As Long ←登録番号です。(8桁) Dim simei As String ←漢字氏名です。 Dim seinen As Date  ←生年月日です。 Dim i As Byte    ←150人までです。 i = 2        ←1行目はタイトル行です。 Worksheets("名簿").Activate Do While Cells(i, "B").Value <> "" touroku = Range(i, "B").Value simei = Range(i, "C").Value seinen = Range(i, "D").Value Worksheets("登録台帳(原本)").Copy After:=Worksheets(i) Range("AI2").Value = touroku Range("AJ2").Value = simei Range("AK2").Value = seinen ActiveSheets.Name = Range("AJ2").Value i = i + 1 Loop End Sub 名簿sheetのB列[変数i]行目をコピーしたsheetのセルAI2に貼り付けているつもりなのですが、反応してくれません。 皆様のお力添え、よろしくお願いいたします。

  • ExcelのVBAについて質問です。Excelは2003です。

    ExcelのVBAについて質問です。Excelは2003です。 コマンドボタン1で下記のプログラムを実行するようにしています。 Sub Macro1() ' ' Macro1 Macro ' ' Dim iRows As Integer Dim sRows As String Dim i As Integer For i = 1 To 100 Application.Wait Now + TimeValue("00:00:05") ' 最終行の調査: iRows = Worksheets("Sheet1").UsedRange.Rows.Count ' 最終行をシート3にコピー Worksheets("Sheet1").Rows(iRows).Copy Destination:=Worksheets("Sheet4").Range("1:1") ' CH1 の最新データをシート3にコピー Worksheets("Sheet3").Range("B9").Value = Worksheets("Sheet1").Cells(iRows, 3).Value ' CH2 の最新データをシート3にコピー Worksheets("Sheet3").Range("C9").Value = Worksheets("Sheet1").Cells(iRows, 4).Value Next i End Sub これをコマンドボタン2で途中でも強制的に終了するようにしたいのですがコマンドボタン2にはどのようなプログラムを入れればいいでしょうか?

  • エクセルVBA 追加したシート名をハイフン(-)を入れて連番にする方法

    エクセル2003です。 シートをコピーし追加、 一つ前のシートの一部セルをセル参照するコードを作成しました。 今の段階ではコピーしたシート名が請求書1、請求書2、請求書3・・・となるのですが シート名を請求書1-1、請求書1-2、請求書1-3・・・とすることは可能でしょうか? "請求書"を"請求書1-"にするとコピーしたシートのセル参照をした部分が うまく参照されずエラーになってしまいます。 シート名にハイフンを入れてもエラーが出ない方法をご存じの方いらっしゃいましたら 是非ご教授をお願い致します。 Sub test1() Dim i As Integer Worksheets(2).Select For i = 2 To 5 Worksheets(2).Copy after:=ActiveSheet ActiveSheet.Name = "請求書" & i With Worksheets("請求書" & i) .Range("H15").Formula = "=請求書" & i - 1 & "!F10" End With Next i End Sub

  • EXCEL VBAにてのワークシート作成

    エクセルのVBAにてワークシートを作成することで困っています。 自分で書き込んだのは Private Sub CommandButton1_Click() Worksheets("原紙").Copy ActiveSheet.Name = TextBox1 Worksheets.Add After:=Worksheets(2) End Sub Private Sub UserForm_Initialize() TextBox1 = Format(Date, "yy.mm.dd") End Sub 実行したいことはCommandButton1クリック時に 左から2番目にあるワークシート 原紙を テキストボックス1に入力されている(日付) 名前を付けて左から3番目に新規で作成したいのですが 思うように動かずエラーが出てしまいます。 どの様に修正すれば宜しいでしょうか? またクリック時にすでにテキストボックス1と同じ 名前のワークシートが存在した場合はそのワークシートを Activeにしたいのですがどの様に書き込めば宜しいでしょうか? 重ね重ねですが宜しくお願いいたします。

  • Excel VBAシートの同一番地のセルのリスト化

    別々のシートの同一番地のセルの値をリスト化するのにこのようなVBAを見つけました。 シートは追加せず、既存のシートを指定したくて、色々と書き換えをチャレンジしましたがうまくいきません。 既存のシートを指定し、この作業を行うにはどうしたらよいのでしょうか? ご教示いただけますと幸甚です。 Sub Test1() Dim TmpSheet As Worksheet, i As Integer i = Worksheets.Count Set TmpSheet = Worksheets.Add(After:=Sheets(Sheets.Count)) With TmpSheet For i = 1 To i .Cells(i, 1).Value = Worksheets(i).Name .Cells(i, 2).Value = Worksheets(i).Range("E5").Value Next End With End Sub

  • シート名変更マクロ

    「1」というシートのH4にコピー数を入力し、「1」の後ろに挿入するマクロがあります。できたシートの名前は「1(2)」「1(3)」となってしまいます。このシート名を挿入した数の通し番号(「2」「3」に変更することはできるのでしょうか?挿入するシートの数は決まっていません。 Sub シートのコピー() Dim i As Integer Dim n As Integer n = Worksheets("1").Range("H4").Value For i = 1 To n Worksheets("1").Copy Before:=Worksheets(Sheets.Count) Next i End Sub

  • ACCESSのVBAにてExcelのシートをコピーしたい

    入庫.xlsに現在、"原紙"というシートがあります。 入庫.xlsには、"原紙"と入庫のあった日のシートがあるようにしたいのです。 今日、入庫があれば、入庫.xlsには "原紙"と"20"のシートが存在するようにしたいのです。 AccessのVBAにて1文でシートのコピーってできないでしょうか? Dim oApp As Object Dim StWk1 As String Dim SHizk As String Dim Hizk As Integer Hizk = DatePart("d", Me![入庫日付]) SHizk = CStr(Hizk) StWk1 = "c:入庫.xls" Set Xls = GetObject(StWk1) Xls.Application.Windows(1).Visible = True Xls.Application.worksheets("原紙").Copy After:=Xls.Application.worksheets(SHizk) Xls.Application.worksheets(SHizk).Activate 上記のように作成してみたのですが、実行すると、 Xls.Application.worksheets("原紙").Copy After:=Xls.Application.worksheets(SHizk) のところで、エラーになります。 実行エラー'9': インデックスが有効範囲にありません。 のメッセージが表示されます。 教えてください。

MFC2740の修理受付連絡先はどこ?
このQ&Aのポイント
  • MFC2740(複合機付きFAX)の修理を受け付ける連絡先を探しています。電話オペレーターの対応や待ち時間、ブラザーさんのサポート体制に不満があります。以前もサイトで電話番号を探しましたが、違う番号に案内されるなどの問題がありました。
  • 修理にはマニュアルのような対応を望んでおらず、トラブルシューティングも自己判断で行っています。有償の修理を希望しています。以前もFAXの修理をお願いしましたが、運送業者に取りに来てもらい、修理が完了したら代引きで送ってもらいたいです。
  • 修理部署の直通の連絡先を教えてほしいです。質問はブラザーのメーカーに対するものです。
回答を見る

専門家に質問してみよう