Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3521 / 13645 ツリー ←次へ | 前へ→

【61612】開いたxlsを閉じたい。 ちえ 09/5/21(木) 18:15 質問[未読]
【61613】Re:開いたxlsを閉じたい。 つん 09/5/21(木) 21:09 回答[未読]
【61618】Re:開いたxlsを閉じたい。 つん 09/5/21(木) 23:56 発言[未読]
【61657】Re:開いたxlsを閉じたい。 ちえ 09/5/25(月) 13:33 質問[未読]
【61659】Re:開いたxlsを閉じたい。 つん 09/5/25(月) 14:27 発言[未読]
【61670】Re:開いたxlsを閉じたい。 ちえ 09/5/26(火) 9:30 お礼[未読]
【61671】開いたxlsを閉じたい ちえ 09/5/26(火) 9:31 お礼[未読]
【61672】Re:開いたxlsを閉じたい つん 09/5/26(火) 10:01 回答[未読]
【61674】Re:開いたxlsを閉じたい ちえ 09/5/26(火) 14:31 お礼[未読]
【61675】Re:開いたxlsを閉じたい つん 09/5/26(火) 17:22 発言[未読]

【61612】開いたxlsを閉じたい。
質問  ちえ  - 09/5/21(木) 18:15 -

引用なし
パスワード
   Workbooks.Open Filename:="Z:\管理\情報システム室\UserName\Daiky_Backup_Data\Backup_Data\" & Sname & "\バックアップ " & IData & ".htm"
Windows("バックアップ " & IData & ".htm").Activate
  Cells.Select
  Selection.Copy
  Windows("Daily_Backup_Data(tky02,tsrv03,rdsrv03).xls").Activate
  Range("A1").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Range("A1").Select


上記で、バックアップ " & IData & ".htmというhtm形式のデータを開き、
Daily_Backup_Data(tky02,tsrv03,rdsrv03).xlsにテキスト形式で貼付け
しております。

貼付けが終わった時点で、バックアップ " & IData & ".htmは不要ですので、
閉じたいのですが、どのように記述すればよろしいでしょうか?

度々恐れ入りますが宜しくお願いいたします。

【61613】Re:開いたxlsを閉じたい。
回答  つん  - 09/5/21(木) 21:09 -

引用なし
パスワード
   ▼ちえ さん
こんばんは^^

普通に

Workbooks("ファイル名.htm").Close

で閉じられると思います^^

【61618】Re:開いたxlsを閉じたい。
発言  つん  - 09/5/21(木) 23:56 -

引用なし
パスワード
   どもども
なんども失礼

>Workbooks.Open Filename:="Z:\管理\情報システム室\UserName\Daiky_Backup_Data\Backup_Data\" & Sname & "\バックアップ " & IData & ".htm"
> Windows("バックアップ " & IData & ".htm").Activate
>  Cells.Select
>  Selection.Copy
>  Windows("Daily_Backup_Data(tky02,tsrv03,rdsrv03).xls").Activate
>  Range("A1").Select
>  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
>    :=False, Transpose:=False
>  Range("A1").Select

拝見してると、「"バックアップ " & IData & ".htm"」をまるまる、「Daily_Backup_Data(tky02,tsrv03,rdsrv03).xls」にコピーしてるみたいですよね。
だったら、セルのコピーではなくて、シートのコピーでいいんじゃないかな?


Sub test()

  Workbooks.Open Filename:="C:\Users\tomoko\Desktop\新しいフォルダ\test.htm"
  
  ActiveSheet.Copy Before:=Workbooks("test2.xlsx").Worksheets(1)
    
  Workbooks("test.htm").Close

End Sub

こんな感じ?
デスクトップにフォルダを作って、その中に、「test.htm」と「test2.xlsx]
を作ってみました。(2007だから、拡張子が変〜〜〜。これ、なんかイヤやねえ)
で、「test.htm」のシートを「test2.xlsx」の先頭にコピー

こんなのはどうですか?

コピーとか貼り付けとか、いちいちそのブックやシートをセレクトしなくても出来ます。
マクロの記録じゃどうしてもそういう形になるけど、なれてきたら、セレクトしないコードの書き方を覚えていったらいいかな?と思います。

あまり上手に説明できなくてごめんなさい。
頑張ってね^^

【61657】Re:開いたxlsを閉じたい。
質問  ちえ  - 09/5/25(月) 13:33 -

引用なし
パスワード
   ▼つん様 ご返信が遅くなり申し訳ありません。

教えて頂いたシートコピー方法を転用してみたのですが、
下記エラーが発生します。
【Error】
'Open' メソッドは失敗しました: 'Workbooks' オブジェクト

貼付けるシート位置は、4番目のシートで且つ「転記データ作成」という
シート名にしております。

ActiveSheet.Copy Before:=Workbooks("バックアップ " & IData & ".htm").Worksheets("転記データ作成")
  
  Workbooks("バックアップ " & IData & ".htm").Close

何度も申し訳ないですが、宜しくお願いします。

【61659】Re:開いたxlsを閉じたい。
発言  つん  - 09/5/25(月) 14:27 -

引用なし
パスワード
   ▼ちえ さん
こんちは^^

>下記エラーが発生します。
>【Error】
>'Open' メソッドは失敗しました: 'Workbooks' オブジェクト
え?ということは

Workbooks.Open Filename:="Z:\管理\情報システム室\UserName\Daiky_Backup_Data\Backup_Data\" & Sname & "\バックアップ " & IData & ".htm"

この時点でエラーってこと?
以前は出来てたんでしょね????


>貼付けるシート位置は、4番目のシートで且つ「転記データ作成」という
>シート名にしております。
>
>ActiveSheet.Copy Before:=Workbooks("バックアップ " & IData & ".htm").Worksheets("転記データ作成")

これなんか変じゃないですか?
これだと、「バックアップ " & IData & ".htm」ファイルの「転記データ作成」シートの前に、コピーされることになりますよね?
「バックアップ " & IData & ".htm」のシートを、別のブックにコピーしたかったんじゃないの?

【61670】Re:開いたxlsを閉じたい。
お礼  ちえ  - 09/5/26(火) 9:30 -

引用なし
パスワード
   ▼つん様
ご返事遅れて申し訳ありません。

すごく変でした。

Workbooks.Open Filename:="Z:\管理\情報システム室\UserName\Daiky_Backup_Data\Backup_Data\" & Sname & "\バックアップ " & IData & ".htm"
Windows("バックアップ " & IData & ".htm").Activate
  Cells.Select
  Selection.Copy
  Windows("Daily_Backup_Data(tky02,tsrv03,rdsrv03).xls").Activate
  Worksheets("転記データ作成").Range("A1").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Worksheets("転記データ作成").Range("A1").Select
  
  Workbooks("バックアップ " & IData & ".htm").Close


一応、上記で欲しい結果となったのですが、以前教えて頂いた、
シートの移動でも同じ結果となるのでしょうか。

もう少し自身で勉強してみます。
ありがとうございました。

【61671】開いたxlsを閉じたい
お礼  ちえ  - 09/5/26(火) 9:31 -

引用なし
パスワード
   ▼つん様
ご返事遅れて申し訳ありません。

すごく変でした。

Workbooks.Open Filename:="Z:\管理\情報システム室\UserName\Daiky_Backup_Data\Backup_Data\" & Sname & "\バックアップ " & IData & ".htm"
Windows("バックアップ " & IData & ".htm").Activate
  Cells.Select
  Selection.Copy
  Windows("Daily_Backup_Data(tky02,tsrv03,rdsrv03).xls").Activate
  Worksheets("転記データ作成").Range("A1").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Worksheets("転記データ作成").Range("A1").Select
  
  Workbooks("バックアップ " & IData & ".htm").Close


一応、上記で欲しい結果となったのですが、以前教えて頂いた、
シートの移動でも同じ結果となるのでしょうか。

もう少し自身で勉強してみます。
ありがとうございました。

【61672】Re:開いたxlsを閉じたい
回答  つん  - 09/5/26(火) 10:01 -

引用なし
パスワード
   ▼ちえ さん:
おはようございます^^

>Workbooks.Open Filename:="Z:\管理\情報システム室\UserName\Daiky_Backup_Data\Backup_Data\" & Sname & "\バックアップ " & IData & ".htm"
> Windows("バックアップ " & IData & ".htm").Activate
>  Cells.Select
>  Selection.Copy
>  Windows("Daily_Backup_Data(tky02,tsrv03,rdsrv03).xls").Activate
>  Worksheets("転記データ作成").Range("A1").Select
>  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
>    :=False, Transpose:=False
>  Worksheets("転記データ作成").Range("A1").Select
>  
>  Workbooks("バックアップ " & IData & ".htm").Close
>
>
>一応、上記で欲しい結果となったのですが、以前教えて頂いた、
>シートの移動でも同じ結果となるのでしょうか。

シート移動なら、移動した後にシート名の変更(転記データ作成)が必要になってくるので、上記で望まれる結果が得られるなら、それでええんじゃないかと思います。
ただ、不必要な、Selectや、Activateがあるようなので、その辺を整理されたらいいなじゃないかな?

ちょっと仕事が混んでいるので、その辺あまり説明する時間がないです。
すみません。
また、手があいて、他の方のレスが入ってなければコメント入れさせてもらいますね^^

他の方のコードをサンプルにするなどして、勉強なさってください。

【61674】Re:開いたxlsを閉じたい
お礼  ちえ  - 09/5/26(火) 14:31 -

引用なし
パスワード
   ▼つん様

お返事ありがとうざいます。

マクロの記録でできたコードのダイエットができるように
がんばります。

【61675】Re:開いたxlsを閉じたい
発言  つん  - 09/5/26(火) 17:22 -

引用なし
パスワード
   ▼ちえ さん
どもども^^

Sub test()


  Workbooks.Open Filename:="C:\Documents and Settings\hogehoge\デスクトップ\omtest\test.htm"

  ActiveSheet.Cells.Copy _
    Destination:=Workbooks("test.xls").Worksheets("転記データ作成").Range("a1")
  
  Workbooks("test.htm").Close


End Sub

テキトーにデスクトップにファイル作ってしたのでファイル名もテキトーですが・・・
コピーしたいシートを、貼り付け先シートににまるまるコピーならこれで十分かと思います。多分・・・・

貼り付け先のブックが予め開かれてるの前提のコードですが、
「予め開かれてるかどうか?」の判定をかませてやる方がいいかもしれません。
このへんは、チエさんが使用される状況によると思いますが。

3521 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free