[[20220713204916]] 『vbaセルの値をファイル名につけて保存する方法』(タナカ) ページの最後に飛ぶ

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

 

『vbaセルの値をファイル名につけて保存する方法』(タナカ)

下記のvbaコードを作成しましたが、これに加えて、ファイル名に自動でセルの値を付けたいです。

例えばA1のセルに"0713_データ"と入力しておけば、Dドライブに0713_データ.xlsxが自動保存される形です。
フォルダ名とファイル名を指定するのが難しくて質問させていただきました。
よろしくお願いします。

'変数を宣言
Dim FileName As String
Dim pw As Variant

pw = Range("Q1")

'名前を付けて保存する。パスワードも設定する。
ActiveWorkbook.SaveAs FileName:="D:\ファイル名", FileFormat:=xlWorkbookDefault, _
Password:=pw

End Sub

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


■1
VBAの世界では、ブックやシートなど(オブジェクトといいます)は、きちんと指定すればいちいちアクティブにしたり選択したりする必要はありません。
また、「標準モジュール」でシートの指定を省略するとActiveSheetを指定したとみなされるルールです。
したがって、可能であれば対象のオブジェクトをきちんと指定することを推奨します。

■2
質問のほうは難しく考えずに、ファイル名のところをA1セルの値とすればよろしいかと。

    Sub 始まりの無いマクロ()
        ActiveWorkbook.SaveAs _
            FileName:="D:\" & ActiveSheet.Range("A1").Value, _
            FileFormat:=xlWorkbookDefault, _
            Password:=ActiveSheet.Range("Q1").Value
    End Sub

(もこな2 ) 2022/07/13(水) 21:20


ありがとうございます。
素人で申し訳ないです。
(タナカ) 2022/07/13(水) 21:35

ちなみに↓のようにすれば、少なくともA1セルの参照は不要になるとおもうのですが、セルの参照自体はマストなのでしょうか?
 FileName:="D:\" & format(date,"mmdd_データ")

 ※スマホから手打ちしたのでタイプミスがあるかもしれません。

(もこな2 ) 2022/07/13(水) 21:59


ファイル名は変動するためA1セルにそのファイル名を入力して、その値をファイル名に飛ばすようにしたいです
(タナカ) 2022/07/13(水) 23:09

>飛ばすようにしたいです
そういえば飛ばすという語彙にいちゃもん付けた人がいたなー
(///) 2022/07/14(木) 09:05

(もこな2 ) 2022/07/13(水) 21:20
このコードでパスワード、名前をつけての保存は問題なくできました。
しかし、できあがったファイルを開くと、Q1が選択されており、開いたときの見栄えが悪いです。
左にスクロールし、A1セルを選択させた状態でファイルを開くようにしたいため、教えて頂いたコードの下に、下記のコードをつくったのですが、それでもうまく反映されません。
ご教示お願いします。

ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1
ActiveWindow.ActiveSheet.Range("A1").Select
(タナカ) 2022/07/14(木) 09:29


        Password:=ActiveSheet.Range("Q1").Value
        ActiveSheet.Range("A1").Select ← ここにこのように追加したらどう。
    End Sub

(マクロ苦手) 2022/07/14(木) 10:06


保存する前にアクティブセルを変更しないと。
(とおりすがり) 2022/07/14(木) 10:19

編集がかぶりしましたがそのまま。

■3
>それでもうまく反映されません。
Sub〜End Subまで全部が提示されてないので詳細はわかりかねますが、保存後にどこかを選択しても、そりゃ【保存されたファイル】には反映しませんよね。

保存前に選択すべきでしょう。

(もこな2 ) 2022/07/14(木) 10:21


Sub 始まりの無いマクロ()
        ActiveWorkbook.SaveAs _
            FileName:="D:\" & ActiveSheet.Range("R1").Value, _
            FileFormat:=xlWorkbookDefault, _
            Password:=ActiveSheet.Range("Q1").Value
    End Sub

このコードです
開くとQ: R1が選択されてしまっており見栄えが悪いです。
保存する前に一番左上を選択する方法を教えてください
(タナカ) 2022/07/14(木) 10:24


■4
上記だと私が提示したままですよね。
>教えて頂いたコードの下に、下記のコードをつくったのですが〜
とのことですから、そのコードを提示いただかないと状況が分かりません。

■5
>左にスクロールし、A1セルを選択させた状態
A1セルはシートの左上になりますからSelectで対応できますが、ほかのセルを左上に据えたければ「Application.Goto」を使うと良いでしょう。
ただし、ちょっとした不具合があるようです。

 ※私はこの不具合に遭遇したことがないので詳細はわかりません
https://excel-ubara.com/excelvba4/EXCEL272.html

(もこな2 ) 2022/07/14(木) 11:15


ありがとうございました
解決いたしました!
(タナカ) 2022/07/14(木) 12:11

>解決いたしました!
どのように解決したのですか?
結局、コードの提示がないので最後まで詰まっている部分が、わかりませんでしたが、解決したならそちらを披露されると同じような悩みを持った方へのヒントになるとおもいますので、時間があるときにでも提示してみてはどうでしょうか。

(もこな2 ) 2022/07/14(木) 20:15


    Sub 始まりの無いマクロ()
        ActiveSheet.Range("A1").Select 
        ActiveWorkbook.SaveAs _
            FileName:="D:\" & ActiveSheet.Range("A1").Value, _
            FileFormat:=xlWorkbookDefault, _
            Password:=ActiveSheet.Range("Q1").Value
    End Sub

(///) 2022/07/14(木) 20:34


コメント返信:

[ 一覧(最新更新順) ]


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