![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
EXCELのファイル形式を変更して保存を大量に毎月手動で行っています。
社内システムのセキュリティの関係で新規ソフトを入れることはできません。こんな状況下で自動化する方法はありませんか?
【状況】フォルダ大分類1,2の中に中分類フォルダA,B,C…があり、小分類フォルダa,b,c…がある。各小分類フォルダa,b,c…の中にCSVファイルを格納し、ファイル名はそのままでCSVファイルをEXCEL形式ファイルへと変更して保存したい。
CSVファイルの格納は人がしますが、格納後の作業を自動化する方法のアドバイスを頂きたいです。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_04.png?5a7ff87)
- 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
- 今の自分の気分スタンプを選ぼう!
A 回答 (5件)
- 最新から表示
- 回答順に表示
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- Excel(エクセル) Excelについて。 Excelからcsv変換したいのですが、 やり方はファイル→名前をつけて保存→ 7 2022/07/27 01:10
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- その他(ソフトウェア) EXCELファイルの拡張子変更について教えてください。 複数のフォルダ(親フォルダ⇢小フォルダ①、② 5 2024/06/06 11:15
- XML エクセルのマクロについて教えてください。 3 2023/02/06 09:06
- Excel(エクセル) [クイックアクセスツールバー]の設定ファイルの格納場所について、 5 2023/04/21 14:43
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Python CSVファイルについて
-
MF-COBOL COBOL 違い
-
「ネット検索だけでは十分な情...
-
Microsoft 365 の購入の誘いが...
-
bashでコマンドが見つかりませ...
-
ユーザ権限でソフトを起動する...
-
WindowsからSSHでサーバーにあ...
-
QRコード運用方法について詳し...
-
MacのPCでわファイルを検索した...
-
コマンドプロンプトまたはpower...
-
バッチファイルで特定のファイ...
-
pipインストール時にプロトコル...
-
44歳でIT業界への転職
-
三菱 Got 1000
-
画面設計と帳票設計の違いを教...
-
試用期限付きアプリの使用期間...
-
Windowsバッチファイルでリモー...
-
Windows serverでマルチキャス...
-
巻取り長さを一定にする
-
bashで15分前と現在のエポック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
44歳でIT業界への転職
-
Python CSVファイルについて
-
MF-COBOL COBOL 違い
-
WindowsからSSHでサーバーにあ...
-
Microsoft 365 の購入の誘いが...
-
自作pcについて
-
プロダクトキー
-
マイクロソフトから通知メール...
-
バッチファイルで特定のファイ...
-
Windowsバッチファイルでリモー...
-
三菱 Got 1000
-
bashでコマンドが見つかりませ...
-
三菱のデバイスネットユニットQ...
-
画面設計と帳票設計の違いを教...
-
試用期限付きアプリの使用期間...
-
おんどとりWebStorage APIから...
-
なにこのQRコード?!!
-
【至急】.htaccessによるディレ...
-
Windows serverでマルチキャス...
-
bashで変数に()を含む文字列を...
おすすめ情報