[[20190615132531]] 『名前を付けて保存したブックのシート操作』(サトゥー) ページの最後に飛ぶ

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

 

『名前を付けて保存したブックのシート操作』(サトゥー)

名前を付けて保存したブックのシートを削除したいです。

エラーでsub function が定義さていませんと出ます

コード

 Dim bookname As String

   bookname = Worksheets("データ").Range("C2")

  ここの処理は端折ります
 'シートデータのC2にある値を新しい名前にして保存

    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & bookname & ".xlsx", FileFormat:=xlOpenXMLWorkbook

'保存したブックを開いてシートデータを消します

    Workbook(bookname).Worksheets("データ").Delete

    ActiveWorkbook.Close

    ThisWorkbook.Close

End Sub

set を使わないといけませんか?

また、OPENメソッドを使い、一度開くべきでしょうか

ご教示お願いします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


一番上に

Sub 適当なマクロ名()

とする必要があります。
でも、そもそも実行出来ないような気がしますが。
コンパイルエラーになるような気がします。
スマホからなので未検証ですが。
(カリーニン) 2019/06/15(土) 13:41


 >エラーでsub function が定義さていませんと出ます

 カリーニンさんが指摘してるけど、
 これ読んでわかりませんかね?そのまんまなんだけど・・・・。
 もし書いてあるのなら、質問の仕方が悪いということになります。

 もしくは、
 >ここの処理は端折ります
 に何を書いてあるのか解らないけど、コードの1番上に Option Explicit がありますか?
 これが書いてあれば、原因が解るかもしれない。

 >Workbook(bookname).Worksheets("データ").Delete

 何で拡張子を付けないのか???
(BJ) 2019/06/15(土) 13:53

あと、Workbooksでは?

(マナ) 2019/06/15(土) 13:57


>また、OPENメソッドを使い、一度開くべきでしょうか

そもそも保存しただけで、まだ閉じられていないです。

(マナ) 2019/06/15(土) 14:01


>set を使わないといけませんか?

いけないことないですが、わたしなら使えるのであれば使います。

(マナ) 2019/06/15(土) 14:10


ありがとうございます。

> Option Explicitがありますか?
あります。

ここの処理は端折ります 表示します

Sub データから注文票作成()

Application.DisplayAlerts = False

Dim bookname As String

bookname = Worksheets("データ").Range("C2")

Worksheets("データ").Range("A2:D10").Copy _
Worksheets("注文").Range("A2")

ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & bookname & ".xlsx", FileFormat:=xlOpenXMLWorkbook

Workbooks(bookname).Worksheets("データ").Delete

ActiveWorkbook.Close

ThisWorkbook.Close

End Sub

>setに関して
setを使用する時はどのように書けばよろしいでしょうか?

(サトゥー) 2019/06/15(土) 14:51


エラーはなくなったのでしょうか。

>ここの処理は端折ります

って、1行だけでしたか。
省略部分で、ブックを開いているのかと推測し
だったら、開いときに変数にSetするとよいと思いました。
でも、そういうことなら

 >Workbooks(bookname).Worksheets("データ").Delete 

は、以下でいいのでは、

 Worksheets("データ").Delete 

(マナ) 2019/06/15(土) 15:20


エラーはなくなったのですが、
名前を付けて保存したブックのシートが削除されていませんでした。

また、thisworkbookも閉じれていないです。

アドバイスお願いします

(サトゥー) 2019/06/15(土) 15:41


本当に、もう省略していませんか。
on error resume next を記述していませんか。

(マナ) 2019/06/15(土) 15:52


 ブック名
 と
 ブック名.xlsx
 の違い。
 先に書いておいたのに、学習しないのでしょうか・・・。
(BJ) 2019/06/15(土) 16:26

>ブック名とブック名.xlsx
勉強不足ですみません。
この場合どういったことでしょうか?
(サトゥー) 2019/06/15(土) 16:45

>on error・・・は記述しておりません。
ブック名の名前を変更してマクロなしの形式で保存したことが影響しているのかなと思います。
(サトゥー) 2019/06/15(土) 16:47

出来ました!!
保存する前にシートを削除をしたらイメージ通りにできました。
ありがとうございます。
(サトゥー) 2019/06/15(土) 17:03

新規シートを開いてシート名を(データ)、(注文)としてマクロを実行したら
(サトゥー) 2019/06/15(土) 15:41 になりました。

気になったので一言
>保存する前にシートを削除をしたらイメージ通りにできました。
その後マクロを実行したということでしょうか。
マクロの問題は解決したのでしょうか。

() 2019/06/15(土) 17:57


気になって試してみました。

 Application.DisplayAlerts = False
 ActiveWorkbook.Close 

保存されないんですね。
強制的に保存かと思っていました。

(マナ) 2019/06/15(土) 18:12


検索してみました。
http://officetanaka.net/excel/vba/file/file03.htm

(マナ) 2019/06/15(土) 18:27


残りは、これ?

>また、thisworkbookも閉じれていないです。

(マナ) 2019/06/15(土) 18:32


検索ありがとうございます。
拡張子わかりました。
拡張子は表示しない設定です。

workbookも無事に閉じれました。

ありがとうございます。
(サトゥー) 2019/06/15(土) 19:07


疑わしい
(㏙) 2019/06/15(土) 20:21

コメント返信:

[ 一覧(最新更新順) ]


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