• 締切済み

エクセル セル内容をファイル名に

はじめまして。 今現在エクセルにていくつかのセル内容を結合しています。(ファイル名用として) その中には日付をTEXT(A1,yy.mm.dd)としSUBSTITUTE(A2,"/",".")でスラッシュをピリオドに 変換してるセルもあります。 ボタンを作り押したときにそのセルを読み込み、ファイル名にしているのですが 読み込まれた内容にダブルコーテーションがついてしまいます。 「”ファイル名”」の様になってしまい、そのまま保存を押すと .xlsが付かず困っております。 ちなみにボタンに入れてあるマクロは Private Sub CommandButton1_Click() Application.Dialogs(xlDialogSaveAs).Show Arg1:=Range("AK14").Value End Sub です。 どなたかご教授頂けませんでしょうか。。。 宜しくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

質問で言っていることが判らない。 >日付をTEXT(A1,yy.mm.dd)としSUBSTITUTE(A2,"/",".")でスラッシュをピリオドに、 なぜ直接 =TEXT(A1,"yy/mm/dd")(=TEXT(A1,yy/mm/dd)は間違いだろう。正確に書くこと)ににしないのか -- しかしファイル名には使えない記号があるよ。 >したときにそのセルを読み込み どのセル?AK12か。はっきり書くこと。AK12のデータはどうなっている? Private Sub CommandButton1_Click() Application.Dialogs(xlDialogSaveAs).Show Arg1:=Range("B1").Value End Sub でコマンドボタンクリック。A1には2011/12/1、B1には=TEXT(A1,"yymmdd")で111201 ダイアロウグの「保存」クリクでうまく行ったが。111201.xls Google照会「ブック名 使える文字」でhttp://support.microsoft.com/kb/879749/ja など関係ないかな(スラッシュは不可)。

Tomfang
質問者

補足

ありがとうございます。 確かに分かりにくいですね。。。 下記に書き直します。 AK14=CONCATENATE(B1,B2,A3)になっているとします。 A1には単に日付が入る場合と1/1~1/31があります。 1/1のみの場合A2=TEXT(A1,"yy.mm.dd")にて「11.01.01」になる為ファイル名として利用可能です。 が、1/1~1/31の場合上記の=TEXTでは変換できない為 A3=SUBSTITUTE(A2,"/",".")とし「1.1~1.31」変換しています。 とりあえずここまではOKなのです。 この質問の後、多少調べましたがA2=TEXTにて文字列に指定しているのが問題のようです。 AK14=CONCATENATE(B1,B2)の様にA2=TEXT()を結合しなければダイアログにてダブルコーテーションはでません。 なので文字列に変換したものをまた標準に戻せれば良いというところまでは分かったので、そこをご教授頂ければと思います。 宜しくお願い致します。

関連するQ&A

  • VBAの組み込みダイアログの引数Argについて

    エクセルVBAでの質問です。 エクセルとして名前をつけて保存なら Sub aaa() Application.Dialogs(xlDialogSaveAs).Show ARG1:="ABC.xls", ARG2:=1 End Sub テキストファイルとして名前をつけて保存なら Sub bbb() Application.Dialogs(xlDialogSaveAs).Show ARG1:="ABC.txt", ARG2:=3 End Sub CSVファイルとして名前をつけて保存なら Sub ccc() Application.Dialogs(xlDialogSaveAs).Show ARG1:="ABC.csv", ARG2:=6 End Sub でうまくいきます。 今度は、ファイルを開こうとxlDialogOpenに変えました。 Sub aaa2() Application.Dialogs(xlDialogOpen).Show ARG1:="ABC.xls" ', ARG2:=1 End Sub Sub bbb2() Application.Dialogs(xlDialogOpen).Show ARG1:="ABC.txt", ARG2:=3 End Sub 以上二つはファイル名入りのダイアログは出ました。でもダイアログの画面にはフォルダーしか表示されません。 Sub ccc2() Application.Dialogs(xlDialogOpen).Show ARG1:="ABC.csv", ARG2:=6 End Sub これは実行時エラーになりました。 どうも、Application.Dialogs(xlDialogSaveAs)とApplication.Dialogs(xlDialogOpen)では引数ARG2が違うようです。 Application.Dialogs(xlDialogOpen)でのARG2は何の指定なのでしょうか?またその数値の意味はなんでしょうか?

  • エクセルで所定のフォルダーにPDFファイルで保存

    エクセル、ワードでほぼ毎日送付する報告書をpdfファイルで送ることになりました。 ファイル名が指定の数字10桁(LOT No)で、これはエクセル表に入力してあるのでそのセルから引っ張ってきたいのです。⇒オペミス防止 少し調べてみたら非常に簡単な下記の3行で出来ることが分かったのですが、ついでにpdfファイル(D10のセル内容+.pdf)で保存画面が出て来れば非常に便利。 更なる欲としては、フォルダーまで指定できれば、マクロボタン化しておけば非常に便利なのですが。 1つ1つのマクロはここで絶大なるHELPを受けて出来ているのですが情けないことに全く応用が利きません。 Sub File() Application.Dialogs(xlDialogSaveAs).Show Arg1:=Range("D10") End Sub 尚、このコードはSheet1にしか適用されないようなので任意のActiveページで使いたいのですが。

  • エクセルVBA 組み込みダイアログのコンパイルエラーについて

    ファイル保存のための組み込みダイアログでデフォルトの名前を指定したい場合、 Application.Dialogs(xlDialogSaveAs).Show 'ARG1:="あたらしいファイル", ARG2:=1) でOKなのですが、 キャンセルボタンを押された場合の処理をするため Dim boCheck As Boolean boCheck = Application.Dialogs(xlDialogSaveAs).Show 'ARG1:="あたらしいファイル", ARG2:=1) If boCheck = False Then キャンセルの場合の処理 Else そうでない場合の処理 End if とするとコンパイルエラーになります。 どこが悪いのでしょうか?

  • エクセルの保存で。

    xls形式で保存したあとに、csv形式で保存するVBAを作りました。 csv形式で保存するときは指定したディレクトリ「c」を 表示してくれるのですが、 xls形式のときは実行時のカレントを指定しまいます。 なぜでしょう??? Sub filehozon() Dim MyFileA 'As String MyFileA = "c:\test" 'xls形式保存 Application.Dialogs(xlDialogSaveAs).Show arg1:=MyFileA, arg2:=1 Sheets(2).Copy Application.DisplayAlerts = False 'csv形式保存 Application.Dialogs(xlDialogSaveAs).Show arg1:=MyFileA, arg2:=6 ActiveWindow.Close Application.DisplayAlerts = True End Sub

  • ファイルの保存場所を設定してしまう方法

    ファイルを保存する時に、保存先を指定できるマクロ(下記参照)があります。 保存場所あらかじめ設定するには、何を足せばいいのでしょうか? Sub NameSave() Application.EnableEvents = False Application.Dialogs(xlDialogSaveAs).Show arg1:=ファイル名 Application.EnableEvents = True End Sub vbaは初心者です。 エクセル2003を使っています。 ご存知の方、どうぞ教えてください。 よろしくお願いいたします。

  • エクセルVBAの「組み込みダイアログボックス」の使用法?

    いつもありがとうございます。 組み込みダイアログボックスについて教えてください。 エクセルのシート内容をCSV形式で保存する場合、組み込みダイアログボックスを使い、下記のマクロでうまく行きました。 Sub CSV保存() '~略~ Application.Dialogs(xlDialogSaveAs).Show ARG2:=6 '~略~ End Sub 試した結果、上記の組み込みダイローグのファイルの種類のデフォルトは ARG2:=の次の値が6でcsv、1でエクセルになるようでした。 次に、エクセルを開いた状態でCSVファイルを開こうと思い、同様に組み込みダイアローグを使用するため下記のマクロを作りました。ところがうまくいきません。 Sub CSVdata取得() Application.Dialogs(xlDialogOpen).Show ARG2:=6 End Sub ・・・・と記述するとエラーになります。 この場合、どうも ARG2:=6の6の数字のところが4以上はエラーとなるようです。 ARG2:=の次の値を1~3にするとエラーにはなりませんが、デフォルトはいずれもエクセルでした。 最初からファイルの種類をCSV形式にするにはどう記述したらよいのでしょうか? どうかお助けください。

  • 日付のセルをファイル名にしたい

    お世話になります。 さてかなり前に2つのセルの内容をファイル名にしてpdfで保存して印刷画面の表示までをマクロにする下記のコードを教わって多くのエクセルで使用しているのですがE22が日付の場合が出てきました。 (E22").Textや.ValueやNETで探したコードも試したのですがダメでした。 (要するに分かっていません) やりたいことは、ファイル名は200216XXXXのようにyymmdd+A1セルの内容にしたいのです。 別のセルにE22を参照して「200213」というように表示させてもOKです。 一番簡単な方法を教えて下さい。 Sub 保存印刷() Sheets("提出").ExportAsFixedFormat Type:=xlTypePDF, _ Filename:="\\***\XXXX\?????" & "\" & Range("E22") & Range("A1") & ".pdf" Application.Dialogs(xlDialogPrint).Show End Sub

  • excelマクロ、任意セルの値で名前を付けて任意のフォルダに保存

    マクロの初心者ですが、どうか教えてください。 テンプレートブックを名前を付けて保存するマクロで 苦戦しております。  ・ダイアログを必ず開く  ・その時の保存先はz:\あああ  ・ブック名はアクティブシートの任意のセルA1 --------------------------------------------- Application.Dialogs(xlDialogSaveAs).Show _ Arg1:=Range("A1").Value ここまではたどり着けたのですが、ダイアログが 当初のテンプレートブックの保存場所が開いてしまいます。 どうぞよろしくお願いいたします。

  • エクセル ファイル名を指定して保存したい。

    現在次のようなマクロを最後に記述してそこでダイアログボックスに表示されるデフォルトのファイル名に都度日にちを手動入力して保存しています。 これを自動でファイル名を保存ダイアログボックスに表示できるようにしたいのですがどのような記述にしたらいいでしょうか ※ファイル名 A1に2016/9/15と入っている場合 「160915△△△△△△△..xlsm」と保存したい。 (「△△△△△△△」は固定) 現在使用中 Application.Dialogs(xlDialogSaveAs).Show Windows7/エクセル2013

  • excelでセルの内容からファイルを開くには

    アドバイスをお願いします。excel でセルに入力した内容と同じ名のファイルを開きたいのですが、良い方法があれば教えてください。例えば セルの内容を1月、2月、、、、、と変更して指定したいのですが?