「みんな教えて! 選手権!!」開催のお知らせ

パスからファイル名を抜き出す所で、ファイル名の拡張子を抜き出した後、別の形式で保存する用途で利用できます。とはどういう事でしょうか?教えて頂けると幸いです。

質問者からの補足コメント

A 回答 (4件)

>ファイル名が「data.xlsx」なら、


>「data001.csv」
>「data002.csv」
>「data003.csv」
>   ・
>   ・
>   ・
>「data100.csv」
>という風にする訳です。
>これを手動でやると、時間が掛かるし面白みも無いし、面倒でしかないですね。
>そういう処理は VBA で処理しちゃいましょう、となる訳です。

>そんな時に使えるのが、貴方が添付した画像に書かれている様な内容です。>ちなみに、このコードについても書いて頂けると幸いです。


コードの作成は可能ですが、まず、10万行ある「data.xlsx」
を作成する必要があります。
添付図のようなデータをSheet1に作成してください。
もし、10万行が大変な場合は1000行でも構いません。
添付図は、1000行のデータです。
データの作成が完了したらdata.xlsxの名前で保存してください。
保存先は、自分のPC内のフォルダであればどこでも構いません。
(OneDriveはネットワークフォルダなので指定しないでください)
それが、終わりましたらその旨補足してください。
その際は、作成したデータ件数も明記してください。
「excelVBAについて。」の回答画像4
    • good
    • 0

>パスからファイル名を抜き出す所で、ファイル名の拡張子を抜き出した後、別の形式で保存する用途で利用できます。



これは、以下のようなことを言っています。
1.まず前提として、InStrRev関数についての説明であることです。
従って、InStrRev関数について、あなたがある程度調査して、知識を持っていることが前提です。
2.InStrRev関数を利用すると
c:\data\sample.xlsx のようなファイルがあったとき、
このファイルの拡張子だけを変えて
c:\data\sample.csv のファイル名を作ることができます。

以下のマクロを実行すると、
A2のファイル名の拡張子をcsvに変えたファイル名をB2に格納します。
画像の例ではB2には、d:\goo\data\sample.csv が格納されます。

Public Sub 名前変更()
Dim fname As String
Dim newname As String
Dim pos As Long
fname = Range("A2").Value
pos = InStrRev(fname, ".")
newname = Left(fname, pos) & "csv"
Range("B2").Value = newname
End Sub
「excelVBAについて。」の回答画像3
    • good
    • 0

>パスからファイル名を抜き出す所で、ファイル名の拡張子を抜き出した後、別の形式で保存する用途で利用できます。



この文章の前に、利用できる前提となる文章があると思われます。
その文章を提示していただけませんでしょうか。
そうすると、良い回答が得られやすくなるかと。
この回答への補足あり
    • good
    • 0
この回答へのお礼

連番については、例えば 10万行ある何かの記録データを、他のシステムで読み込ませる為に、データを小分けしなければならないという場合。

1000行ずつデータを分割し、それぞれ別ファイルで CSV 形式で保存しなければならない時に、同じ名前に連番を付けて保存という指示があったとして。

ファイル名が「data.xlsx」なら、
「data001.csv」
「data002.csv」
「data003.csv」
   ・
   ・
   ・
「data100.csv」
という風にする訳です。
これを手動でやると、時間が掛かるし面白みも無いし、面倒でしかないですね。
そういう処理は VBA で処理しちゃいましょう、となる訳です。

そんな時に使えるのが、貴方が添付した画像に書かれている様な内容です。ちなみに、このコードについても書いて頂けると幸いです。

お礼日時:2024/11/15 12:39

CSVとかで保存するときに、ファイル名を使いまわせるって事かと。

    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A