エクセル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(エクセル)
-
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
-
4
フォームでPDFを表示させたいときは
Visual Basic(VBA)
-
5
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
6
マクロについて教えてください。 ファイル名を変更すると、デバックエラー
Word(ワード)
-
7
開いているファイルを削除し、別名で保存する方法
Visual Basic(VBA)
-
8
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
9
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
10
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
11
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
12
括弧があるとHYPERLINKで飛べない?
Excel(エクセル)
-
13
エクセルVBA 開いているブックのコピー
Excel(エクセル)
-
14
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
15
ExcelでVBAを使用した際に、『パス名が無効です』とエラーになります。
Excel(エクセル)
-
16
VBAで選択した画像を貼り付けたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL、上書き保存したは...
-
txt ファイル (テキストフ...
-
Excelで勝手に保存画面に飛びま...
-
拡張子のないファイルの作成
-
閲覧したwebページの画像が自動...
-
拡張子tmpファイルを開く方法
-
auのスマフォでPDFを見るには・...
-
Lファイルという画像をマイピク...
-
ExcelでCSV形式保存時の確認メ...
-
【Access】テーブルをエクスポ...
-
保存したファイルがどこにある...
-
Windows7からXP
-
DTFファイルの開き方が分かりま...
-
PUBファイルをパブリッシャー以...
-
フォルダー内のファイル名一覧...
-
csvファイルで作成したグラフ
-
ZIPファイル内のファイルを...
-
ワードパッドで作成したデータ...
-
「保存」せず「開」いたファイ...
-
Wordの保存形式でwebページの意...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL、上書き保存したは...
-
txt ファイル (テキストフ...
-
Excelで勝手に保存画面に飛びま...
-
拡張子tmpファイルを開く方法
-
拡張子のないファイルの作成
-
ZIPファイル内のファイルを...
-
閲覧したwebページの画像が自動...
-
PUBファイルをパブリッシャー以...
-
Lファイルという画像をマイピク...
-
wordの「docx」ファイルを「tex...
-
エクセルのファイル名が「開く...
-
文書内の表が破損しています、...
-
【Access】テーブルをエクスポ...
-
Wordの保存形式でwebページの意...
-
csvファイルで作成したグラフ
-
メールで送られてきたエクセル...
-
auのスマフォでPDFを見るには・...
-
クライアントは要求された特権...
-
共有フォルダの件
-
csvをxlsに変換する方法を教え...
おすすめ情報