• ベストアンサー

メッセージボックス内で入力した文字をファイル名にしたい

 Sub Auto_Close() ' ' CSV作成 Macro ' マクロ記録日 : 2006/7/13 ユーザー名 : 00849 ' ' Fname = Range("H17") ChDir "D:\ファイル\他仕事\リモートメンテナンス\RADIUS設定、エクセル検証" ActiveWorkbook.SaveAs Filename:= _ "D:\ファイル\他仕事\リモートメンテナンス\RADIUS設定、エクセル検証\" & Fname, _ FileFormat:=xlCSV, CreateBackup:=False ThisWorkbook.Close End Sub  このプログラムだと、"H17"に入力した文字をファイル名にします。  そうではなく、メッセージボックスを表示させ、そこに文字などを入れ、それをファイル名とするにはどのように作成したらよいのでしょうか?  具体的には、メッセージボックス内は「ファイル名を入力してください。」とし、その下に入力欄を作るというようにしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

Fname = Range("H17") を Fname = InputBox("ファイル名を入れてください。")

hayase0849
質問者

お礼

 ありがとうございます!!  できました!  たったそれだけのことだったのですね。

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

普通の保存ダイアログを使うとかもあり? Sub Test() Dim fileSaveName  fileSaveName = Application.GetSaveAsFilename( _    fileFilter:="Excelファイル (*.xls), *.xls")  If fileSaveName <> False Then    ThisWorkbook.SaveAs fileSaveName, xlNormal  End If End Sub

hayase0849
質問者

お礼

 お教えいただいたやり方ですと、ファイルの種類を手で選択しなくてはならないので、今回はNo.1さんのやり方を採用させていただきました。  しかしながら、このやり方も知りませんでしたので、勉強になりました。  ありがとうございました。

関連するQ&A

  • マクロで、セル内の文字をファイル名にしたい

    Sub Auto_Close() ' ' CSV作成 Macro ' マクロ記録日 : 2006/7/13 ユーザー名 : 00849 ' ' Fname = Range("I15") ChDir "D:\ファイル\他仕事\リモートメンテナンス\RADIUS設定、エクセル検証" ActiveWorkbook.SaveAs Filename:= _ "D:\ファイル\他仕事\リモートメンテナンス\RADIUS設定、エクセル検証\Fname", _ FileFormat:=xlCSV, CreateBackup:=False ThisWorkbook.Close End Sub  上記のように作ると、ファイル名が「Fname.csv」となってしまいます。  これを、"I15"に打ち込んだ文字をファイル名で表示させるには、どうしたらよいでしょうか?  ほぼ初心者です。  よろしくおねがいします。

  • ExcelのマクロでCSVファイルを開くと遅いのですが

    ExcelのマクロでCSVファイルを開くと遅いのですが速く開く方法はありますか? 普通にファイル-開くに比べてかなり遅いです。 下記のVBAで記述してあります。 Workbooks.Open Filename:=fname ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlCSV, _ CreateBackup:=False ActiveWorkbook.Close savechanges:=False

  • ファイル名に変数を割り当てたい

    EXCEL VBAで ファイル名に変数を割り当てて保存したいのですが、 うまく行きません。どこがおかしいのか教えてください。 C\サンプル\見込200704 を変数で割り当てて保存したい。 バージョン301 = "200704" 四月 = "C:\サンプル\見込" & "バージョン301" Range("A1").Select ActiveWorkbook.SaveAs Filename:=四月, _ FileFormat:=xlCSV, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close False

  • Excelのマクロで、セル内の文字をファイル名にしたい

    ”プロト.xls”というExcelファイルの中に、以下の動作をするマクロを作成したいのです。 (1)”C:\顧客\顧客納期連絡.xls”というExcelファイルを開き、  それを”C:\顧客\A.csv”という名前のcsvファイルにする。 (2)”C:\顧客\A.csv”を”xxxxxxxxxxxxxxxxxx”(※注1)という名前にしてコピーする。 ※注1:”xxxxxxxxxxxxxxxxxx”の部分は、”プロト.xls”ファイルのSheet”マスター”のセルD9から取得させる。 そのセルは、 C:\顧客\ABCDEF0215.csv と記述しています。 (3)コピー後、”C:\顧客\A.csv”を削除する。 ------------------------------------------------------------------- Sub 顧客納期連絡() ' ' 顧客納期連絡 Macro ' マクロ記録日 : 2010/2/15 ユーザー名 : xxxxxxx ' ' ChDir "C:\顧客" Workbooks.Open Filename:="C:\顧客\顧客納期連絡.xls" ActiveWorkbook.SaveAs Filename:="C:\顧客\A.csv", FileFormat:=xlCSV, _ CreateBackup:=False ActiveWorkbook.Save ActiveWindow.Close ActiveWorkbook.Save Dim fname1 As String Dim fname2 As String fname1 = "C:\顧客\A.csv" fname2 = Workbooks("プロト.xls"), Sheets("マスター"), Cells("D9") FileCopy fname1, fname2 Kill "C:\顧客\A.csv" End Sub ------------------------------------------------------------------- 上記のマクロを作成したのですが、FileCopyの行で、構文エラーか型に一致していない、 というエラーになりマクロ再生が停止します。 セルの内容をファイル名にしたいのですが、何か良い方法はございませんでしょうか? 私は超初心者なので、何卒宜しくお願い致します。

  • ファイル名がテキストボックスにうまく表示できない

    お世話になります。 filelistboxで選択したファイル名を選択した順に テキストボックスに表示させたいのですが、ファイル名の 後に改行コードを入れても改行して表示してくれません。 何が原因なんでしょうか?よろしく御教授願います。 例 aaa.txtを選択、テキストボックスに表示させ、 その後bbb.txtを選択するとテキストボックスの表示が ”aaa.txt‥bbb.txt”となる --------- aaa.txt(改行) bbb.txt --------- と表示したい。 (コード) Dim fname As String Private Sub File1_Click() fname = Dir1.Path & "\" & File1.FileName End Sub Private Sub Command3_Click() Call macappend End Sub Private Sub macappend() 'text1に選択マクロを追加    Dim macbuff1 As String    Dim macbuff2 As String    macbuff2 = Text1.Text    macbuff1 = fname + Chr(13) + Chr(11)    macbuff2 = macbuff2 + macbuff1    Text1.Text = macbuff2 End Sub

  • 【エクセルVBA】「ファイルを開く」のダイアログボックスの後に文字を追加したい

    【エクセルVBA】で、「ファイルを開く」の操作を複数回するので、 ダイアログボックスに例えば「ファイルを開く:ABC」というよう に、「ファイルを開く」の後に文字を追加したいのですが、 どうすれば良いでしょうか。 現在、下記のようなマクロですが、具体的にどうすれば良いか教えて下さい。 宜しく、お願いします。  Dim fname1 As String  fname1 = Application.GetOpenFilename( _    filefilter:="すべてのファイル,*.*")  If fname1 = "False" Then Exit Sub

  • エクセルでセル値をファイル名にして保存しようと思っています。

    エクセルでセル値をファイル名にして保存しようと思っています。 エクセル2003では以下の方法でセル値を取得して保存しています。 'Cell値を取得 strName2 = Sheets("#######").Range("A1").Value strName3 = Sheets("*******").Range("B2").Value 'strName2の値が空の場合、現在のブック名を代入 If strName2 = "" Then strName = ThisWorkbook.Name 'セル値の結合 sName = strName3 + strName2 '名前を付けて保存] ダイアログ ボックスを表示 fName = Application.GetSaveAsFilename(InitialFileName:=sName, fileFilter:="Excel(*.xls), *.xls") 'ファイル名を取得したら保存 If fName <> False Then ActiveWorkbook.SaveAs fName 同様の操作を2007以降で「マクロを有効にして保存」を行いたいのですが、どの様にすればいいのでしょうか? (自動保存では以下の様になる状態の事です。) ActiveWorkbook.SaveAs Filename:="#:\*******.xlsm", FileFormat:= _ xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 2007の時の「'名前を付けて保存] ダイアログ ボックスを表示」の方法が分かりません。 共通の命令文では出来でしょうから、最終的にはエクセルのバージョンを取得して、IFで分岐させようと思っています。 宜しくお願い致します。

  • エクセルファイルをフロッピーに保存するマクロで教えて下さい

    今、フロッピーにファイルを保存する為のマクロを創っているのですが ワイルドカードの使い方を教えて下さい ここから***** Sub フロッピー保存() ' ' Dim fNAME As String fNAME = ActiveWorkbook.Name 'アクティブなブックのファイル名を取得 'ファイルが新規に作成された場合の処理(book1,book2等と成っている場合) If fNAME = "Book*" Then fNAME = Application.InputBox(prompt:="新規ファイルですね。ファイル名を入力して下さい", _          Title:="新規ファイル入力", Type:=2) Else ActiveWorkbook.Save End If '取得したファイル名でフロッピーディスクに保存 ActiveWorkbook.SaveAs Filename:="A:\"&fNAME, _    FileFormat:=xlNormal, _ Password:="",WriteResPassword:="",ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub ここまで***** >>'ファイルが新規に作成された場合の処理(book1,book2等と成っている場合) >> If fNAME = "Book*" Then この、If fNAME = "Book*" Then が有効に働いていないみたいなんです。 「ワイルドカード・・・* や ? はマクロではどの様な書式が正しいのでしょう それと、エラー処理なんですが InputBoxメソッドでキャンセルやファイル名を入力しないで「OK]が押された 場合の処理、又フロッピーが挿入されていなかった場合などの エラー処理の対処法を教えて下さい

  • ファイル名の変更(指定文字を置換)

    powershell(PS)では、カッコ([,])の有るファイル名は利用できません。 そこで、バッチ処理でPSに処理させる下準備でカッコを他の文字(xx)に置換した ファイル名に変名したいと思います。 (PSで処理後に再置換して元のファイル名に戻す予定) 例えば、  [品番001]_Model_s0023.jpeg を  xx品番001xx_Model_s0023.jpeg に変名する。 以前教えてもらったbatを変更して以下のように修正しましたが うまく処理できませんでした。 どのように修正すれば良いでしょうか ? '------------------------------------------------ @echo off rem 該当するファイルを書き換える(カッコ>xx変換) for %%f in ( *.jpeg ) do call :sub "%%f" exit /b :sub set fname=%1 set fname=%fname:[=xx% set fname=%fname:]=xx% ren %1 %fname% goto :EOF

  • サブフォルダ内含め全てのファイル名を一括置換するw

    サブフォルダ内含め全てのファイル名を一括置換するwindowsバッチ処理について ファイル名の「YYYYMM」部分を一括で変換したく以下の様なバッチ文を記載しました。 しかし置換処理がうまくいかず、ファイル名の後ろに入力文字列がくっついてしまいます。 set /p YYYYMM="年月を入力してください(yyyymm形式):" echo %YYYYMM% for /r %%f in ( * ) do call :sub %%f %YYYYMM% pause exit /b :sub echo %2 set fname=%~nx1 set fname=%%fname:YYYYMM=%2%% echo %fname% ren %1 %fname% goto :EOF 環境上、ファイル名リネームソフトやWindows Powershellを使うことができないため、何とかバッチ処理で楽をしたいのですがかなり煮詰まってしまい。。。 どなたかアドバイスをお願いできないでしょうか。 よろしくお願いいたします。

専門家に質問してみよう