
No.2ベストアンサー
- 回答日時:
こんにちは。
急ぎということで、取り急ぎで作ったコードです。目的の処理以外は一切おこなっていませんので、カスタマイズしてください。
また、処理速度の点で実行時バインドではなく、参照設定を予め行って下さい。
Option Compare Database
'要参照設定:Microsft Excel x.x Object Library
Sub AddXLWorksheet()
Dim xlApp As Excel.Application
Dim WB As Excel.Workbook
Dim SH As Excel.Worksheet
Dim strXLfile as stirng
strXLfile = "C:\TEST.xls" 'Excelブックフルパス
Set xlApp = Excel.Application
With xlApp
.Visible = True
Set WB = .Workbooks.Open(strXLfile)
'シートを3番目に追加
Set SH = .Worksheets.Add(After:=WB.Worksheets(2))
'シート命名
SH.Name = "aaaaa" 'ここを変数で渡せば良い
End With
Set SH = Nothing
Set WB = Nothing
Set xlApp = Nothing
End Sub
No.4
- 回答日時:
すみません。
#2 のコードを一部訂正し差し替えます。Option Compare Database
'要参照設定:Microsft Excel x.x Object Library
Sub AddXLWorksheet()
Dim xlApp As Excel.Application
Dim WB As Excel.Workbook
Dim SH As Excel.Worksheet
Dim strXLfile as stirng
strXLfile = "C:\TEST.xls" 'Excelブックフルパス
Set xlApp = New Excel.Application
With xlApp
.Visible = True
Set WB = .Workbooks.Open(strXLfile)
'シートを3番目に追加
Set SH = WB.Worksheets.Add(After:=WB.Worksheets(2))
'シート命名
SH.Name = "aaaaa" 'ここを変数で渡せば良い
End With
'ExcelをVBAで終了させるならコメント解除
'xlApp.Quit
Set SH = Nothing
Set WB = Nothing
Set xlApp = Nothing
End Sub
#3 の方のコードについて補足ですが、、
Microsft Excel x.x Object Library の参照設定がされていると
Sheets.Add
など、通常の Excel VBA のコードのように書いてもエラーになりません。
しかし、これをやってしまうと、
objExcel.Quit
としても Excel が終了しないでタスクが残ってしまいます。タスクマネージャーで確認してみて下さい。
実は、Excel への参照設定をおこなうと
Global Application As New Excel.Application
という変数が暗黙的に作成されます。
ここで注意が必要なのですが、インスタンスを明示しないで Excel の関数やオブジェクトを使ってしまうと、自動的に変数 Application に ”Excel のインスタンスへの参照が格納”されてしまい objExcel.Quit だけでは Excel が終了しないのです。
これを回避するためには、面倒でも
objExcel.Sheets.Add
と必ずインスタンスを明示しなければなりません。ご参考までに。
No.3
- 回答日時:
下記の記述をイベントに
Dim objExcel As Excel.Application
Dim MyStName As String
MyStName = "XXX" '"XXX"の代わりにここに格納されている変数の記述を
Set objExcel = New Excel.Application
objExcel.Workbooks.Open ("c:\フルパス\ファイル名.xls") '規定の場所のExcelファイルの指定
Sheets.Add 'ワークシートの挿入
ActiveSheet.Name = MyStName 'シート名の変更
Worksheets(MyStName).Move after:=Worksheets(1) '挿入されたシートを2番目に移動
objExcel.Quit
Set objExcel = Nothing
新しいシートを挿入してシート名を変更後2番目の位置に移動します。
ちなみにシートの並び替えも出来ます。
No.1
- 回答日時:
こんばんは
多分 シートの並び替え、途中の挿入は出来なかったと思います。
新たなExcelファイルを作成し、シートをコピーして、該当の条件を満たしたとき2番目にシートを作成し、3番目以降となるシートを元Excelから貼り付ける
というのはいかがですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- その他(パソコン・スマホ・電化製品) エクセル初心者です。 仕事でエクセルを使っていて、普段は素人でもできる簡単な関数を使ったことがある程 1 2022/05/25 11:17
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESSのVBAにてExcelのシートをコピーしたい
その他(データベース)
-
Access エクセルシート名変更
その他(プログラミング・Web制作)
-
アクセスvbaでエクセルブックを保存
その他(Microsoft Office)
-
-
4
アクセスクエリ(複数)→マクロ→エクセル出力(ワークシート別)
その他(パソコン・スマホ・電化製品)
-
5
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
6
Access VBAからExcelシートの削除
Excel(エクセル)
-
7
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
8
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
9
ACCESSVBA からExcelの他ブックへコピーの方法
Visual Basic(VBA)
-
10
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
11
Access VBAよりシート名を取得したい
その他(データベース)
-
12
Accessのスプレッドシートエクスポートで、シートが追加されてしまう
Access(アクセス)
-
13
Access-VBAでExcelファイルを作成する。
Excel(エクセル)
-
14
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
15
ACCESSのVBAにてExcelに行を追加したい
その他(データベース)
-
16
AccessVBAでExcelを起動し、罫線を引きたいのですが、Exc
Visual Basic(VBA)
-
17
ACCESS側からEXCELの書式を設定するには?
Visual Basic(VBA)
-
18
ACCESSのVBで、エクセルファイルの最終行を取得
Excel(エクセル)
-
19
Worksheets メソッドは失敗しました。のエラー処理のやり方
Visual Basic(VBA)
-
20
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルシートの見出しの文字...
-
EXCELで複数のシートを一度に「...
-
ワークシートそのものの色を変...
-
EXCELで存在しないシート...
-
特定のシートのみ再計算させな...
-
エクセルでブック内の倍率がバ...
-
ハイパーリンクでジャンプした...
-
Wordで差し込み印刷時に表示す...
-
エクセル 非表示のシートをハ...
-
DATE関数 4月31日などのあ...
-
Excelで条件に一致したものだけ...
-
エクセルのシー名を二段表示に...
-
エクセルの複数シートでのリン...
-
【ExcelVBA】マクロの入ったシ...
-
エクセルで複数のシートに画像...
-
エクセルで誤ってF11キーを押す...
-
エクセル、特定のシートにパス...
-
エクセル2003で、複数のシート...
-
再質問です。エクセルでシート...
-
エクセルマクロでシート名を条...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
【ExcelVBA】マクロの入ったシ...
-
ハイパーリンクでジャンプした...
-
特定のシートのみ再計算させな...
-
EXCELの図形(テキストボックス)...
-
エクセルで複数のシートに画像...
-
エクセルのファイルサイズが急...
-
エクセル、特定のシートにパス...
-
Accessのテーブルを既存のExcel...
-
エクセルのシー名を二段表示に...
-
エクセルの2つのシートを並び...
-
EXCELで存在しないシート...
-
エクセルの複数シートでのリン...
-
エクセルで、シートの名前を変...
-
EXCELの「シートの見出し」のフ...
-
Wordで差し込み印刷時に表示す...
-
ワークシートそのものの色を変...
-
エクセルを開くとメニューバー...
-
エクセル、別のシートの表をポ...
おすすめ情報