VBAでファイル名の記号文字を一括で変更したい

このQ&Aのポイント
  • VBAマクロを使用して、ファイル名の記号文字を一括で変更する方法について教えてください。
  • 特定のセルに保存されているファイル名に含まれる記号文字を、数字に置き換える方法をVBAマクロで実現したいです。
  • VBAを使って、ファイル名の記号文字(%や+、-など)を数字に一括で変換する方法を教えてください。
回答を見る
  • ベストアンサー

VBAでファイル名の記号文字を一括で変更したい

VBAマクロで、ボタンを押すと以下の動作をさせるには、どうしたらいいですか? ファイルの保存先は 別のシートのC19に記載してあり、 ファイル名がエクセル上に次のように並んでいます。 A        B         C fhuo5%ju.jpg shuy4#jhu+.jpg shujty5-hsa.jpg husfa++k.jpg hugyg5%dd.jpg jiysre-yyhar.jpg … ここから、%や+、-といった記号を 1~9の数字に置き換え、ファイル名の変更をしたいのです。 マクロの知識が無く、 どの関数を使ったらいいか不明です。 お力をお貸しいただけると幸いです。 よろしくお願いします。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>どの関数を使ったらいいか不明です。 Replace関数で良いと思います。 構文は次のようになります。 Replace(Expression, Find, Replace, Start, Count, Compare) Expression 置換元の文字列式を指定 [省略不可] Find 検索する文字列を指定 [省略不可] Replace 置換する文字列を指定 [省略不可] Start 検索開始位置を指定。省略時は1 [省略可能] Count 置換する回数を指定。省略時は全て置換 [省略可能] Compare 比較モードを指定(表参照) [省略可能] 検索すれば簡単に見つかります。

その他の回答 (2)

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.3

今一何をしたいのか解りにくかったのですが、変更したいのはセル上の文字列ですか? 実際に「ファイルの保存先」に存在するファイルの名前ですか? また、ファイル名に使用できない文字列は以下の通りです。 ¥(円マーク)、/(スラッシュ)、:(コロン)、*(アスタリスク)、?(クエスチョン)、”(ダブルコーテーション)、<>(山括弧)、|(パイプ) #半角では正確に表示出来ない可能性があるので全角にしています。

noname#232800
noname#232800
回答No.1

上の方を見てください。 ホーム 挿入 ページレイアウト 数式・・・・開発 通常、「開発タブをリボンに表示する」がOFFなので、表示されてません。 リボン、Excelオプション、でチェックを入れることで「開発」が表示されます。 開発、挿入、AcitivX、ボタンをクリックします。 バブルクリックで、編集できます。ここに msgbox "345" と書くと、コマンドボタンをクリックする「きっかけ」でメッセージボックスが出てきます。 Windows はイベントドリブン・・・きっかけが無いと発動しません。 そして、%、+、ー は予約文字といって、ファイル名の一部には使えません。 ! も & も記号は使ってはいけません。

関連するQ&A

  • VBA・ファイル名にコーテーションがあるとき

    最近ExcelVBAをはじめたばかりなのですが、 あるexcelファイルのマクロを実行し、 別のexcelファイルをリネームし、 excelファイル中のマクロを実行するようにしてみました。 9割がたうまく動いているんですが、 フォルダ名にコーテーションやハイフンなどの記号があると、 マクロの実行のときに、 実行時エラー '1004' マクロ '【ファイル名】!【マクロ名】が見つかりません。 というエラーが出ます。 記号文字を取り払って実行すると、問題なく動作するのですが、 なんとかこれらの記号を入れたままで、うまく動作させる方法はないでしょうか?

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

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

  • VBAのDIR関数でファイル名「0005」などが「5」だけにならない様にするには?

    あるフォルダ内に有るファイル郡の名称をDir関数で取得してExcelのシートのA列に並べるマクロなんですが、0で始まる数字のファイル名の場合、セルには0が省かれて入ってしまいます。 0011なら0011とそのままセルに入れるには(文字列として入れるには?)、マクロはどう書けばいいんでしょうか? 

  • VBAを使ってセル内に記述してある複数ファイル移動を移動

    VBAを用いたファイル移動に関して教えていただきたく 質問させていただきます。 VBAでファイルを移動する方法、*htmlなど特定の拡張子および、指定フォルダ内の全ファイル移動といった方法はわかりましたが、セル内に 記載してあるもののみ移動するだけがわかりませんでした。 やりたいこととしては 事前にjpgというフォルダから 読み込んでおいたjpgファイルのファイル名の一覧が A列、B列、C列に記載されているのですが、それをマクロを実行するとtestというフォルダへ移動するようにしたいのです。 画像をすべて移動するだけなら、別にVBAを使わなくても エクスプローラーで事足りてしまいますが、 画像ファイルがすべて数字で表記されていること jpgファイル名一覧は原本で、実際には、原本のファイル名の一覧から数行だけをコピーして、別のシートを立ち上げ、そのシートに貼り付けられたjpgのファイル名だけを移動したいのです。 ここを参考にするといい!ですとか、あれば、併せて教えていただければ幸いです。よろしくお願いいたします。

  • VBAでエクセルからのファイル名とテキスト化を自動で実行する方法

    マクロを実行して、エクセルのセルからファイル名とテキストファイルを自動で出力したいのですが、VBA初心者なのでプログラムの書き方がわかりません。 どうかVBAのプログラムの書き方を教えて下さい。 【マクロ実行前のエクセル状態】 1.エクセルのA列にファイル名1を入力 2.エクセルのB列にファイル名2を入力 3.エクセルのC列にテキスト出力させたい文字列を入力 【期待のマクロ動作】 ファイル名1+ファイル名2のファイル名でC列の文字列をテキストファイルで出力。 《例》 A B C 1 2 あ ⇒マクロ実行⇒ファイル名『12』テキスト内容『あ』 3 4 い ⇒マクロ実行⇒ファイル名『34』テキスト内容『い』 5 6 う ⇒マクロ実行⇒ファイル名『56』テキスト内容『う』 7 8 え ⇒マクロ実行⇒ファイル名『78』テキスト内容『え』 ・ ・ ・ ・ 上記の様に、一回のマクロ実行で入力されている列のセル全て がファイル名付きのテキストファイルとして出力をさせたいです。 申し訳ありませんが、よろしくお願いいたします。

  • VBA Excel 特定の記号を含んだ行

    Excel VBAにて、質問します。お手数ですが宜しくお願いします。 画像の様に、E列に特定の記号"●"や"▲"含んだ行以外、抽出し 印刷のシート名に貼り付けしたいと思います。 ですが、条件がありまして、その条件とは、InputBoxを使って 抽出したい日付を入力し、入力した日付、時刻までの記号"●"や"▲"以外 を抽出できる様にしたいです。 例えば実行時の日付が8/21日ならば InputBoxに、8/28 20:00と入力したら、入力した日付、時刻までの 記号"●"や"▲"以外を抽出となります。 画像の様に、1行目の見出し名も貼り付けできる様に、VBAを使って できませんでしょうか? ※ 画像ではSheet1のみ載せましたが、 Sheet2とSheet3とSheet4とSheet5とSheet6まで似た内容のデータがあるので シート名を指定して動作できると良いです。 Array("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5","Sheet6")見たいな 感じでできますでしょうか? 御面倒お掛けしますが宜しくお願いします。

  • 一時的にファイル名、シート名を変えて処理することは出来ますか?

    VBAを勉強中で、分からないので教えてください。 2つのWorkbook間でCopy、Pasteを繰り返し、必要なデータ を一覧に書込みするマクロを作成する時 Excelデータ(同じフォーマットでセルに入っているデータが少し ずつ違う)で、異なるファイル名、異なるシート名になってしまって いるものをマクロで処理をしたいのですが、VBAで書き込む時 にはWorkbooks("○○").Worksheets("○○")と指定しなくて は動作してくれないので、どのように指定したらいいか困っています。 「直前にアクティブだったWorkbook指定する」「先頭に位置する sheetを指定する」なんてコードがあれば、一番いいのですが、 そういうコードはあるのかもわかりません。 最終的には"あるセル"に入っているファイル名で保存してしまう ので、一時的に仮ファイル名、仮シート名に変えて、後に削除 して処理をすればいいかなとが思うのですが、どうやって処理 したらいいのかわかりません。 やりたい事をうまく説明出来ているかわかりませんが、ファイル名、 シート名が違う元のデータから、一覧表へ書き込むマクロを組み たいのです。その際の元データの指定方法を知りたい or 一時的 に名前を変えて処理する方法を知りたいです。 一覧表へ書込みをした後にメールで添付してその元データ (”あるセル”にファイル名変更したもの)を送り返したいのですが、 メールへ添付する事までマクロで出来ると助かります。マクロで そこまで出来ますか?これも合わせて教えていただけたらと思います。 つたない説明ですみませんが、よろしくお願いします。

  • VBA Excel 特定の記号を含む行で

    Excel VBAにて、質問します。お手数ですが宜しくお願いします。 画像の様に、E列に特定の記号"●"や"▲"含んだ行以外、抽出し 印刷のシート名に貼り付けしたいと思います。 ですが、条件がありまして、その条件とは、InputBoxを使って 抽出したい日付を入力し、入力した日付、時刻までの記号"●"や"▲"以外 を抽出できる様にしたいです。 例えば実行時の日付が8/21日ならば InputBoxに、8/28 20:00と入力したら、入力した日付、時刻までの 記号"●"や"▲"以外を抽出となります。 画像の様に、1行目の見出し名も貼り付けできる様に、VBAを使って できませんでしょうか? ※ 画像ではSheet1のみ載せましたが、 Sheet2とSheet3とSheet4とSheet5とSheet6まで似た内容のデータがあるので シート名を指定して動作できると良いです。 Array("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5","Sheet6")見たいな 感じでできますでしょうか? どの様なコードを書けば良いでしょうか? 御面倒お掛けしますが宜しくお願いします。

  • knoppixでファイル名の一括変更したい

    外付けHDDが壊れてしまいknoppixでデーター救出を行いました。 大量の写真データです。 しかしファイル名に日本語が含まれておりWindows7上では開く事が出来ません。 knoppixに戻りファイル名を数字に変更すると開く事ができます。 ただ大量にあるので一個一個は大変です。 現在のファイル名は??2001.jpg みたいな規則性があります。先頭に??が付いています。 knoppixかubuntuで一括変更する方法はないでしょうか?

  • EXCEL マクロ 自動でファイル名をつける方法を教えてください 

    もともとあるファイルの一部のシートを新規ファイルで保存し、そのファイル名を自動でつけたいのですが。。。 そのファイル名は、新規ファイルのシートのセルを参照+既定の単語をつなげて作りたいのです たとえば  シート1のセルB3の数字+"見積書" というかんじです。 (できれば、ファイルを保存する場所も指定したいです) 元のファイルから新規ファイルに動かす動作は自動記録で作れたのですが、ファイル名のつけ方がわからず・・・ よろしくお願いします! **ファイル名のつけ方がわかったら、新規ファイルを発生させたマクロとファイル名をつけるマクロを合体させれば一連の流れでいきますでしょうか?

専門家に質問してみよう