[[20160511100525]] 『名前を変えて保存 xlmsからxlsx変更』(ぷにぷに) ページの最後に飛ぶ

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

 

『名前を変えて保存 xlmsからxlsx変更』(ぷにぷに)

いつも大変お世話になっております
ご教示頂けたら幸いです

宜しくお願いします

下記の様に名前変更保存を行っていますが
配布用にマクロを削除したいのですが
どの様に書けばいいのでしょうか

Private Sub CommandButton2_Click()
Dim TargetPath As String
Dim myFname As String
myFname = Format(Now, "YYYYMMDD")
TargetPath = ThisWorkbook.Path
ActiveWorkbook.SaveAs TargetPath & "\" & _

                                   Me.TextBox1.Value & myFname

End Sub

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 xlsxで保存しようとしているブックは、マクロブック自身ですね。
 xlsm と xlsx とでは、ファイル形式が全く異なりますので、保存に際しては ファイル拡張子とともにファイル形式の指定が必須です。

 ActiveWorkbook.SaveAs TargetPath & "\" & _
     TextBox1.Value & myFname & ".xlsx", _
     FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

 で、マクロブックをxlsxブックとして保存しようとするとワーニングメッセージがでますので
 この 前後に     Application.DisplayAlerts = False/True の手当てを入れておきましょう。

 ただし・・・・
 この瞬間にマクロブックは、エクセル画面からなくなります。で、ユーザーフォームは表示されていますので
 Unload Me を入れておくことも望まれます。

 が・・・・

 β推奨は マクロブックはそのままで、このブックのコピーを xlsx で保存する。
 コードは以下のようになります。

    Workbooks.Copy
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs TargetPath & "\" & _
        TextBox1.Value & myFname & ".xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    Application.DisplayAlerts = True
    Unload Me

(β) 2016/05/11(水) 10:53


 βさん

 横からすみません。

 >    Workbooks.Copy

 WorkbooksのメンバーにCopyってあるんでしょうか?
 調べたのですが見つからなかったです。

 コンパイルも通らなかったです。

(半平太) 2016/05/11(水) 11:39


 ごめんなあさ〜い!! 手打ちしちゃいました。

 WorkSheets.Copy です!!!

(β) 2016/05/11(水) 11:41


β様
有難う御座いました
半平太様

おっしゃられとおり
通らなくて調べている所でした

有難う御座いました

(ぷにぷに) 2016/05/11(水) 13:12


下記コードのTargetPath = ThisWorkbook.Path の下に
 WorkSheets.Copyを入れるだけで勝手にマクロ無しに
作り変えてしまうのが解りました

ただC:ドライブ直下に配置されてしまうのが欠点です
デスクトップ直下だと良かったんですけど
WorkSheets.Copyを入れなければ
デスクトップ直下になるみたいですね

Private Sub CommandButton2_Click()
Dim TargetPath As String
Dim myFname As String
myFname = Format(Now, "YYYYMMDD")
TargetPath = ThisWorkbook.Path
ActiveWorkbook.SaveAs TargetPath & "\" & _

                                   Me.TextBox1.Value & myFname
End Sub 

β様に教えていただいたコードのWorkSheets.Copy省いても同じ
結果が出ました

色々有難う御座いました
β様のコードに配置先を指定して組めば
いけそうな気がしてきました

(ぷにぷに) 2016/05/11(水) 13:44


 >>ただC:ドライブ直下に配置されてしまうのが欠点です 
 >>デスクトップ直下だと良かったんですけど 
 >>WorkSheets.Copyを入れなければ 
 >>デスクトップ直下になるみたいですね 

 えっ? そんなことはないですよ。

 TargetPath = ThisWorkbook.Path 
 ActiveWorkbook.SaveAs TargetPath & "\" & _ 

 となっていますので、保存されるフォルダは、このマクロブックと同じフォルダですが?

(β) 2016/05/11(水) 15:40


コメント返信:

[ 一覧(最新更新順) ]


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