[リストへもどる]
一括表示

投稿時間:2003/02/05(Wed) 08:37
投稿者名:sus1971
Eメール:
URL :
タイトル:
Excelシートを連続して作成したい
以下のようなソースコードで、Excelシートを連続して作成したいのですが、
第2シートでエラーとなってしまいます。
(エラー内容は、ソースコード中にコメントで表示)
この回避方法がわかりません。どなたか、ご教示下さい。

<ソースコード>
Private Sub Command1_Click()
    BookName = "c:\temp\x.xls"
'----------------------------------------Sheet a 作成
    Set exl = CreateObject("Excel.Sheet")
    exl.Sheets(1).Name = "a"
    exl.Application.Visible = True
    exl.Windows.Arrange ArrangeStyle:=1
    For i = 1 To 9
        For j = 1 To 9
            exl.Worksheets(1).Cells(i, j).Value = i * j
        Next j
    Next i
'----------------------------------------Sheet b 作成
    exl.Sheets(2).Name = "b"  '<-----実行時エラー'9':
'                                    インデックスが有効範囲にありません。
    exl.Application.Visible = True
    exl.Windows.Arrange ArrangeStyle:=1
    For i = 1 To 9
        For j = 1 To 9
            exl.Worksheets(2).Cells(i, j).Value = i + j
        Next j
    Next i
'----------------------------------------
    exl.SaveAs BookName
    Unload Me
End Sub

投稿時間:2003/02/05(Wed) 10:19
投稿者名:killer
Eメール:
URL :
タイトル:
Re: Excelシートを連続して作成したい
> 以下のようなソースコードで、Excelシートを連続して作成したいのですが、
> 第2シートでエラーとなってしまいます。
> (エラー内容は、ソースコード中にコメントで表示)
> この回避方法がわかりません。どなたか、ご教示下さい。

Private Sub Command1_Click()
    BookName = "c:\temp\x.xls"
'----------------------------------------Sheet a 作成
    Set exl = CreateObject("Excel.Sheet")
    exl.Sheets(1).Name = "a"
    exl.Application.Visible = True
    exl.Windows.Arrange ArrangeStyle:=1
    For i = 1 To 9
        For j = 1 To 9
            exl.Worksheets(1).Cells(i, j).Value = i * j
        Next j
    Next i
'----------------------------------------Sheet b 作成
    exl.Sheets.Add.Name = "b"
    exl.Sheets("b").Select

    exl.Application.Visible = True
    exl.Windows.Arrange ArrangeStyle:=1
    For i = 1 To 9
        For j = 1 To 9
            exl.Worksheets("b").Cells(i, j).Value = i + j
        Next j
    Next i
'----------------------------------------
    exl.SaveAs BookName
    Unload Me
End Sub

上で試してみてください!
ただし、保存されたエクセルを見ると、シートaよりシートbの方が前にきてしまうので、
移動するなりの方法は自分で考えてください!

投稿時間:2003/02/05(Wed) 11:01
投稿者名:sus1971
Eメール:
URL :
タイトル:
Re^2: Excelシートを連続して作成したい
> 上で試してみてください!
> ただし、保存されたエクセルを見ると、シートaよりシートbの方が前にきてしまうので、
> 移動するなりの方法は自分で考えてください!

killerさん
早速のご返答、本当にありがとうございます。
教えていただいたものでやってみて、これで解決しました。
シートの順番については、これから調べてみます。
これからも、宜しくお願いします。

投稿時間:2003/02/05(Wed) 11:57
投稿者名:Killer
Eメール:
URL :
タイトル:
Re^3: Excelシートを連続して作成したい
> killerさん
> 早速のご返答、本当にありがとうございます。
> 教えていただいたものでやってみて、これで解決しました。
> シートの順番については、これから調べてみます。
> これからも、宜しくお願いします。

 エクセルに関しては、空のエクセルを開いて、やりたい動作をマクロに記録して、
 そのマクロのコードを参考にしたらいいよ!

投稿時間:2003/02/05(Wed) 13:22
投稿者名:sus1971
Eメール:
URL :
タイトル:
Re^4: Excelシートを連続して作成したい
>  エクセルに関しては、空のエクセルを開いて、やりたい動作をマクロに記録して、
>  そのマクロのコードを参考にしたらいいよ!

killerさん
わざわざ、ありがとうございます。
今後は、可能な限りそうさせて頂きます。