質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.84%

  • Ruby

    6785questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Python

    6424questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Excel

    1349questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • PowerShell

    303questions

    Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

業務効率化(自動化)

解決済

回答 10

投稿

  • 評価
  • クリップ 4
  • VIEW 3,584

mats

score 26

仕事で非効率な作業をしていると感じることが多々あります。
(むしろそればかりです)

例えば毎回同じ作業の繰り返し。
・CSVから特定のデータを抜いてきて別のExcelやテキストに起こす
・apatch等のログのエラー確認
・社内のWebサイトから必要な情報を確認してテキストに起こす
等々上げるときりがありません。

このような作業を無くすためにスクリプトがあると思うのです。
皆さんどのような対策をしていますか?
そのスキルを習得するための方法は何ですか?

最近書店によくある
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
を見てPythonって素敵だなって思いました。
実際本は買ってませんがPythonを触ってみるとソースもきれいで書きやすい気がして
本格的なプログラマーでなくてもできる気がします。

何かお勧めの方法があれば教えてください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 10

checkベストアンサー

+6

その問題意識はすばらしいと思います。そして、文法が平易で汎用性に富むpythonはとても良い選択肢だと思います。
まずは卑近な課題解決から挑戦してみればいいと思います。 
例えばcsv⇔xlsxの一括変換みたいな作業は比較的簡単に挑戦できる課題でしょう。

習うより慣れろで、とにかくやってみればいい。

マニュアルや教則本ばかりいつまでも読んで人がいる様ですが、英和辞典を端から端まで読んでも英会話が出来るようになる筈がないように、マニュアルや教則本ばかり読んでいても始まりません。  

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/24 22:16

    なるほど。
    確かにマニュアルを熟読しても仕方ないですね。
    直近の課題に習うより慣れろの精神で取り組んで行き詰ったらマニュアルなり
    書籍なりWebなりで調べていこうと思います。
    まずはPythonを使って簡単な内容から取り組んでみようと思いました。
    アドバイスありがとうございました!

    キャンセル

+3

おそらく、

このような作業を無くすためにスクリプトがあると思うのです。
皆さんどのような対策をしていますか?
そのスキルを習得するための方法は何ですか? 

と問題を抱えていて、解決しようとするために、

何かお勧めの方法があれば教えてください。

となっていると思います。

どうするかですが、KojiDoiさんも答えていらっしゃいますが、ひたすら書いて動かすです。「習うより慣れろ」で、ひたすら実践することが何よりも身につく近道だと思います。
ただ漠然と書籍やネットの情報を眺めて理論だけを見るよりは、実際に書いて動かした方が自分なりの理解もできますし、ただ読むよりも断然身に付きます。
また、具体的な問題に直面しているので、

・問題があるから解決したい。
     ↓
・そのためにどうするか

というのが、直感的(と言うか具体的)に見えてくるので、学習するにしてもモチベーションが保てると思います。たとえわからないことが出てきても、自分の問題解決に直結しているので、問題をより具体化できて、解決策を探したり、ここのようなサイトでも質問がしやすくなると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/24 22:14

    習うより慣れろですね!
    多くの人から同じアドバイスを頂いているのでまずは
    目先のことからやってみようと思います。

    キャンセル

+2

業務効率化を行うには
1,業務分析
2,要件の整理
3,システム設計
4,コーディング
といった段階を踏む必要があります。

そのうち、非エンジニアが自身の業務として意味を持つのは、1,2です。
3,4はエンジニアが担当しなければ、効率的ではないですし、業務としては無駄です。

システム制作を今後の目標とするのであれば別ですが、そうでないのであれば
・1,2を自身で効率よく進められるスキルを身につける
・それを稟議にかけ、通すための調整ができるようになる
といった方向が、非エンジニアの業務効率化に対しての正しい姿勢だと思います。

趣味でプログラミングを学ぶことは否定しませんが、それを業務に活かそうとすると、かなり「効率的ではない」ことをしなければならないですし、おおよそ無駄な時間を過ごすことになります。

目的と手段を取り違ってしまう、よくあるパターンだと思うので、ちゃんと考えてみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/24 22:12

    アドバイスありがとうございます!
    目的と手段は常に考えないといけませんね。

    ただ今行いたいのはプログラマが行うような大きなシステムではなく
    数十行くらいのちょっとしたスクリプトで業務効率化を目指している次第です。

    キャンセル

+1

それぞれの作業によってやり方が違うと思いますが、基本的にはコンソールとExcelで作業しましょう。

コンソールの作業はコマンドのログをとっておきます。EXCELの作業はVBAに置き換えることができます。
日々作業を記録して、改善を続ければ自動化はそれほど面倒ではありません。

Pythonも悪くない方法だと思いますが、日々作業をスクリプト化するには上記の作業がある程度慣れてからの方をお勧めします。

というのも、効率化が目的のわりに手の混んだ万能のソフトウェアになっている例をいくつも知っているからです。この手のツールは必要になってから改善した方が費用対効果が良いという経験則です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/24 22:04

    確かに。効率化を目指したはずが返って非効率になってるってよくありますね(笑)
    VBAは昔少しやっていたのでExcel関連のものはまたVBAを使ってみようと思います。

    キャンセル

+1

pythonもいいですが、mysqlの知識を身につけるのもいいかと思います。csvをmysqlに流すことができれば、SQLで参照したときもすっきり整理できますし、ソートもできます。

apacheのログもphpやpythonなどのスクリプト言語を使えば、web画面に出すという運用も可能ですし、excelを多用する職場であれば、phpexcelというモジュールもあるので、それでweb運用してもいいかと思います。

pythonはインデントがキチンと書かれていないと動かないので、慣れないうちはイライラすることもあるかもしれませんが、可読性の高いコードになりますので、選択としてはいいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/24 22:02

    SQLですか。確かにcsvをmysqlに取り込む技術がつけば、幅がぐっと広がりそうですね!
    pythonはインデントがキチンと書かれてないと動かないところが、きれいなソースに見えて
    魅力を感じています。
    取り合えずPythonとmysqlの勉強をしてみようと思いました。ありがとうございました。

    キャンセル

+1

自動化の実装自体は比較的容易なので、
プログラミング入門に向いているジャンルだと思います。
しかし、設計と運用には独特のノウハウがあるでしょう。

そもそも、なにをどれだけ自動化するかには正解がありません。
そこで、プログラムを書く前の業務分析が一番重要だったりします。

「このデータを調べる作業と、こっちは同じことしてるよね」といったことで、
場合によっては、プログラムを一行も書かなくても効率化できたりします。

また、一万行で一本のプログラムではなく、百行で百本のプログラム、
とバラバラに作る必要があるかもしれません。自動化対象の業務に変更がつきものなので。

そういうプログラムの作り方には「UNIX哲学」の考え方が有効だと思います。
なるべくGUIとDBを避けて、シェルスクリプトを使おう、みたいな話です。

GUIとDBを避けるには、ExcelのVBAのようなソフトのマクロ言語を使う方法がひとつ。

それから、PythonやRubyのようなLLと、WindowsならPowerShellを使う場合、
キーボードの入力を少なくするために、設定ファイルを読み取ることが多いと思います。

このとき、(内部)DSLをうまく使うと、記述量が大幅に減ることがあります。
要するに、RubyならRubyの文法を簡略化して、設定ファイルを書いてしまう方法です。

そして自動化は、アジャイルの手法と相性が良いでしょう。
たんなる書きっぱなしではなく、リファクタリングしたり、テストを書いたり、
ライブラリ化したりと、開発を反復して深化させていきます。

最後に、自動化は習うより慣れろが有効です。入門書を一冊読んだ後は、
手動が入る半自動化でもいいので、できるところから始めるといいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/24 21:59

    ありがとうございます!
    UNIX哲学ですか。参考になります。
    仕事は主にクラウドの設計構築なので何百行のプログラムを書く気はありません。
    ファイルの入出力等が特に苦手なんですよね。。
    ほかの方もアドバイスしてくれているように習うより慣れろで簡単なところから
    実践してみようと思います!!

    キャンセル

0

USP友の会に入会して、シェル芸を極めれば、そんな悩みもスッキリ解決です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

言語はPythonではなくてもなんでも同じようなもんですよ。
というかPythonは数年前まではマイナーだったはずだけど機械学習などでよく使われてたので最近はメジャーになった。
その本書いた人もそっち方面からなので…。
Pythonが得意だからPython使っただけでテキストの処理くらいならどの言語でも大体同じです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/24 22:11

    確かに、言語はどれでもいいですね。
    ただPythonコードがきれいで見やすいなーって思った次第です。
    機械学習とかはプログラマではないのであまり興味はないです。

    キャンセル

0

Pythonからは外れますが、今から事務作業自動化を検討されるなら「RPA(ロボティック・プロセス・オートメーション)」がキーワードです。

昔は個別にプログラムを作るので、どうしても誰が開発保守するのかとか、内部統制とかが中にういてしまいます。最近は実用レベルでプログラムを自動生成できるようになってきており、RPAソリューションが発売されています。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/24 22:10

    RPA初めて知りました。なんか凄そうですね!
    新しい分野にアンテナを張るのは大切なことですね。
    規模の小さい会社なので導入は難しいかもしれませんが
    今後も気にしていきたいです。ありがとうございました!

    キャンセル

0

Microsoft Office Execlのマクロ言語もVB様式からPython様式へは?とのアンケートが始まりました。
How can we improve Excel for Windows (Desktop Application)?

よって、言語の選択からすれば正解かと思います。

ただし、Excelを使って業務をしていれば、Excel VBA でマクロを作る事をお勧めします。
まったく投資がいりませんし、とても簡単なプログラミング言語かと思います。

質問にあった自動化したいと思っている内容ですが、
>・CSVから特定のデータを抜いてきて別のExcelやテキストに起こす
>・apatch等のログのエラー確認
>・社内のWebサイトから必要な情報を確認してテキストに起こす

これらは、内容によりますが、おそらくExcelだけで自動化できます。

Excel VBAの習得は、有料のセミナーを受けるより1冊くらい書籍を買った方が良いと思います。
しかし、Excel VBAの書籍は、沢山ありすぎて、選ぶことも難しいのが実態です。
自分の意見としては、著作者で選ぶと良いと思います。
本を書く人は、大概自分のホームページを持っているものです。
ホームページから、書籍を選択するのも一考です。

でも、正直、ほとんど役に立たない内容です。先ずは、やってみる!書いてみる!動かしてみる!です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/24 22:06

    その記事見ました!Pythonをしっかり見たのもその記事きっかけです!
    VBAを推薦してくださる人が多いですね。昔少しやっていたので思い出しながら
    VBAもやってみようと思います。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.84%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Ruby

    6785questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Python

    6424questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Excel

    1349questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • PowerShell

    303questions

    Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。