アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

下記のコードでシートをコピーし、新規ブックに保存しています。
マクロを削除して保存するにはどのようにしたらよいでしょうか?
コードはsheet5に記入しています。
ちなみにセルだけをコピペして、シートの設定もコピーできるコード
もあるハズですよね?
書式、列の幅、行の高さ、ページ設定、をコピーしたいので、
どなたかご教授お願いします。

Private Sub 保存()

Dim ns As Workbook
Dim msg As String
Sheets("sheet5").Copy
Set ns = ActiveWorkbook
msg = IIf(Application.Dialogs(xlDialogSaveAs).Show(ARG1:="" & ".xls", ARG2:=1), "保存", "キャンセル")
ns.Close (False)
Set ns = Nothing
MsgBox msg & "しました。"
End Sub

A 回答 (3件)

> VBAを覚えるにあたってどのようにしてきたのか



必要にせまられて覚えました。
もちろん最初は解説書を読みました。
それからいろんな方が書かれたコードを解読しながら勉強しました。
わからない言葉(コード)が出てきたらネットで検索しました。
それからここで質問もしました。(今でもしてますが)
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
やはり勉強あるのみですね。

ありがとうございました。

お礼日時:2008/07/04 17:53

何を聞きたいのか判らん。


>マクロを削除して保存するにはどのようにしたらよいでしょうか
と標題や質問文の中にあり
質問の途中から
>セルだけをコピペして、シートの設定もコピーできるコード
もあるハズですよね?
書式、列の幅、行の高さ、ページ設定、をコピーしたいので
と別のことらしいことを言っているのでは。
ーーー
「質問文のマクロを後半の内容に改善したい」ってこと?
    • good
    • 0

おや、どこかで見たコードだと思ったら・・・・。



シートモジュールにマクロがあったのですね。
最初からそう書いてくだされば最初からこう書いたのですが。
ただし、ブック保護してるとエラーになりますからもしそうならブック保護解除&作業終了時にブック保護のコードを付け加えてくださいね。

Private Sub 保存2()
Dim ns As Worksheet
Dim nb As Workbook
Dim msg As String

Set ns = Worksheets.Add
Sheets("Sheet5").Cells.Copy
ns.Cells.PasteSpecial
ns.Copy
Set nb = ActiveWorkbook
msg = IIf(Application.Dialogs(xlDialogSaveAs).Show(ARG1:=".xls", ARG2:=1), "保存", "キャンセル")
nb.Close (False)
Application.DisplayAlerts = False
ns.Delete
Application.DisplayAlerts = True
Set ns = Nothing
Set nb = Nothing
MsgBox msg & "しました。"
End Sub
    • good
    • 1
この回答へのお礼

merlionXXさん、先日に続き、ありがとうございました。
完璧です!!
まだまだ勉強が足りないのですが、なんとか覚えてきました。
ちなみにmerlionXXさんがVBAを覚えるにあたってどのように
してきたのかお聞きかせいただけませんでしょうか?

お礼日時:2008/07/03 23:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!