
EXCELのファイル形式を変更して保存を大量に毎月手動で行っています。
社内システムのセキュリティの関係で新規ソフトを入れることはできません。こんな状況下で自動化する方法はありませんか?
【状況】フォルダ大分類1,2の中に中分類フォルダA,B,C…があり、小分類フォルダa,b,c…がある。各小分類フォルダa,b,c…の中にCSVファイルを格納し、ファイル名はそのままでCSVファイルをEXCEL形式ファイルへと変更して保存したい。
CSVファイルの格納は人がしますが、格納後の作業を自動化する方法のアドバイスを頂きたいです。
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
下記URLのページが参考になると思います。
https://qiita.com/y-matsunaga/items/7d2a146c2849 …
プロシジャ「データ取得」の前半で、今処理しているフォルダのサブフォルダについて順次「データ取得」を繰り返しています。後半のForループのところが今処理しているフォルダ内のファイルの処理なので、ループの中身の最初に
If Right(FileObj.Name,4) = ".csv" Then
の後にCSVからExcelにする処理を入れればOKです。なお、処理対象のファイル名は先のページではOpenFileName(n)でしたが、ここでは、WKDirPath & "\" & FileObj.Nameとなります。
No.6
- 回答日時:
とりあえず、一つのフォルダのCSVファイルをExcelにするのは下記ページ方法でできます。
https://moripro.net/vba-convert-csv-to-excel/
複数のフォルダについて順次なにかの処理をするのも解説しているページがあるので検索して、組み合わせればOKです。見つけられないようならまた聞いて下さい。
No.5
- 回答日時:
マクロによる処理で良いと思いますが、
マクロの使い方や、すでに組まれたマクロの動作を理解していない場合は
導入しないことを勧めます。
理解できていない場合、処理に関する変更が生じた場合に対応できなくなります。
……まあ、目の前にある問題が今だけでも解決すれば良いという刹那的な考えであれば無理にとは言いません。使ってください。
・・・
「自分はこのくらい簡単にマクロにできるぜw」
とマクロを載せても良いのですが、その後のフォローができないのであれば
できるだけ控えるようにしましょう。
特にマクロ素人さんに向けてはご法度です。
・・・
そんなわけですので、業務として行っているのであれば
【上司に相談して】
マクロ導入をお願いしてください。
自力でマクロを作れない場合は外部業者に制作依頼をすることになりますが、
仕様変更が生じた時には容易に修正してもらえます。
('ω') その結果、質問者さんのお仕事がなくなるわけですが…。
No.4
- 回答日時:
CSVファイルをExcel形式に変換する作業を自動化するには、Pythonを使ったスクリプトを作成するのが一般的な方法です。
特に、`pandas`ライブラリと`openpyxl`ライブラリを使うと簡単に実現できます。以下に、指定されたフォルダ構造に従ってCSVファイルをExcel形式(.xlsx)に変換するスクリプトの例を示します。
### 必要なライブラリのインストール
まず、必要なライブラリをインストールします。
```bash
pip install pandas openpyxl
```
### Pythonスクリプト
```python
import os
import pandas as pd
def convert_csv_to_excel(root_dir):
for big_category in os.listdir(root_dir):
big_category_path = os.path.join(root_dir, big_category)
if os.path.isdir(big_category_path):
for mid_category in os.listdir(big_category_path):
mid_category_path = os.path.join(big_category_path, mid_category)
if os.path.isdir(mid_category_path):
for small_category in os.listdir(mid_category_path):
small_category_path = os.path.join(mid_category_path, small_category)
if os.path.isdir(small_category_path):
for file in os.listdir(small_category_path):
if file.endswith('.csv'):
csv_file_path = os.path.join(small_category_path, file)
excel_file_path = os.path.splitext(csv_file_path)[0] + '.xlsx'
# CSVファイルを読み込んでExcel形式で保存
df = pd.read_csv(csv_file_path)
df.to_excel(excel_file_path, index=False)
print(f"Converted: {csv_file_path} to {excel_file_path}")
# 使用するルートディレクトリを指定
root_directory = 'path/to/your/root/directory'
convert_csv_to_excel(root_directory)
```
### スクリプトの説明
1. **ライブラリのインポート**:
- `os`: ディレクトリ操作を行うための標準ライブラリ。
- `pandas`: CSVファイルを読み込み、Excelファイルに書き出すためのライブラリ。
2. **convert_csv_to_excel関数**:
- `root_dir`から始まり、大分類フォルダ、中分類フォルダ、小分類フォルダを再帰的に探索します。
- 各小分類フォルダ内のCSVファイルを見つけて、`pandas`を使ってExcel形式(.xlsx)に変換します。
3. **使用方法**:
- `root_directory`変数にルートディレクトリのパスを指定し、`convert_csv_to_excel`関数を呼び出します。
### 実行手順
1. 上記のスクリプトをPythonファイル(例: `convert_csv_to_excel.py`)として保存します。
2. ターミナルまたはコマンドプロンプトを開き、スクリプトが保存されたディレクトリに移動します。
3. 以下のコマンドを実行します。
```bash
python convert_csv_to_excel.py
```
これで、指定したルートディレクトリ内のすべてのCSVファイルがExcel形式に変換され、同じフォルダ内に保存されます。
No.3
- 回答日時:
Excel VBAですね。
各フォルダのCSVファイルを順次オープンしてExcel形式で保存することができます。また、サブフォルダについても同じ処理ができます。Web検索すれば参考になるページがいくつも見つかります。No.2
- 回答日時:
Excelは入っているようですので、Excel VBAの利用が社内で許可されていて、VBAマクロを多少なりと書けるならVBAの利用をお勧めします。
VBAはそのExcelファイルだけでなく他のファイルを操作することもできるので、VBAマクロのみ保持したExcelファイル(拡張子.xlsm)を作って、VBAマクロでCSVファイルの探索とExcelファイルへの変換を作成します。
No.1
- 回答日時:
>>社内システムのセキュリティの関係で新規ソフトを入れることはできません。
こんな状況下で自動化する方法はありませんか?新規ソフトを入れることができないとなれば、最初から入っているソフトを利用して対応するしかないですね。
多くの企業では、WindowsOSで広く使われている、VBScriptを使って処理の自動化を行っています。
でも、このやり方は、サイバー攻撃によく使われているので、マイクロソフトは昨年だったと思いますが「VBScriptは非推奨とします。将来的には、サポート外とします」と発表しました。
その代わりとして、PowerShellというソフトを使うことをマイクロソフトは推奨しています。
ですので、PowerShellを使って、プログラミングして自動化することになります。(PowerSellは管理者が許可しないと動作しない、そして多くのパソコンでは許可されていない)
PowerShellは、csvファイルの処理ができますが、たぶんエクセルファイルの形式での処理できると思います。また、メール送信とか、Webアクセス、Access、SQLServerアクセスも可能です(Oracleアクセスは無理かも?)ので、たぶんやりたいことはだいたい可能ではないかと思います。
もし、やりたい処理が複雑な場合、C#が使えるプログラマさんがいれば、その部分だけ作成して、モジュール追加も可能と思えます。モジュール追加は、インストール作業ではないですからね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
exeファイルの中身を見ることは...
-
windowsでpkgファイルを開きた...
-
jlbという拡張子のファイルを開...
-
拡張子 .lhdはどのようなソフト...
-
拡張子.hocのファイルを見る方法
-
拡張子.binの画像ファイルの開...
-
inddという拡張子ファイルを開...
-
リンク先のファイルを一括ダウ...
-
ISOファイルとMDSファイ...
-
ゲームからCGを抽出
-
数個のWord、Excelファイルを上...
-
MP2から静止画を取り出すソフト...
-
バナーの作り方
-
tifファイルが開けない
-
ファイル検索ソフトEverything ...
-
フォルダのマスクを選択(マス...
-
JPEGファイルをJPEGで圧縮し直...
-
BOX(ファイル共有)でエクセル...
-
Docuworksで文書の一括回転操作...
-
拡張子が「.dsn」のファイルを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
exeファイルの中身を見ることは...
-
jlbという拡張子のファイルを開...
-
windowsでpkgファイルを開きた...
-
拡張子 .lhdはどのようなソフト...
-
inddという拡張子ファイルを開...
-
Docuworksで文書の一括回転操作...
-
リンク先のファイルを一括ダウ...
-
BOX(ファイル共有)でエクセル...
-
ファイル検索ソフトEverything ...
-
拡張子 「LPD」って なにで編...
-
txtファイルから特定の文字列が...
-
Win10でショートカットファイル...
-
FileVisorは今でも使えますか?
-
拡張子がpxd開きたい
-
動画ファイルにパスワードをつ...
-
数個のWord、Excelファイルを上...
-
mdsファイルを開くにはどうすれ...
-
TSファイルを劣化無くMPEG4にす...
-
拡張子.hocのファイルを見る方法
-
CDのimgからcue作成
おすすめ情報
御回答ありがとうございます。
マクロだのVBAだの初心者であります。フォルダ内のCVSファイル(フォルダ階級問わず)をEXCELファイルとして名前を付けて保存をするといういちばん簡単なサンプルデータを掲載してあるURLリンクがあれば教えてください。
ありがとうございます。これはフォルダ内のみに実行のものですよね?親フォルダ内にあるフォルダの中の全ファイルへ適用はどうやるのでしょうか?
ネット検索していますが自分が思っているものが見つかりません