• ベストアンサー
  • すぐに回答を!

EXCEL VBAでファイル名取得

A1のセルにユーザー定義で書式設定をしたものをそのファイルの名前にしようと思ってます。 書式は「1」と入力すれば「001」と表示されるようになっています。 そのままセル+".xls"で保存しようとすると、「型がちがいます。」というエラーになり、そのセルを変数にしてvalueで表示すると、そのまま「1.xls」というファイル名になってしまします。 「001.xls」というファイル名にするにはどうしたらよいでしょうか? どなたかよろしければ、回答お願いします。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数306
  • ありがとう数0

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

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

こんにちは。 Range("A1").Text のようにすれば、001 が返ります。 Sub Test1()  MsgBox Range("A1").Value  MsgBox Range("A1").Text End Sub 従って、下記のようなパスを作ってSaveAsに渡せばOKです。 (例の ThisWorkbook は一度は保存してある前提です) Sub Test2()  MsgBox ThisWorkbook.Path & "\" & Range("A1").Text & ".xls" End Sub

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • エクセルVBA セルの書式につい

    ユーザーフォームのテキストボックスに入力した日付(yyyy/mm/ddの形式)をA1セルに入れるとします。  Range("A1").Value = Me.txt日付 A1セルの表示形式は書式設定でユーザー定義の"d"で表示されるように設定していますが、 テキストボックスに入力した形式のまま(yyyy/mm/dd)でA1セルに表示されてしまいます。 上記のみではNGでしょうか? ちなみに、yyyy/mm/ddと入力されたA1セルを一旦編集モード([F2]キーを押した状態)にして[Enter]を押すと"d"(書式設定で指定している書式)に変わります。 参考:A1セルの日付をみて別シートの一覧からVlookup関数で値を検索したいところが、yyyy/mm/ddで表示されるためにエラーとなってしまいます) ご存知の方教えていただきたいです。

  • エクセルVBA ファイル名を日付にしたいのですが・・・

    A1のセルに表示上は平成16年9月11日と表示されているのですが、 (データー的には2004/9/11という形で入っているセルになっています。) そのセルを指定して、新規ファイル名にして保存したいのです。ファイル名としては、後で見て何日の分か分かればいいので、平成と名前が出ようと2004年とでようと、2004・9・11であろうとどんな形でも、問題ないのですが・・・ 何かいい方法ありますでしょうか?? 宜しくお願いいたします

  • 件名と作成日をファイル名とするには?

    エクセル2000のVBAについて質問です。 シート内に記入した、件名と年月を、ファイル名とするには、どうすれば良いでしょうか? セルA1に件名「○○○の件」 セルB1に作成日が日付書式で「2009/12/07」 と、あるとします。 この入力情報を元にして「○○○の件(0912).xls」と言うファイル名で保存したいです。 更に欲を言うと、件名にファイル名での禁則文字(/や?など)が想定されますので、全部を全角に変換したいです。 現状は、シート内余白に 件名は「=JIS(A1)」で全角に変換。 年月は「=TEXT(B1,"yy")」と「=TEXT(B1,"mm")」で、それぞれ抽出して、 変数を定義して ThisWorkbook.Path & "\" & 件名 & "(" & 年 & 月 & ")" & ".xls" で、保存しています。 このシート内の関数を止めて、VBAの中だけで処理する知恵をお貸し下さい。 お願い致します。

その他の回答 (2)

  • 回答No.2

初めまして. ActiveWorkbook.SaveAs Filename:="C:\My Documents\" & ActiveSheet.Range("A1").Value & ".xls" これを1行で書いて下さい。実行されると思います。 1つ注意しなければならないのは、必ず保存するブックをアクティブにしてこのマクロを動作させてください。そうしないとエラーが出たり、思わぬブックがこの名前になって保存されてしまいます。 もし不都合な点等がありましたらご遠慮なくお知らせ下さい。

共感・感謝の気持ちを伝えよう!

  • 回答No.1

format(val(セル.value),"000") & ".xls" とフォーマットを使って編集桁数を指定したらどうでしょうか。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • マクロ VBA ファイル名を連番でつけたいのですが

    マクロ初心者なので教えて頂けるとうれしいです。 保存先フォルダにファイル名を自動で名前をつけて保存させるところまでできたのですが、 保存先フォルダに同名フォルダがある場合に、 もともと指定しているファイル名のお尻に連番をつけていくようにしたいのですが・・・ 例) 選択したシートをコピーして、 「A1+B1+見積書.xls」 という名前をつけて毎回保存していくのですが、 同名のファイルがある場合、 「A1+B1+見積書+1.xls」 「A1+B1+見積書+2.xls」 「A1+B1+見積書+3.xls」    …というふうにお尻に自動で連番をつけて 保存できるようにしたいのです。 宜しくお願い致します!

  • エクセルの書式設定→ユーザー定義

    エクセル2003です。A1のセルに300と入力しA2のセルに17.5と入力したら@17.5と表示したいのです。A3に掛け算の合計5250となるよに。A2に書式設定→ユーザー定義で##”@”###とし17.5と入力したら@18になってしまいます。いろいろ試したのですがうまくいきません。ユーザー定義を教えて下さい。よろしくお願いします。

  • エクセルで05'30"と表示したい

    エクセル2007を利用してますが、セルに例えば0530と入力したら05'30"と表示されるようにしたいのですが可能でしょうか?セルの書式設定のユーザー定義でmm'ss"としたのですが上手くできませんでした。それとA1セル 03'00" A2セル 05'40"と入力されている場合にB2セルにA2-A1の分秒を引いた数字 02'40" を表示させたいのですがどのように入力すればよいでしょうか? 以上宜しくお願いいたします。

  • 指定したセルでファイル名を保存するマクロについて

    マクロ初心者です。 A1セルの文字をファイル名にして保存する方法を知りましたが、A1セルとB1セルの文字をファイル名にして保存したい場合、どのようにすれば良いか分かりません。 A1セルに企業コード、B1セルに企業名です。 ファイル名を「請求書(13579いろは株式会社様)」としたいのです。 実際のマクロを一部抜粋しますが、下記の場合はファイル名は 「請求書(13579様).xls」となります。 Dim WS As Worksheet Dim fname As String fname = "C:\保存先\" & ("請求書(") & WS.Range("a1").Value & ("様)") & ".xls" どなたか教えて下さい。 どうぞよろしくお願い致します。

  • excelの書式設定について

    A1セルに 1 と入力すると 1/15 と表示されるように設定しています。  セルの書式設定→ユーザー定義→0"/15" A1セルに 1 と入力すると 1/31(その月の月末日)が表示されるように設定したいのです。 (もし 2 と入力すると 2/28 と表示するようにしたい) どのようにすればよいか?お教えいただけましたら助かります。 よろしくお願いいたします。

  • エクセルのセル書式設定について

    エクセルのセル書式設定について教えてください。 セルA1に 111222333 と数字を入力しました。 ちょっと見にくいので111-222-333とするために書式設定のユーザー定義で ###-###-### としました。うまくいきましたが、  A1122233B だと - がはいりません。 セルA列には英数字が入ります。見やすくするため表示のみ「-」を 表示させたいです。入力はそのまま「-」なしで入力します。 どうかお願いします。

  • 結合した文字列をファイル名に使えない

    Excel上に入力されているパス名とファイル名のデータを組み合わせて、 様々なファイルを開いたりコピーしたりするVBAのコードを作ろうとしています。 仮にシート上のA1セルに、C:\Documents and Settings\デスクトップ というパス名 A2セルに URIAGE.xls というファイル名が入力されていたとして、 A1の文字列データとB1の文字列データを結合する場合、 Sub FileSousa()  Dim a As String  Dim b As String  Dim c As String  a = Cells(1, "A").Value  b = Cells(2, "A").Value  c = Chr(34) & a & "\" & b & Chr(34)  Range("A3") = c としてみると、確かにA3セルには、"C:\Documents and Settings\デスクトップ\URIAGE.xls" と出力され、文字列が結合されたことがわかるのですが、その変数cのデータを使って  Workbooks.Open Filename:=c として、そのファイルを開こうとすると、ファイル名が見つからないとしてエラーになります。 ファイルはデスクトップ上の確かにその名前で存在しており、直接 Workbooks.Open Filename:="C:\Documents and Settings\デスクトップ\URIAGE.xls" とすると開きます。 " を Chr(34)によって入力したのがいけないのでしょうか、 Workbooks.Open Filename:=××× には、変数を置いてはいけないのでしょうか。 そもそも文字列の結合は、"あ" & "い" → "あい" となるのが基本だと思うのですが、 a="あ"、b="い"、c=a&b → c="あい"として結合した変数cについては、ファイル操作上のファイル名の設定項目として使えないのでしょうか。

  • VBA セル入力された日付データから年月のみを取り出してファイル名につけたい

    セル入力された日付データから年月のみを取り出してファイル名につけたい、のですが・・・ 下記のようなイメージです。  A列    B列 1 日付   商品名   2 2009/9/1 みかん    3 2009/9/2 とまと    4 2009/9/15 きゅうり という明細データがある場合、 このファイルのファイル名を明細行の1番上(A2セル)に日付の年月だけにして保存したいのですが、可能でしょうか。 (上の例だと200909.xlsになるようしたいのですが) ちなみに今は↓こんなコードでコピーしたファイルに名前をつけようとしていますが、エラーになってしまいます・・・ Sheets(1).Copy ファイル名 = "\" & Sheets(1).Range("B13").Value & ".xls" ActiveWorkbook.Close SaveChanges:=True, _ Filename:=ThisWorkbook.Path & ファイル名 宜しくお願い致します!

  • Excelで数値の書式設定

    Excelで下記が入力されていたとします。 A1 46,537 A2 7,180 A3 =A1+A2 (A3の値は、この場合 53,717 になります。) A3のセル表示を54,000 にしたい場合は、書式メニューのセルの表示形式タブのユーザー定義で 「0,",000"」を入力したら解決しましたが、53,700にしたい場合は、どのように入力したら良いのでしょうか? いろいろ試しましたが分かりません。 どなたか分かる方教えて下さい。よろしくお願いします。

  • excel 2007 マクロ ファイル名

    ファイル名の取得時にセルA1=”3” これは3月という意味なのですがファイル名を付けるときに”03”と表示させたいのですが なかなか上手くいきません どのようにすればよいのでしょうか?教えてください ’ファイル名取得 myfile = Worksheets("A").Range("A1").Value & ".TXT" .NumberFormatLocal = "00"なども使用したのですが無理でした。