• ベストアンサー

【VB6】EXCELのシート名を変更したい

お世話になっております。 VB6(visual basic 6)プログラムからEXCELのシート名を指定したいです。 EXCEL:EXCEL 2000 OS: win XP 以下の記述ではシート名がデフォルトのままです。 (sheet1のままで変更できていない) Dim fs As Object Dim oApp As Object Set oApp = CreateObject("Excel.Application")'EXCEL起動 oApp.Visible = True oApp.UserControl = True oApp.Workbooks.Add '新規のワークシートsheet1を追加する oApp.Cells(1, 1) = "シート名を指定したい!" 'セル入力はできた oApp.Sheets("sheet").select oApp.Sheets("sheet").Name = "新シート名" ご覧のように (1)自動EXCEL起動して (2)セル1,1に文字入力して (3)シート名を指定 しようとしております。 セル(1,1)に「シート名を指定したい!」は入力されております。 ブック名(ファイル名)はデフォルトのBook1.xlsです。 シート名の指定方法が間違っているからうまくいかないと思っております。 どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • na_kirajp
  • ベストアンサー率43% (33/76)
回答No.1

以下の行ですが、 oApp.Sheets("sheet").select oApp.Sheets("sheet").Name = "新シート名" シート名はsheetになっていますが、実際にはsheet1で開かれていませんか? (sheet1に変えたらOKでした) 一番綺麗な形は、元のシート名も取得して使うのがベターかと思われますが・・・(参考URL参照ください)

参考URL:
http://www.asahi-net.or.jp/~ZN3Y-NGI/YNxv202.html#3
tantou7
質問者

お礼

ありがとうございます。

その他の回答 (1)

回答No.2

こんにちは。 >oApp.Sheets("sheet").select >oApp.Sheets("sheet").Name = "新シート名" ここの「sheet」は「Sheet1」ですね。 (^^ゞ

関連するQ&A

  • VBでEXCELのシートのコピーに関して

    同一Book内で、シートのコピーをしようと考えて、幾つかのHPを参考に、以下のような 記述をしました。 その際に、以下の記述をした場合、本来はコピー先のシート名を変更したいにも関わらず、コピー 元のシート名が変わってしまいます。 追加したシートの名前を変更させるには、どのような書き方にすれば良いでしょうか? 自分で記述しておきながら、どのように対応したら良いかわからず。。。 また、以下のような記述をした場合、追加したセル側のシートを操作したいにも関わらず、 コピー元のシートを書き換えてしまいます。 追加したシートのセルを操作したい(値を入力)ような場合は、どのような記述を すれば良いでしょうか。。。 ご教授頂ければと思います。 '既存のEXCELファイルを開く Dim xlFilePath As String = "C:\test.xls" '起動時の処理 Dim xlApp As New Excel.Application Dim xlBooks As Excel.Workbooks = xlApp.Workbooks Dim xlBook As Excel.Workbook = xlBooks.Open(xlFilePath) '確認のためExcelのウィンドウを表示する xlApp.Visible = True Dim xlSheets As Excel.Sheets = xlBook.Worksheets Dim xlSheet As Excel.Worksheet = CType(xlSheets.Item(1), Excel.Worksheet) Dim xlSheet2 As Excel.Worksheet = xlBook.Worksheets(1) 'シートのコピー xlSheet.Copy(After:=xlSheet2) 'シートに名前を付ける xlSheet.Name = "TEST" Dim xlRange As Excel.Range 'データの入力セル範囲 xlRange = xlSheet.Range("A1:A1") 'セルへデータの入力 xlRange.Value = “AABBCC”

  • 【VB6】EXCELのセルに0.033を"3.3%"と自動で表示指定入力したい

    お世話になっております。 VB6(visual basic 6)プログラムからEXCELのセルの表示形式をパーセンテージ指定したいです。 EXCEL:EXCEL 2000 OS: win XP 以下にターゲットの中核部分を切り出しました。 --- Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.Workbooks.Add oApp.Cells(1, 1) = 1000 oApp.Cells(1, 2) = 33 oApp.Cells(1, 3) = "=a2/a1" --- EXCELのシートに 1000 33 0.033 と入力されます。 この記述ではセルがデフォルト表示のまま(0.033)です。 この0.033を自動的に3.3%と表示したいです さらには小数点以下桁数の指定方法が知りたいです。 (例えば3.300%などど表示させたり) EXCELのシートから手作業による表示形式変更方法は承知しております。 VB6からプログラムで自動に3.3%と出るようにしたいのです。 どうぞよろしくお願いいたします。

  • アクセスからエクセルを開いてデータを取得するには?

    こんにちは。 MS AccessからExcelを開いて、Excel上のデータを取得したいのですが、下記のようにしたらエラーとなりました。CellsがNGみたいなのですが、AccessではCellsは使用出来ないのでしょうか? 宜しくお願いします。 Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.Visible = True On Error Resume Next oApp.UserControl = True oApp.Workbooks.Open Filename:="C:\TEST\Book1.xls" GYO = 1 Do KI = Cells(GYO, 1).Value MsgBox KI GYO = GYO + 1 Loop Until Cells(GYO, 1) = ""

  • VB2005でExcelのシートをコピー

    VB2005Expressで開発をしています。 Excelのシートをコピーして同じbookに追加をしたいと思っています。 下記でまずExcelを使用できるようにして  Dim xlApp As New Excel.Application  Dim xlBooks As Excel.Workbooks = xlApp.Workbooks  Dim xlBook As Excel.Workbook = xlBooks.Add '新規のファイルを開く  Dim xlSheets As Excel.Sheets = xlBook.Worksheets  Dim xlSheet As Excel.Worksheet = xlSheets.Item(1)  xlApp.Visible = True 下記で追加できると思うのですが、()内にセットするパラメータが わかりません・・・  xlBook.Worksheets.Copy() どなたかご存知の方がいらっしゃいましたら教えて下さい。 よろしくお願いします。

  • エクセルでシート名でソート

    エクセルのシートをシート名でソートしたいのですが、VBAで以下の様な条件で出来るのでしょうか。 ・シートは必ず5枚以上で、最大70枚です。 ・シート名は、半角英数字、漢字を使用しています。 ・ソートの順は、1文字の「0~9」→「A~Z」→「0_0~9_Z」→「A_1~Z_Z」の順になります。 ・シートの一番左端と右端3シートは並び替えしない(漢字名シート)。 例(ソートするシート) 0→4→5→F→0_1→0_9→4_1→5_4→5_5→F_5 「シートの並び替え」で検索してみましたら以下のサンプルが 有りましたので少し変更してみました。 ********************* Sub MoveSamp1() Dim i As Long Dim j As Long For i = 2 To Sheets.Count - 3 '---最初から最後の3つ前のシートまで For j = i + 1 To Sheets.Count '---i番め以降のシート全て If Sheets(i).Name > Sheets(j).Name Then '---シート名の比較 Sheets(j).Move Before:=Sheets(i) '---(1)シートの移動 End If Next j Next i End Sub ********************************************************** 結果 0→0_1→0_9→4→4_1→5→5_4→5_5→F→F_5 上手くいきませんでした。 他の方法として   ブック追加、シート名をセルに書き出し、セルとシート名比較、シート移動、ブック削除 なども試してみましたがダメでした。 シート名が数字ならば行くようですが。  エクセルは2003~2010で考えています。 すみませんが良いお知恵をお貸しくださいませんか。

  • Access VBAからExcelシートの削除

    お世話になります。 Access VBA から指定したExcelシートの削除を行うプログラムを下記の通りに記載しています。 Set oApp = CreateObject("Excel.Application") oApp.Workbooks.Open FileName:="エクセル.xls" oApp.DisplayAlerts = False oApp.Sheets("シート名1").Delete oApp.DisplayAlerts = True この場合において、"シート名1"が存在していれば問題なく処理されますが、 このシートが存在していなければエラーが起きます。 指定したExcelブックにこのシートが存在するかどうかのチェックを事前に行い、 存在する場合のみ削除処理を行うにはどうすればよいでしょうか? よろしくお願いします。 環境は、Access2007です。

  • VBで既存エクセルシートを新規ブックにコピー

    VB6,Excel2003です。 既存のエクセルシートを新規ブックにコピーする プログラムを作成してみましたが タスクバーに新規ブックのタスクバーボタンが2つできてしまいます。 どこが原因か教えてください。よろしくお願いします。 Private Sub Command1_Click() Dim xlsApp As Excel.Application Dim xlsBookTemp As Excel.Workbook 'コピー元ブック Dim xlsBookCopy As Excel.Workbook 'コピー先ブック Dim xlsSheetTemp As Excel.Worksheet 'コピー元シート Dim xlsSheetCopy As Excel.Worksheet 'コピー先シート Set xlsApp = CreateObject("Excel.Application") Set xlsBookTemp = xlsApp.Workbooks.Open("C:\Temp.xls") Set xlsSheetTemp = xlsBookTemp.Sheets(1) Set xlsBookCopy = xlsApp.Workbooks.Add Set xlsSheetCopy = xlsBookCopy.Sheets(1) xlsApp.Visible = True 'コピー元のSheet1を新規ブックにコピーする xlsSheetTemp.Copy Before:=xlsSheetCopy 'コピー元のブックは閉じる xlsBookTemp.Close '///新規ブックの編集処理/// Set xlsSheetTemp = Nothing Set xlsBookTemp = Nothing Set xlsSheetCopy = Nothing Set xlsBookCopy = Nothing Set xlsApp = Nothing End Sub

  • vbsでexcelのクリアとフォームの表示をしたい

    お世話になっております。 vbsの以下の記述でexcelを開いています。 開くところまでは行くのですが、その後のsheet1のデータのクリアとUserForm1の表示がどうしてもできません。 申し訳ありませんが、どなたかおわかりの方、教えていただけないでしょうか。 宜しくお願いいたします。 Dim oApp Dim objWshShell Dim scriptPath 'Excelオブジェト作成 Set oApp = CreateObject("Excel.Application") 'WScript.Shellオブジェクト作成 Set objWshShell = CreateObject("WScript.Shell") oApp.Visible = True '不可視にする oApp.UserControl = True 'Excelファイルを開く scriptPath = WScript.ScriptFullName scriptPath = left(scriptPath,len(scriptPath)-len(WScript.ScriptName)) oApp.Workbooks.Open scriptPath & "共同資料.xlsm"

  • Vistaなら1回で行くのにXPだと2回

    エクセルVBAで新たなエクセルアプリケーションを立ち上げるコードが知りたく ネットで検索したら見つけました。 ---------------------------------------- Sub test() Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.Visible = True oApp.UserControl = True Set oApp = Nothing End Sub ---------------------------------------- 上記のコードなのですが XPは2回このコードを実行しないと、新たなアプリケーションは立ち上がりません。 vistaなら1回で立ち上がります。 どちらもエクセルのバージョンは2003です。 XPがおかしいのか、2回やらないといけないコードなのかわかりません。 よろしくお願いします。

  • エクセルVBAの質問 開いているもう一つのブックのシート名をすべて取得する方法

    おはようございます。 現在マクロを実行しているブックのシート名を下のようなコードで取得していますが、これを 開いているもうひとつのブックのシート名を マクロ実行しているシート“しーと1”のJ3セル以降に並べる というように変更したいのですが、下のコードを少し変更して 対応できるでしょうか?教えていただけたら助かります。 Sub シート名() Dim i As Integer Dim mySheetCnt As Integer Dim mySheetNam As String Application.ScreenUpdating = False Columns("J:J").Select Selection.ClearContents Range("J2").Select ActiveCell.FormulaR1C1 = "項目名" mySheetCnt = ThisWorkbook.Sheets.Count For i = 2 To mySheetCnt mySheetNam = Sheets(i).Name Sheets("しーと1").Cells(i, 10) = mySheetNam Next i Application.ScreenUpdating = True MsgBox "シート名更新しました。" End Sub

専門家に質問してみよう