[[20181130071734]] 『VBA 指定した名前を付けて保存するボタンを作成し』(りん) ページの最後に飛ぶ

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

 

『VBA 指定した名前を付けて保存するボタンを作成したいです』(りん)

VBAで、

A1に、名前を付けたい名称を表示できるようにしています。

マクロで、この名前をコピーして、名前を付けて保存する様にしたいです

保存先は、指定したフォルダ

こんな便利な機能は作れるもんですか????
ヾ(≧∇≦*)〃教えてください

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


できますよ。!(^^)!
まずは、「マクロの記録」機能を使ってどのような命令で保存できるのか調べてみましょう。

また、「指定したフォルダ」はどのようにして指定するのでしょうか?
セルに入力しておくのもアリですし、ダイアログボックスを表示し、ユーザーに”指定”してもらうということにもできます。
http://officetanaka.net/excel/vba/tips/tips39.htm

(もこな2) 2018/11/30(金) 07:51


 おはようございます。すでに、アドバイスがあったようですが
何を保存するかによりますが。。。
出来るかもしれません。
作成はしてくれないかもしれませんが、(親切な方がいて、してくれるかも?)
その気がおありなら
お困りの部分を詳しくお尋ねになると、多数アドバイスがあり(多分^^;)
ご自分でも作れると思います。
(*^^*)v

(隠居じーさん) 2018/11/30(金) 07:59


Sub テスト()

    Dim book1 As Workbook

    Workbooks.Open filename:="C:\excelsample\2005年成績.xls"
    ActiveSheet.Range("A1").Value = "保存"

    Set book1 = ActiveWorkbook
    book1.SaveAs filename:="C:\excelsample\2005年成績(保存).xls"
    book1.Close

End Sub

これだとA1の名前を付ける訳ではないですよね?

(りん) 2018/11/30(金) 08:19


A1に表示された名前を付ける方法はありますか?
(りん) 2018/11/30(金) 10:07

 Sub main()
   ActiveSheet.Range("A1").Value = "保存"
   MsgBox "C:\excelsample\2005年成績(" & ActiveSheet.Range("A1").Value & ").xls"
 End Sub
(隠居じーさん) 2018/11/30(金) 10:30

 追伸 ActiveSheetは変動する場合も無きにしもあらず。。。みたいなので
ブック名、シート名を指定した方が何かとよろしいかと思いますです。
でわ
m(_ _)m
(隠居じーさん) 2018/11/30(金) 10:45

さすがです!ありがとうございます試してみたいと思います
(りん) 2018/11/30(金) 11:01

返事がないので、もしかして"質問"ではなく作業依頼だったのかもしれませんが、ただ単に確認が遅れてるだけかもしれませんのでとりあえず。

>これだとA1の名前を付ける訳ではないですよね?
おそらく違うと思います。


提示されたコードは
    Sub テスト()

        Dim book1 As Workbook

        Workbooks.Open Filename:="C:\excelsample\2005年成績.xls" '・・・・・・・(1)
        ActiveSheet.Range("A1").Value = "保存" '・・・・・・・・・・・・・・・・・・・・・・・・・(2)

        Set book1 = ActiveWorkbook '・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・(3)
        book1.SaveAs Filename:="C:\excelsample\2005年成績(保存).xls" '・・・(4)
        book1.Close '・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・(5)

    End Sub

(1)
「C」ドライブ直下にある「excelsample」というフォルダに保存されている「2005年成績.xls」というExcelブックを開き

(2)
(開いてアクティブになっている「2005年成績.xls」ブック)のアクティブになっているシートの「A1」セルに"保存"と入力して

(3)(あらかじめWorkbook型として宣言してあった)「book1」という変数にアクティブブック(「2005年成績.xls」ブック)をセットして

(4)
(3)のブックを名前を付けて保存。(保存先は。ドライブ直下にある「excelsample」というフォルダ、ファイル名は「2005年成績(保存).xls」として保存。(つまり、開いたブックの上書き保存)

(5)
(3)のブックを閉じる

となっています。


しかし、提示された内容をみると、されたいことは
 (1)(特定のシートに)設置したボタンを押すと
 (2)(特定のシートの)A1セルに書いてある内容をファイル名にして
 (3)「指定したフォルダ」に"名前を付けて保存"したい

というように推測されますので、たぶん違うんじゃないかな〜とおもいます。

提示されたコードを見る限り、「"名前を付けて保存"する命令」はわかっているようですし、「セルに"表示"されている内容を取得する方法」も回答があったようなので、それを組み合わせてみてはいかがでしょうか。

さしあたって、一例を示しておきます。


    Sub さんぷる()

        '以下、ステップ実行すること
        Stop '←ブレークポイントの代わり

        Dim 指定したいフォルダ As String
        Dim 保存ファイル名 As String

        '↓ どのように指定したいのか不明なので今回はコード内で指定する例とします
        指定したいフォルダ = "C:\excelsample"

        '  Valueでも問題ないとおもいますが、「表示されているもの」としたいのであれば、
        '↓ Textにされるとより良いよいとおもいます。
        保存ファイル名 = ActiveSheet.Range("A1").Value

        '  マクロの記録で調べたのであれば、マクロが含まれるブックを保存するには
        '  保存形式をマクロ付きブック(.xlsm)か97-2003形式(.xls)にしてあげる
        '↓ 必要があるのが理解できたかと思います
        ThisWorkbook.SaveAs _
            Filename:=指定したいフォルダ & "\" & 保存ファイル名, _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled

    End Sub

(もこな2) 2018/12/01(土) 23:35


コメント返信:

[ 一覧(最新更新順) ]


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