[[20090627110022]] 『Sheetを移動してコピー』(rss) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Sheetを移動してコピー』(rss)

お世話になります。

Sheetを挿入してから、書式等のコピーをすると

行幅と列幅等が上手く行かないので

Sheetを右クリックし移動またはコピーをすると

行幅と列幅等が上手くいきます。

そこで、記録してみたのですが、上手くいきません。

コピー元のSheets("AAA")は、デスクトップの

C:\Documents and Settings\CCC\デスクトップ\AAA.xlsにあります。

Sheets("AAA")のbookを開かずにActiveSheetの右側に移動またはコピーを

するには、どうすればいいですか?

宜しくお願い致します。

Sub Macro1()

    Application.WindowState = xlMinimized
    Sheets("AAA").Select
    Sheets("AAA").Copy After:=Workbooks("BBB.xls").Sheets(2)
End Sub


 開かずにコピーすることは無理だと思います。(ROUGE)
 
Sub test()
Dim wb As Workbook, flg As Boolean, ws As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
Set ws = ActiveSheet
Set wb = Workbooks("AAA.xls")
flg = (wb Is Nothing)
If flg Then
 Set wb = Workbooks.Open(CreateObject("WScript.Shell").SpecialFolders("DeskTop") & "\AAA.xls")
End If
Err.Clear
On Error GoTo 0
wb.Sheets("AAA").Copy After:=ws
If flg Then wb.Close(False)
Application.ScreenUpdating = True
End Sub

ROUGEさん

諦めていたのですが、回答して下さり、本当に有り難うございます。

ここで wb.Sheets("AAA").Copy After:=ws

実行エラー9 インデックスが有効範囲にありません

と、出ます。

申し訳ありませんが、どのようにしたらいいでしょうか?

宜しくお願い致します。

(rss)

 


 AAA.xlsというファイルがデスクトップにないか、もしくはAAA.xlsにAAAというシートがないか、どちらかだと思いますが。。。
 (ROUGE)

ROUGEさん

>もしくはAAA.xlsにAAAというシートがないか

シート名が間違っていたので、直しました。

すると同じ所で

実行エラー91 オブジェクト変数または、Withブロック変数が設定されていません。

と、出ます。

たびたび申し訳ありませんが、宜しくお願い致します。

(rss)


 一度下記コードを実行してみてください。(ROUGE)
 
Sub test()
Dim wb As Workbook, flg As Boolean, ws As Worksheet
On Error Resume Next
flg = (wb Is Nothing)
If flg Then
 Set wb = Workbooks.Open(CreateObject("WScript.Shell").SpecialFolders("DeskTop") & "\AAA.xls")
End If
Err.Clear
On Error GoTo 0
MsgBox IIf(wb Is Nothing, "AAA.xlsが見つかりませんでした", "OKです")
End Sub


ROUGEさん

コピペを繰り返しているうちにおかしくなり

最初からやり直したら、出来ました。

お手数かけしまして、大変申し訳ありませんでした。

すばらしいコード本当に有り難うございました。

感謝致します。

(rss)


何度も申し訳ありませんが、Sheetを

1番右に挿入したいのですが、上手くいきません。

宜しくお願い致します。

wb.Sheets("請求額").Copy after:=ws(Worksheets.Count)

(rss)


 念のためお聞きしますが、シート挿入するのはこのマクロがあるBookで良いですね?(ROUGE)
 
Sub test()
Dim wb As Workbook, flg As Boolean
On Error Resume Next
Application.ScreenUpdating = False
Set wb = Workbooks("AAA.xls")
flg = (wb Is Nothing)
If flg Then
 Set wb = Workbooks.Open(CreateObject("WScript.Shell").SpecialFolders("DeskTop") & "\AAA.xls")
End If
Err.Clear
On Error GoTo 0
wb.Sheets("AAA").Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
If flg Then wb.Close(False)
Application.ScreenUpdating = True
End Sub


ROUGEさん

>シート挿入するのはこのマクロがあるBookで良いですね?

説明が無く、申し訳ありません。

UserformのCommandbuttonで、実行しょうと思います。

(rss)


ROUGEさん

思いどおりに出来ました。

>(CreateObject("WScript.Shell").SpecialFolders("DeskTop") & "\AAA.xls")

ここの所がフルパスを書かなくてもいいので、すごく楽で勉強になりました。

何度も対応して下さり、本当に有り難うございました。

(rss)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.