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

Excelで任意のセルのデータをファイル名に追加して上書き保存するマクロ

Excelのブックが300個ほどあります。 現在アルファベット4文字のファイル名がついています。 このブックを1つずつ開き、任意のセル(ブックごとに異なる)を選択後ホットキーでマクロを起動し選択したセルの内容をもともとのファイル名に追加して名前を付けて保存したいのです。 例) 元のファイル名:bgf.xls 選んだセル:A4 A4の内容:あいうえお 新しく保存するファイル名:あいうえおbgf.xls 環境はwin2k、Excel2kです よろしくお願いします。

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

  • 回答数2
  • 閲覧数360
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.2
  • Wendy02
  • ベストアンサー率57% (3570/6232)

こんにちは。 ホットキーで? あまり、きちんとしたチェックをしたわけではありませんが、対話型で作るなら、以下のようになりますね。 Sub RenameFiles()   Dim FileName As Variant   Dim BaseFName As String   Dim myPathName As String   Dim NewFileName As String   Dim fn As Variant   Dim rng As Variant     FileName = Application.GetOpenFilename("Excel(*.xls),*.xls", MultiSelect:=True)   If VarType(FileName) = vbBoolean Then Exit Sub   For Each fn In FileName    On Error Resume Next    Set rng = Application.InputBox(fn & vbCrLf & _    "の名前の変更をします。" & vbCrLf & "セルを選択してください。", "ファイル名変更", "$A$4", Type:=8)    On Error GoTo 0    If VarType(rng) = vbEmpty Or rng Is Nothing Then Exit Sub        If IsEmpty(rng.Value) Then      MsgBox "セルが空です。", vbCritical      Else      BaseFName = Mid$(fn, InStrRev(fn, "\") + 1)      myPathName = Mid$(fn, 1, InStrRev(fn, "\"))      NewFileName = myPathName & rng.Value & BaseFName      If Dir(NewFileName) = "" Then       On Error GoTo ErrHandler       If MsgBox(NewFileName & vbCrLf & " に変更してよろしいですか?", vbOKCancel) = vbOK Then         Name fn As NewFileName         MsgBox "変更しました。", vbInformation       End If       Else       MsgBox "同名ファイルがあります。", vbCritical      End If    End If    Set rng = Nothing    Next fn    Exit Sub ErrHandler:    MsgBox Err.Number & ":" & Err.Description    Resume Next End Sub

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

質問者からのお礼

ありがとうございます。 御礼が遅くなりすみません。 教えていただいたマクロを少し加工して期待した動作するようになりました。

関連するQ&A

  • エクセルマクロで任意のファイル名をつけて保存したい

     エクセルVBAについての質問です。  エクセルのマクロで、Aというファイルを開いて、そのうち必要なワークシートだけを抽出し、新しいブックに移動し、その新しいブックを新しいブックのsheet1のセルC2の文字列をファイル名として保存するようなマクロをくみたいと思っています。  ファイルを開いて必要なワークシートだけを抽出し、新しいブックに移動するところまではできましたが、新しいブックのセルC2の文字列をファイル名として保存することができません。FNを変数として宣言して、C2の文字列を代入し、FNをファイル名として保存しようとすると、ファイルにFNという名前が付いてしまいます。どうすれば、C2の文字列をファイル名として保存できるのでしょうか。なお、保存するフォルダはc:\変換ファイル\6月です。どなたか教えてください。よろしくお願いします。

  • エクセル関数>参照ファイル名をセルから呼び出す

    別ファイル(ブック)のセルを表示させたいのですが、例えば =[あいうえお.xls]かきくけこ!$A$5 とせずに、 ファイル名は A1セル の文字列を充てる、というようなことは出来ないでしょうか? 関数が分からない人でも、簡単に参照したいファイル名を変えられるようにしたいのです。 よろしくお願い致します。

  • エクセルのマクロで質問です

    エクセルのマクロで質問です。 SaveAsを使って、あるセルの文字列をファイル名として保存する、というマクロを作りました。 取りあえずうまくいっているのですが、同じファイル名がすでに存在した場合、「上書きしますか?」というダイアログが出ます。 運用上、上書きは困るのですが、「いいえ」を選択するとマクロがエラーで止まってしまいます。 そこで、以下のどちらかの動作を実現するマクロは可能でしょうか? 1.いいえを選んだ時に、ファイル名を指定するダイアログに飛ぶ 2.同じファイル名があった場合、自動的に末尾に数字を不可して保存する(ファイル名.xlsがあった場合はファイル名2.xlsで保存する) よろしくお願い致します。

その他の回答 (1)

  • 回答No.1
noname#15459

SendKeys Sheets("Sheet1").Range("A4").Value Application.Dialogs(xlDialogSaveAs).Show

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

質問者からのお礼

ありがとうございます。 ちょっと期待していたものとはちがいましたが今後の参考にさせていただきます。

関連するQ&A

  • エクセルでファイル名を任意のセルに入力するマクロを組むには?

    エクセルにて、マクロを実行すると、 ダイアログボックスが出てきて、ファイルを 選ぶと、そのファイル名が任意のセル (たとえばB10とか)に入力されるような マクロを組みたいのですが、うまくいきません。 しかも、そのファイル名についている拡張子なしで 入力されるようにしたいです。 どなたかご教授ください。

  • エクセルのファイル名を任意のセルの内容にしたい

    windows2000、Excel2000の環境です。 ファイル名が数字7桁のブックが約1000個あります。 このブックのファイル名をブックに含まれるセル(最大2つ)の文字列+元のファイル名の数字7桁にしたいのです。 マクロやVBで一括で変換する方法はありませんでしょうか? セルの指定は特定の個所ではなく、ブックごとに違いますので、ブックを1つずつ開いて指定する形になります。 よろしくお願いします。

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

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

  • エクセル マクロで別のブックに貼り付けたい!

    作成したシートを別のブック(既存)にマクロを使って貼り付けたい のですが、いろいろ調べた結果以下のようにはすることができました。 ---------------------------------------------------------------- Sub SaveSheet() Dim sFileName As String 'ファイル名の設定 sFileName = "C:\a\test.xls" 'シートをコピーして新規ブックを作成 Sheets(Array("Sheet1", "Sheet2")).Copy '作成したブックの保存 ActiveWorkbook.SaveAs sFileName End Sub ---------------------------------------------------------------- これはとあるサイトで見つけたもので、私自身が作成したものでは ありません。 このマクロの問題は、 ○あらたにブック(シート)が作成されること (マクロ実行時は上書きになるので、変更できなくても使えないわけ ではない) ○元データはシート丸ごとであり、セル範囲を選択できない。 ○貼り付けるシートにおいても、任意の場所を起点とできない。 ということです。 整理しますと、『作成したシートの任意のセル範囲を、別に存在する ブックに、任意のセルを起点として貼り付けたい』 ということです。 どうかよろしくお願いします。m(_ _)m

  • Excelのマクロ

    よろしく御願い致します Excel2007でマクロを作り「個人用マクロ」PERSONAL.XLSBに登録しましたそこで質問ですが、Excel起動のたび、前には作成した名前で開いていましたが、今は必ずPERSONAL.XLSBの画面が開きその後でファイル名で開きますがマクロをPERSONAL.XLSBに保存するとこう言うものでしょうか。 出来れば、マクロを使いたい時のみPERSONAL.XLSBで開きたいのです それと、オーズEX_12 オーズカレンダー.xlsと言うソフトを使いたいのでオーズカレンダー.xlsを開くと {このアプリケーションと他のExcelブックを 同時に使用することは出来ません。 他のブックを全て閉じてからもう一度起動してください} と表示されて、OKをクリックしても使用出来ませんが何か関係が有るでしょうか。

  • エクセル マクロで特定ファイル名だけを開く

    エクセルのマクロで 特定のファイル名だけをフォルダの中から探して 開くというものを作りたいのですが うまくできません。 フォルダを指定して 「060927.xls」というエクセルファイルだけを 開きたいのですが この日付のところが毎日変わるので 「06XXXX.xls」というような 最初が06であと4つの文字が入ってるファイル名だけを 流動的に指定できるようにするには どのようなVBAマクロにすればよいのでしょうか? とても困っています。 是非教えてください!宜しくお願いします。

  • 値が奇数の時、任意のセル範囲の行の色付けマクロを

    条件つき書式のマクロを教えてください。 任意の選択したセルの右端列に数字を入力しています。 その数字が奇数だったら、数字の入力してある任意の列は除いて、行の色付けをしたいのです。 選択するセル範囲と数字の入っているセルの列はシート毎、ブック毎に、変わりますので、マクロで設定をしたいと思っています。エクセル2010を使っています。 よろしくお願いします。

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

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

  • VBA マクロ セルと同じファイル名を選びたい

    Excelでマクロを組んでいます。 以下のような場合にどのように組めばいいのか、悩んでいます。 是非、ヒントを下さい。 Excelファイル「book1」でマクロを組んでいるとします。 1)book1のセルA1に入力されている文字列と同じファイル名のbookを選択できないか 2)セルA1から順にA2、A3、A4と文字列の入力がないセルまで自動的にセル番地を横へおくり、1)の操作を繰り返すことができないか ちなみに検索対象となるbookはすべて同じフォルダの中に格納されています。 よろしくお願いします。

  • エクセルVBAで、任意指定のファイル名を取得する方法を

    教えて下さい。 ファイル(エクセルブック)を数個開いています。そのうち基本となるファイル(便宜上基本ファイルとします)は常に開いていて、後の数個の作業ファイルを開きます。(作業ファイルはその都度入れ替わり固定のファイルではありません)  基本ファイルを、アクティブな状態でエクセルVBAマクロを走らせます。 そのマクロ実行中に、『ある作業ファイルの任意のセル(任意のセル)をクリックして、そのファイル名とシート名とセルのアドレスとそのセルの値を取得』して、基本ファイルの任意のセル(例えば基本ファイルのsheet1のセルA2~D2に)に記入したいのです。 分かりにくい文で申し訳ないですが、特に上の『 』内の部分です。 どのようにマクロを記述すればいいのか分からないので、教えて下さい。宜しくお願いします。