• ベストアンサー

excel vba シートの追加

excel vba にてシートを以下の条件で追加したいのですが、 両方を同時に行うことができません。ご教授下さい。 ・ シート名を、”新シート”にしたい。 ・ 既存シートAAA.sheetの後ろに、追加したい。 以上、宜しくお願い致します。

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

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.3

>両方を同時に行うことができません 同時にとは、一行のコードでということですか? なら、以下のように。。。 Sheets.Add(after:=Sheets("AAA")).Name = "新シート" 以上です。

その他の回答 (3)

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

こんばんは! ごくごく単純にやってみました。 Sub test() Worksheets.Add , after:=Worksheets("AAA") ActiveSheet.Name = "新シート" End Sub こんな感じではどうでしょうか?m(__)m

回答No.2

勉強がてらやってみました Sub シートを追加する()    Dim n As Integer    Const Sname As String = "新シート"    For n = 1 To Worksheets.Count       If Worksheets(n).Name = Sname Then Exit Sub    Next n    Worksheets.Add After:=Sheets("AAA")    ActiveSheet.Name = Sname End Sub

  • YUKKER
  • ベストアンサー率44% (74/168)
回答No.1

こんな感じはいかがでしょうか。 Dim wSheet As Worksheet With ThisWorkbook Set wSheet = .Worksheets.Add() wSheet.Name = "新シート" wSheet.Move after:=.Worksheets(.Worksheets.Count) End With

関連するQ&A

  • エクセルの同一シートに追加保存させたい

    アクセス2010のデータをエクセルにエクスポートする際に、既存の同一シートに追加保存する方法が分かりません。 VBAなら出来るでしょうか? ご教示頂けたら助かります。

  • エクセルVBAでシート追加

    初めて質問します。 VBAで新しいシートを追加する時 同名のシート等があるとエラーになります。 追加するときシート名をチェックしたいのですが どの様にすれば良いでしょうか? また、シートは一番最後に追加したいです。 よろしくお願いします。 Sub Macro1() x = InputBox("シート名") Worksheets.Add.Name = x End Sub

  • VBA シートの選択と追加

    ExcelのVBAで以下の処理をするにはどうすれば良いですか。 ①現在シートが7枚あります。 ②そのうち1枚目から5枚目を選択しています。 ③先頭(最後でも可)に1シート追加します。 ④最初に選択したシート(2枚目から6枚目)に戻って処理をします。 なお、選択するシート(この場合は1枚目から5枚目)は毎回変わります。

  • エクセルVBA シートの追加と名前の変更

    エクセルに「原本」シートがあり、マクロを実行すると原本シートを5シート(5日分)追加し、 (1)一つ目に追加したシートのB2のセルに「追加する日の日付け」を入力し、 シート名にその日付をyymmdd形式で名前を付け、 (2)二つ目に追加したシートのB2のセルに「追加する日の次の日の日付け」を入力し、 ・・・同様の処理・・・ (6)一つ目の追加したシートをアクティブシートにする。 というように、連続した5日分のシートを追加したいと考えています。 VBAの全くの初心者ですので教えていただけると大変助かります。 そんな素晴らしいことが短時間で教えていただけるものなのでしょうか。

  • excel VBA

    昨日VBAをさわり始めた超初心者です。質問ですが、excelからパワーポイントのシート内を削除の仕方と、テキスト追加方法を教えて下さい。パワーポイントは既存であり、テキスト内容はexcelのセル内の文字で、変数に入れることができました。まだまだ無知なので、ご教授下さいますようよろしくお願いします。

  • エクセルのVBAでシートを追加更新していきたいのですがうまくいきません

    エクセルのVBAでシートを追加更新していきたいのですがうまくいきません…。 すみません、どなたかぜひ教えてください。 エクセルはそこそこ使えますが、マクロ関係はまったくの初心者です。 excel2003で作業しています。 やりたいのは、実行することによって (1)同一ブックの中に同じ形式のシートを追加する。 (シート名は「0」「1」「2」…というように、ただの数字にしています) (2)セル「K4」の数式 「=I4+'( 1 )'!K4」を 「=I4+'( 2 )'!K4」 というように、どのシートでも、直前のシートのセル「K4」の数値と更新したシートのセル「I4」の数値の合計を「K4」に表示する。 (以下、「I5」「K5」、「I6」「K6」…も同様にしていきます) ようにしたいのです。 (2)のために、 Range("k4").Value = "=I4+'(" & Range("j1").Value - 1 & ")'!K4" (「J1」には、「新しいシート名(数字)と同じ数字」が入るようにしてあります) としましたが、 「 =I4+'(1)'!K4 」としたいのに、 「 =I4+'[1](1)'!K4 」 と表示され、うまくいきません。 また、実行するたびに、 「値の更新」ということで、ファイルを指定するよう指示が出ます。キャンセルすると「#REF!」になります。 何が原因なのか、どうすればいいのかがさっぱり分かりません。 身の程知らずなレベルに挑戦しているのかもしれませんが、どなたか助けていただければ幸いです。 よろしくお願いします! (よく分かっていないため、質問の仕方が適当でなかったらすみません…)

  • Excelで新たに追加するシートにも特別なシート保護を適用させたい。

    Excelで新たに追加するシートにも特別なシート保護を適用させたい。 VBAの知識がかなり浅いので質問や記述内容もつたないと思いますがご了承ください。 1つのワークブック内の全てのシートに対し、 シートの保護をかけつつ、グループとアウトライン設定だけは有効にしたいため、 ThisWorkbook内に以下のように記述しました。 Private Sub Workbook_Open() Dim x As Worksheet For Each x In ThisWorkbook.Sheets x.EnableOutlining = True x.Protect Password:="xxxxxxxx", UserInterfaceonly:=True Next End Sub これで既存のワークシートに対しては希望の動きをしましたが、 シートをコピー・複製して増やしていくため、 新たにコピーして追加されたシートに対しては機能しません。 追加したシートにもこの特別な保護が有効になるようにするには、どうしたらよいのでしょうか。 ご教授いただけるとうれしいです。 よろしくお願いいたします。

  • ExcelのVBAについて

    すみません、ご教授下さい。 エクセルVBAで簡単な住所録のようなものを作りたいのですがご教授頂けますでしょうか? 内容としては、シート1に入力フォームがあり、登録ボタンを押すと シート2へ一覧していく形です。 また、シート2に一覧していく際は新しいものが上に挿入され、 入力フォームはクリアされるという形になります。 シート1   A    B 1 顧客ID AAA 2 姓    サンプル 3 名    太郎 4 TEL   080-0000-****  →これ以降も項目を増やします。 シート2     A    B      C     D 1 顧客ID   姓     名    TEL 2  AAA   サンプル 太郎 080-0000-**** ご教授頂けますでしょうか? 何卒宜しくお願い致します。

  • VB6.0でEXCELにシートを追加したい

    初心者なので、説明がつたないところ、用語の使い方が間違っいるところがあるかと思いますが、今後のためにバシバシ指導お願いします。m(_ _)m VBにてEXCELシートを作成し、それを既存ファイルのシートに追加し、保存したいと考えています。 ・既存ファイルがなけれが新規作成 ・既存ファイルに同名のシートがあれば上書きするか、シ ート名を変更するか聞く 私が考えた流れは、 1.既存ファイルを開く 2.新しいシートを追加する 3.シートの名前をつける 4.既に同名シートがあれば上書きの有無を聞く 5.VBで作ったEXCELシートを既存ファイルのシートにコピー 6.既存ファイルを更新 7.EXCELを閉じる です。 まず、既存シートはコモンダイアログで探し、追加したい既存シートを開くところまではできました。 ただ、 シートを追加しようとすると文字が赤くなって怒られました。 いろいろ調べた結果の文章なので、どうしてここで赤くなるのかが解読できません。 Dim objBook2 As Excel.Workbook Dim objSheet2 As Excel.Worksheet Set objBook2 = objExcel.Workbooks.Open(CDl.FileName) objBook2 .Visible = True Set objSheet2 = objBook2.Worksheets(1) Sheets.Add(after:=Worksheets(Worksheets.Count)) ↑ここでだめでした。 一気にコピーしたほうがいいのかとも思い、下記を記入しましがだめでした。 objSheet.Copy After:=CDl.FileName.Sheets(CDl.FileName.Sheets.Count) 長々とかきましたが、どなたかEXCELシートを追加する記述方法を教えてください。 よろしくお願いします。

  • Excel2000 VBAで新規シート名を他のシート名と重ならないようにつけるには?

    始めまして。早速ですが、今頭を抱え込んでいる私の悩みを聞いて下さい。 シート名を追加するプログラムで、「シートを追加」というボタンを押すと、 Inputboxを表示し、そこに任意の番号("見積書1"や"請求書1"の数字部分)を入力して、その番号をシート名として取得すると同時に、シートを追加するようにしたいのです。 その過程で、新しいシートの名前をつける際に、同じブック内に既に存在する複数 のシート名と照らし合わせて、もし、既存の番号と同じ番号をInputBoxに入れたときには、「他の番号を入力してください」と再度InputBoxを表示させたいのです。 そして、シート名がブック内に同じものがない場合にのみ、シートを追加するというものです。 VBAを使うより、手動ですれば?という考えももちろん解決方法の一つかとは思いますが、何分Excelを始めて使う年老いた父のために、少しでも簡単に操作できるようにという思いから質問させて頂いております。 どうぞよろしくお願いいたします。

専門家に質問してみよう