
エクセルvbaで、開いているファイルをリネーム保存することは可能なのでしょうか?
リネームは、名前の書き換えという意味で、名前を付けて保存ではないです。
検索してみましたが、なかなか該当するものが見つけられません。
やりたいことは、フォルダ内にファイルは1つしか存在せず、セルA1に値が入力されると、その値でファイル名が随時変更されるようにしたいのですが、その他、どのようなvbaが可能でしょうか?
エクセルvba、初心者です。
ネット検索で、必要なvbaを持ってきて使う程度のことしかできないので、自分で組み立てるレベルではありません。
できれば、キーワードではなく、できるだけ書いてくださると助かります。
バージョンは2003です。
どうぞ、お分かりになる方、教えてください。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
#1さんの言うとおり、開いたままではリネームできません。
ただし、開いているファイルをいったん別名で保存(終了せずに)すれば、ロックははずれますからリネームできます。
ただ何のためにリネームしたいのか、開いているファイルはどうするのか(保存する?)など、
目的が分からないので、具体的なことを書くのはやめておきます。
nag0720さまや、asciizさまのご回答を拝見し、やり方を考え直すことにしました。
今度質問するときは、もう少し具体的に記載したいと思います。
ありがとうございます。
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点のようなことが起こっては非常に混乱しますので、わざわざファイルロックをかけて、不正な操作をされないように保護しているのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) vbaサブフォルダーをワイルドカードで取得したい 2 2022/11/15 08:04
- Access(アクセス) Access VBA を利用して、フォルダ内のファイルの名称を変更したい 1 2023/08/03 08:27
- PDF エクセルのVBAでファイルをpdfで保存するとソフトによっては開けなくなる 3 2022/06/08 10:20
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- その他(データベース) Excel VBA 転記について 1 2022/04/20 16:55
- Excel(エクセル) ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存 2 2022/04/18 13:15
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
開いているファイルを削除し、別名で保存する方法
Visual Basic(VBA)
-
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
-
4
エクセルVBA 開いているブックのコピー
Excel(エクセル)
-
5
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
6
Access VBA を利用して、フォルダ内のファイルの名称を変更したい
Access(アクセス)
-
7
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
8
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
9
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
10
Excel マクロでShearePoint先のフォルダ指定
Excel(エクセル)
-
11
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
12
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
13
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
14
指定したフォルダーを最前面表示にする方法
Visual Basic(VBA)
-
15
DATE型変数を初期化する方法
Visual Basic(VBA)
-
16
複数の画像ファイルを挿入したい
Excel(エクセル)
-
17
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
18
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
19
フォントの大きさ
Visual Basic(VBA)
-
20
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DVDstylerへの書き込み失敗につ...
-
Lファイルという画像をマイピク...
-
拡張子htmlのファイルの編集・...
-
ZIPファイル内のファイルを...
-
拡張子tmpファイルを開く方法
-
SH901isでのPDF保存
-
デスクトップに勝手にできてし...
-
EXCEL、上書き保存したは...
-
デルのウィンドウズ7で10へ...
-
Windows Movie Maker でクリッ...
-
PUBファイルをパブリッシャー以...
-
拡張子.mbl
-
MP3などの動画ファイルの静止画...
-
Skypeに送られてきたファイルを...
-
フォルダでjpegだけが表示され...
-
Google ドライブ上でのExcelの利用
-
アクセスデータをエクセルに取...
-
ファイル形式が正しくないとい...
-
ノートパッドの文章の文字化け
-
J-SkyPhoteについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで勝手に保存画面に飛びま...
-
ZIPファイル内のファイルを...
-
txt ファイル (テキストフ...
-
EXCEL、上書き保存したは...
-
拡張子のないファイルの作成
-
PUBファイルをパブリッシャー以...
-
拡張子tmpファイルを開く方法
-
開いているファイルをリネーム...
-
複数あるテキストボックス中の...
-
Lファイルという画像をマイピク...
-
【Access】テーブルをエクスポ...
-
auのスマフォでPDFを見るには・...
-
Wordの保存形式でwebページの意...
-
何故かエクセル終了時に「変更...
-
エクセルのファイル名が「開く...
-
共有フォルダの件
-
VBAファイルの保存先について
-
エクセルでファイルを早く開く...
-
文書内の表が破損しています、...
-
Image-Jの使い方を教えて下さい
おすすめ情報