dポイントプレゼントキャンペーン実施中!

EXCELのファイル形式を変更して保存を大量に毎月手動で行っています。
社内システムのセキュリティの関係で新規ソフトを入れることはできません。こんな状況下で自動化する方法はありませんか?
【状況】フォルダ大分類1,2の中に中分類フォルダA,B,C…があり、小分類フォルダa,b,c…がある。各小分類フォルダa,b,c…の中にCSVファイルを格納し、ファイル名はそのままでCSVファイルをEXCEL形式ファイルへと変更して保存したい。

CSVファイルの格納は人がしますが、格納後の作業を自動化する方法のアドバイスを頂きたいです。

  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (5件)

マクロによる処理で良いと思いますが、


マクロの使い方や、すでに組まれたマクロの動作を理解していない場合は
 導入しないことを勧めます。

理解できていない場合、処理に関する変更が生じた場合に対応できなくなります。

……まあ、目の前にある問題が今だけでも解決すれば良いという刹那的な考えであれば無理にとは言いません。使ってください。

・・・

「自分はこのくらい簡単にマクロにできるぜw」
とマクロを載せても良いのですが、その後のフォローができないのであれば
できるだけ控えるようにしましょう。
特にマクロ素人さんに向けてはご法度です。

・・・

そんなわけですので、業務として行っているのであれば
 【上司に相談して】 
マクロ導入をお願いしてください。
自力でマクロを作れない場合は外部業者に制作依頼をすることになりますが、
仕様変更が生じた時には容易に修正してもらえます。

 ('ω') その結果、質問者さんのお仕事がなくなるわけですが…。
    • good
    • 0

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形式に変換され、同じフォルダ内に保存されます。
    • good
    • 0

Excel VBAですね。

各フォルダのCSVファイルを順次オープンしてExcel形式で保存することができます。また、サブフォルダについても同じ処理ができます。Web検索すれば参考になるページがいくつも見つかります。
    • good
    • 0

Excelは入っているようですので、Excel VBAの利用が社内で許可されていて、VBAマクロを多少なりと書けるならVBAの利用をお勧めします。


VBAはそのExcelファイルだけでなく他のファイルを操作することもできるので、VBAマクロのみ保持したExcelファイル(拡張子.xlsm)を作って、VBAマクロでCSVファイルの探索とExcelファイルへの変換を作成します。
    • good
    • 1

>>社内システムのセキュリティの関係で新規ソフトを入れることはできません。

こんな状況下で自動化する方法はありませんか?

新規ソフトを入れることができないとなれば、最初から入っているソフトを利用して対応するしかないですね。
多くの企業では、WindowsOSで広く使われている、VBScriptを使って処理の自動化を行っています。
でも、このやり方は、サイバー攻撃によく使われているので、マイクロソフトは昨年だったと思いますが「VBScriptは非推奨とします。将来的には、サポート外とします」と発表しました。

その代わりとして、PowerShellというソフトを使うことをマイクロソフトは推奨しています。
ですので、PowerShellを使って、プログラミングして自動化することになります。(PowerSellは管理者が許可しないと動作しない、そして多くのパソコンでは許可されていない)
PowerShellは、csvファイルの処理ができますが、たぶんエクセルファイルの形式での処理できると思います。また、メール送信とか、Webアクセス、Access、SQLServerアクセスも可能です(Oracleアクセスは無理かも?)ので、たぶんやりたいことはだいたい可能ではないかと思います。

もし、やりたい処理が複雑な場合、C#が使えるプログラマさんがいれば、その部分だけ作成して、モジュール追加も可能と思えます。モジュール追加は、インストール作業ではないですからね。
    • good
    • 0

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