
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
ACCESSのVBAにてExcelのシートをコピーしたい
その他(データベース)
-
Access-VBAでExcelファイルを作成する。
Excel(エクセル)
-
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
4
Access エクセルシート名変更
その他(プログラミング・Web制作)
-
5
Access VBAよりシート名を取得したい
その他(データベース)
-
6
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
7
AccessVBAで作成したExcelファイルを削除する方法は?
Visual Basic(VBA)
-
8
ACCESSVBA からExcelの他ブックへコピーの方法
Visual Basic(VBA)
-
9
ACCESS側からEXCELの書式を設定するには?
Visual Basic(VBA)
-
10
Access VBAからExcelシートの削除
Excel(エクセル)
-
11
Access VBAよりExcelのシート名を取得
その他(データベース)
-
12
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
13
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
14
Accessでレコードを別テーブルへコピーするには
Access(アクセス)
-
15
Access サブフォームでの選択行の取得
その他(データベース)
-
16
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
17
AccessからExcelのシートを削除
Excel(エクセル)
-
18
ACCESS、VBAでEXCELファイルをコピーはできますか
その他(データベース)
-
19
アクセスクエリ(複数)→マクロ→エクセル出力(ワークシート別)
その他(パソコン・スマホ・電化製品)
-
20
AccessのRefresh・Requery・Repaintの違い
Access(アクセス)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
特定のシートのみ再計算させな...
-
5
ハイパーリンクでジャンプした...
-
6
EXCELで複数のシートを一度に「...
-
7
EXCELの図形(テキストボックス)...
-
8
エクセルの2つのシートを並び...
-
9
エクセルでブック内の倍率がバ...
-
10
エクセルのシート連番の振り直し
-
11
【ExcelVBA】マクロの入ったシ...
-
12
特定の複数のシートに同じ処理...
-
13
エクセル、特定のシートにパス...
-
14
エクセル シート毎 連続で曜日...
-
15
Accessのテーブルを既存のExcel...
-
16
エクセルで、シートの名前を変...
-
17
エクセルのシー名を二段表示に...
-
18
エクセルの複数シートでのリン...
-
19
EXCELで存在しないシート...
-
20
エクセル、別のシートの表をポ...
おすすめ情報
公式facebook
公式twitter