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

excel vba で教えてください
sheet名0を雛形に、使用者が1 2 3のsheet名でコピーして利用できるようにしたい。1はあるのでコピーを作らない。2はないのでsheet名0をコピーして作るといったように現在sheet2があるや否やで作成するや否やを判断してsheet copyをしたい。
すべてのsheet を名前をしらべつつ判断したいのです
教えてください

A 回答 (3件)

シート名を 変数Snameに入れる VBAです



Sub aaa()
  Dim sname() As String
  ReDim sname(Sheets.Count)

  For ii = 1 To Sheets.Count
    sname(ii) = Sheets(ii).Name
  Next
End Sub
    • good
    • 0
この回答へのお礼

早速ありがとうございます。
そうですね。
ここの部分を
参考にしてなんとかできそうです。
ありがとうございました

お礼日時:2007/10/08 05:34

質問の意味が解りません。



Sheet名0とは「Sheet0」なのか「0」なのか?
Sheet2があったら「2」を作らない?

マクロを実行したらシート名「Sheet0」のコピーを連番で追加したいって事ですか?
例えば、

Sub Test()
  Worksheets("Sheet0").Copy after:=Worksheets(Worksheets.Count)
  i = 1
On Error GoTo ER:
  ActiveSheet.Name = "Sheet" & i
  Exit Sub
ER:
  i = i + 1: Resume
End Sub
    • good
    • 0
この回答へのお礼

sheet2 ではなく sheet名2 でした。
連番ではなく ない 名前のsheetだけ
作成するという意味です。

お礼日時:2007/10/08 05:37

Sheet5,Sheet6というシートが無ければ、Sheet1をコピーしてそれらを


作る。
Sub test02()
sn = Array("Sheet5", "Sheet6")
On Error GoTo err1
For i = 0 To UBound(sn)
Worksheets(sn(i)).Activate
MsgBox sn(i) & "がありません.作成します"
Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = sn(i)
Next i
Exit Sub
err1:
MsgBox err & " " & Error(err)
Resume Next
End Sub
Sheet5,Sheet6は当初にないという前提です。
---
もしあればコピーするのを飛ばすなら
Sub test02()
sn = Array("Sheet5", "Sheet6")
On Error GoTo err1
For i = 0 To UBound(sn)
Worksheets(sn(i)).Activate
MsgBox sn(i) & "はあります"
GoTo nxt1
p1:
MsgBox sn(i) & "がありません.作成します"
Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = sn(i)
nxt1:
Next i
Exit Sub
err1:
MsgBox err & " " & Error(err)
GoTo p1
End Sub
    • good
    • 0
この回答へのお礼

いつもimogasiさんありがとうございます。
参考にしてなんとかできそうです。
ありがとうございました。

お礼日時:2007/10/08 05:31

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