開いているファイルをリネームする方法 vba

このQ&Aのポイント
  • エクセルVBAで開いているファイルをリネーム保存する方法について教えてください。
  • フォルダ内に1つしか存在しないファイルの名前を、セルA1に入力された値で随時変更するエクセルVBAのコードについて教えてください。
  • バージョン2003のエクセルで、開いているファイルをリネーム保存する方法について詳しく教えてください。
回答を見る
  • ベストアンサー

開いているファイルをリネームする方法 vba

エクセルvbaで、開いているファイルをリネーム保存することは可能なのでしょうか? リネームは、名前の書き換えという意味で、名前を付けて保存ではないです。 検索してみましたが、なかなか該当するものが見つけられません。 やりたいことは、フォルダ内にファイルは1つしか存在せず、セルA1に値が入力されると、その値でファイル名が随時変更されるようにしたいのですが、その他、どのようなvbaが可能でしょうか? エクセルvba、初心者です。 ネット検索で、必要なvbaを持ってきて使う程度のことしかできないので、自分で組み立てるレベルではありません。 できれば、キーワードではなく、できるだけ書いてくださると助かります。 バージョンは2003です。 どうぞ、お分かりになる方、教えてください。 よろしくお願いいたします。

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

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

#1さんの言うとおり、開いたままではリネームできません。 ただし、開いているファイルをいったん別名で保存(終了せずに)すれば、ロックははずれますからリネームできます。 ただ何のためにリネームしたいのか、開いているファイルはどうするのか(保存する?)など、 目的が分からないので、具体的なことを書くのはやめておきます。

yamayama456
質問者

お礼

nag0720さまや、asciizさまのご回答を拝見し、やり方を考え直すことにしました。 今度質問するときは、もう少し具体的に記載したいと思います。 ありがとうございます。

その他の回答 (1)

  • asciiz
  • ベストアンサー率70% (6642/9410)
回答No.1

Excelがオープン中のファイルは、Excel自身でファイルシステムの保護機能を使ってロックされていますので、VBAでリネームすることは不可能です。 手動でも確認できます。 任意のexcelファイルを開き、開いたままファイル名を変えようとしてみてください。 『Windows OS』から、「ファイルは使用中です」と怒られます。 つまりExcel自身だけでなく、他のプログラムや操作等からも、保護されているのです。 そんなことが簡単にできてしまっては、マルチタスクのOSにおいてファイルの正確性を保てなくなり、致命的なエラーが発生する可能性を生じさせてしまうことになるから、わざわざExcelは開くファイルを保護しているんです。 これを迂回する方法は有りません。 自分自身ではないファイルなど、ロックのかかってない他のファイルなら、作成・リネーム・削除可能ですので、そういった手段で実現することを考えましょう。 ---- ちなみにファイルロックに全然気を使っていないプログラムなどもあります。 例えば「メモ帳」。 a.txt を作成して開き、「aaa」と書き。 もう一度a.txt をダブルクリックして「bbb」と書く。 この時点で2つのメモ帳が起動していますが、保存されるのは、最後に保存された物のみ、です。 内容が混じったりはしません。 1番目→2番目と保存・終了すると、ファイル内容は「bbb」となり、 2番目→1番目と保存・終了すると、ファイル内容は「aaa」となります。 今度はまた、a.txtを開きます。 開いたまま、a.txt をc.txt とリネームし。 c.txt を開いて、「ccc」と書き、保存。 そして開いていたa.txt を保存すると、c.txt とは別にa.txt が出来ます。 なお、明示保存せずに終了すると、a.txtは無くなります。 …まともなアプリケーションでは、上記2点のようなことが起こっては非常に混乱しますので、わざわざファイルロックをかけて、不正な操作をされないように保護しているのです。

yamayama456
質問者

お礼

なるほど、よくわかりました。 ありがとうございます。

関連するQ&A

  • ファイルのリネームを一括でするには…

    こんxxは ファイルのリネームを一括でする方法が知りたくて質問いたしました。 計画性0で > |2004-01-01|名前|印|備考| のように保存をしていったので、項目ごとでファイルを整列させたりしたいときにできないので、以下のようにリネームをしたいとおもっています。 > |名前|印|備考|<2004-01-01> こうすれば、私の作業上、効率化が図れます。 1個ずつ変えていく方法は有るのですが、エクセルデータシートが膨大にあるため、時間がかかりそうで・・・。 リネームソフト、vectorを利用しましてダウンロードして試してますが、上記のようなリネームを一括でやるのはみつかっていません。(気づいていないのかもしれません。) ご指導のほどよろしくお願い致します。

  • リネームについて

    PHP初心者です。宜しくお願い致します。 リネームについて2点程質問があります。 1.特定フォルダ内にある全てのCSVファイル内の特定箇所の  リネームについて列内に記入されているファイル名「123_4.jpg」  や「123-4.jpg」の「_」を「a」に「-」を「b」にすることは可能  でしょうか?  できれば該当のCSVファイルを開かずに、特定の列を指定しその列に  記入されている全ての「_」と「-」を置換したいと思っています。  「123_4.jpg」→「123a4.jpg」  「123-4.jpg」→「123b4.jpg」   とこのような感じに。 2.特定フォルダ内の画像ファイルのリネーム  上記と同様に「_」を「a」、「-」を「b」置換 できれば、元ファイルをコピーして別のフォルダにリネームした ファイルを保存したいと思っています。 宜しくお願い致します。  

    • ベストアンサー
    • PHP
  • リネーム中にファイルを失ったのですが

    このカテでいいのか分かりませんが。。。 写真データのリネーム中に上書きにした後リネームが失敗してしまい(理由は分かりません) リネーム中のデータが消えてしまいました。 検索をかけるとjpgアイコンではなくIEアイコンで 探しては来るのですがやっぱり開けません。 これはただの痕跡だと教えてもらったのですが 何とかして見れるようにはならないのでしょうか? IE上で見れたらjpgファイル保存し直したいのですが。。。 リーネームの際使用したのはFlexible Renameです。 よろしくおねがいします!!

  • VBAでファイル名を変更したい

    EXCEL2003のVBAでブックを連続して保存をするものを作成したのですが、スキルが足りないため、ファイル名が数字になってしまい、リネームをしたいのですが、出だしからつまずいております。 リネームをしたいブック(ファイル)は一つのフォルダに入っており、 excelのシートには旧ファイル名と新ファイル名の一覧をつくり VBAを実行すると一覧に載っているブック名が変更される というものを作りたいのですが、可能でしょうか。 一覧は 旧ファイル名  新ファイル名 1.xls      1北海道.xls 2.xls      2青森.xls という感じです。 フリーのリネームソフトではなく何とか自力でやりたいと思っております。 お力をお貸しください。 よろしくお願いいたします。

  • EXCEL VBAで違うファイルを参照したいです

    EXCEL VBAで困ってます アクティブなシートのセル番地"B1"に"外部"と値が入力されていて 同じアクティブなシートのセル番地"B2"に"仕様"と値が入力されています これをネットワーク先にあるエクセルファイルの中に該当する値が入力されているか を調べたいのですが、ロジックをどう書けば良いのかわかりませんので教えてください 例えばネットワーク先のファイルは仮に以下とします \\EXCEL\VBA\MACRO\Reference.xls このファイル内に上記の値が格納されています ただ、外部については"内部/外部"と入力されており、"仕様"は同じです ですので完全一致と部分一致(?)で比較をし、それぞれ"C1""C2"に合致すれば"○"、 無いもしく違えば"×"と値を返したいのです 尚且つ、ファイル内を指定するだけで、セル番地やシート名まで指定せずに比較したいのです どうかご教授頂きますようお願い致します

  • エクセルのVBAを使って。リンク先のファイルの一括ダウンロードとか出来

    エクセルのVBAを使って。リンク先のファイルの一括ダウンロードとか出来ないのでしょうか? まいにち数百件のファイルをサイトから、右クリック保存でファイルを保存するという悲しい作業をしています。 できましたら、エクセルで下記のものが出来ればとてもたするのですが、何方か詳しい方ご相談に乗って頂ければお願いします!! 相談1. A列にダウンロードしたいリンクを記載 URL:http://aaaa.aaaa.html/abcd.txt こちらを一括で指定のフォルダに保存などできないものでしょうか? 相談2. 相談1の発展では、、、 A列にダウンロードしたいリンクを記載 URL:http://aaaa.aaaa.html/abcd.txt B列にタウンロードファイルのリネーム後の名前を記載し、 ダウンロードのさいにファイルをリネームし指定フォルダに保存させる。 こんな動作をエクセルで出来ませんでしょうか?

  • 富士ゼロックスのDocuWorksをEXCEL VBAで開く方法

    富士ゼロックスのDocuWorksファイルをEXCEL VBAで開く方法をご教授願いたく思います。 EXCELLのセルにファイル名を入力させ、検索し、指定したDocuWorksファイルを開こうと考えております。 DocuWorksファイルは数千ファイルあり、1つのフォルダに保存して、 検索を掛けようと思います。 どのような構文を組めば、DocuWorksファイルを開けるでしょうか? よろしくお願いいたします。

  • エクセルVBAでフォルダ内の全てのファイルにマスタファイルのsheet

    エクセルVBAでフォルダ内の全てのファイルにマスタファイルのsheet1!B2:X200の値を、同じく各ファイルのsheet1!B2:X200に書き込み、保存させるにはどのようにすればよいでしょうか? またそんなことは出来るのでしょうか? ご教授願います。

  • リネームしてくれるパッチファイル

    リネームしてくれるパッチファイル パソコン内にある画像ファイルの名前に規則をつけて保存したいのですが、量が多くて1つ1つリネームしていられません。 以下の入力規則を元にリネームをしてくれるパッチファイルなどは作れますでしょうか。 ファイル名:yymmdd### (yy:年 mm:月 dd:日 ###:通し番号 日付の対象は画像の作成日時 2010年4月27日に5番目に撮影した画像の名前は"100427005") どの画像がいつ撮影された画像なのかを知るのが目的なので、 語尾の通し番号に関しては、同じ日付に複数撮影した画像を同じ名前にリネームしなければOKです。 分かる方がいましたらお願いしますM(--)M

  • VBA 複数ブックへ書き込み

    VBA初心者です。 1つのフォルダ内にある100(ファイル名001から100)個のエクセルファイル(ブック)の特定の場所(すべてのエクセル ファイルはファイル名は違うが、同一のシート名で同一のセルの構造になっている。 以上に対して、1つのもとになるファイルA(ブック、シート)の特定のセル(同一列の行を上から順次下る)セルの値を先の同一フォルダ内のエクセルファイル100(001~100)個に対して、ブックオープン、特定セルのデリート、特定セルへの書き込み、ブック保存という一連の作業を行いたいです。 多数のファイルから1つの集計ファイルに値を読み込んできて書き込むサンプルはあるようですが、逆に1つのファイルから同一フォルダ内の多数のファイル(ブック)の特定場所に書き込むためのサンプルコードを教えていただけると大変助かります。 以上よろしくお願いいたします。

専門家に質問してみよう