- ベストアンサー
エクセル A1の内容を ファイル - 名前を付けて保存 のとき自動入力するには?
基本のファイル名は ABCです。 セルA1は 56赤 とあります。 このとき ファイル - 名前を付けて保存 でファイル名を 56赤ABC としたいです。 今は、ファイル - 名前を付けて保存 としたとき、ABC と出るので その左に自分で 56赤 と入力して、56赤ABC としてます。 これをマクロとかを使って、ファイル - 名前を付けて保存 のときに セルA1 ファイル名 と自動で出て欲しいのですができますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 最初に、ファイルをどのように作っているかが問題だと思います。以下のコードですと、Application の扱い方が変わります。Application側にインスタンスを設けるか、それとも、ボタンだけでよいのかが分かりません。既存のブックがある場合と、そうでない場合、新規ブックの場合ではコードが変わります。以下は、単にボタンにインスタンスを設けただけで、解除方法は書かれていませんが、解除の方法は、単に、Set ClassButton =Nothing でよいです。 >ファイル - 名前を付けて保存 のときに >セルA1 ファイル名 と自動で出て欲しいのですができますか? たとえば、このようになります。 挿入-Class モジュール 名前は変更しないでください。Class1 です。 Private WithEvents NewBtn As Office.CommandBarButton Public Property Set myNewBtn(ByVal myBtn As CommandBarButton) Set NewBtn = myBtn End Property Private Sub NewBtn_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean) Dim FileName As String Dim KeyWord As String Dim Ret As Integer If ThisWorkbook.Worksheets("Sheet1").Range("A1").Value <> "" Then KeyWord = ThisWorkbook.Worksheets("Sheet1").Range("A1").Value FileName = "ABC" & KeyWord & ".xls" Ret = Application.Dialogs(xlDialogSaveAs).Show(FileName) CancelDefault = True End If End Sub 標準モジュール 'Option Explicit Private ClassBtn As New Class1 Sub SetClass() With Application Set ClassBtn = New Class1 Set ClassBtn.myNewBtn = .CommandBars("Document").FindControl(, 748) End With End Sub Sub Auto_Open() Call SetClass End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
Sheet1のA1に「ABC」を入力しておきます。 標準モジュールに Sub test01() Application.Dialogs(xlDialogSaveAs).Show arg1:=Worksheets("Sheet1").Range("A1") End Sub を貼り付け実行します。 おなじみの「名前をつけて保存」のダイアロウグ画面が出て、 ファイル名の欄が「ABC」になって、待機状態になります。 ここに左に「56赤」を入れる、という方法を考えてはどうですか。 左に入れるというのが、奇異な暗示だし、ファイル名全体を上記コードの前に作ってしまうのが普通科と思いますが。 a=Inputbox()ででも「56赤」の部分をとれば、 arg1:=a & "ABC" で確認採用方式ができます。「保存」ボタンをクリックする必要あるが。 それを嫌うなら、ActiveWorkbook.SaveAs ファイル名 で良いのでは。
- marbin
- ベストアンサー率27% (636/2290)
SaveAs メソッド を使います。 使い方はヘルプをご参照ください。