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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

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

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

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

Q&A

解決済

8回答

2457閲覧

VBAに代わるより良い業務ツール開発言語でオススメがあったら教えてください

yusuke23888834

総合スコア14

Ruby

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

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

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

0グッド

4クリップ

投稿2017/08/16 14:40

###前提・実現したいこと
現在、業務で使用するツールをVBAにより作成しております。
しかし、処理速度やUIの関係上別の言語にてツールを作成することを検討しております。
そこで、オススメの言語があったら教えてください。
【作成ツール概要】
・小規模開発
・テキストデータ取得
・タイムテーブル作成
・タイムテーブル内編集
・動的UI
以上のような内容でオススメ言語をお願い致します。
###発生している問題・エラーメッセージ

エラーメッセージ

###該当のソースコード

ここにご自身が実行したソースコードを書いてください

###試したこと
私なりの検討では、RubyかJavaScriptが候補に挙がっております。
どちらも詳しくはありませんが、開発規模、エクセル処理、動的UI等を考慮するとこの2つは有力かと思った次第です。

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答8

0

かなりExcel+VBAの利用暦が長いのであれば、できるだけ似通ったものが良いと推測します。
Googleのspreadsheet+GoogleAppsScriptはいかがでしょうか。

ほぼExcelのような見た目のままJavaScript(を拡張したような言語)で処理が記述できます。

SpreadSheetの概要

GoogleAppsScriptの概要

タイムテーブルと動的UIというのは、何を指しているのかもう少しご説明いただけると助かります。

投稿2017/08/16 14:55

akabee

総合スコア1947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yusuke23888834

2017/08/18 16:15

そのようなものがあるのですね! 調べてみようと思います。 処理の内容例としましては、 「データ抽出(DB/csv)→データをもとにn行5列のテーブル(列によって行数が異なる)を作成→テーブル内を編集」といった感じです。 Excelで実現するとなると1行を最小高さにして必要な分だけ結合するという処理が必要となり大量にこれを行うと処理が重すぎるということになってしまうのです…知識が。
akabee

2017/08/20 09:17

詳細を聞かないとなんとも言えませんが、そのような処理であれば専用のアプリを開発するよりもひとまずはExcelを利用しつづけたほうが良いように思いますね。 必要な分だけ結合する、という「必要な分」というのを現状どのように判断しているかがまず1つ目のポイントです。機械的に十分に判断できるのであればいいですが。 2つ目のポイントとして、結合というのはセルの結合のことですよね?左右のセルを必要に応じて結合しなければならない処理というのは、ちょっとイメージが沸きませんし、そのような業務処理が必要となる場面も思い浮かびません。つまり世の中に必要とされていない処理なので、そのような処理ができる汎用的なツールも基本的に存在しないということです。またツールを自作するにしても、列によって行数が異なるデータというのは非常に扱いづらいです。(なんのデータですか?) 恐らくExcelだからやれることがふんだんに盛り込まれた業務処理ではないかと思いますので、Excel以外でやろうとするとかなり苦戦を強いられると予想します。 まずは現状の業務処理の内容が本当にそれで良いのか、という業務設計が必要と思います。 今やっていることをそのまま効率化、となるとなかなか難しいはずです。 現状の少ないヒントだけで個人的な意見を述べさせて頂くと、まずはExcelを使い続けた上で、現状のデータ処理をより効率的な事務処理になるよう見直すことが必要と推測します。
yusuke23888834

2017/08/20 14:11

だいぶおっしゃる通りかもしれません。 内容としては普段の仕事等のタイムスケジュールだと思って頂ければと思います。 縦を時間軸、横を日付だとすると始業~終業は固定ですがタスク個数や各タスクの時間はそれぞれ違うため、1タスクのブロックごとに大きさ(高さ)はかわってきますよね。それをExcelでやる際に使用する縦のセル個数を固定して1タスクの長さをセルを縦に結合することで表現しております。
akabee

2017/08/20 22:17

なるほど勤怠系のデータですか。 一般的にデータ数が膨大になりがちで難しいデータ処理に分類されます。 そうなるとツールを自作するのも良いですが、勤怠管理系のパッケージ等は世の中に割とありますし、最近はクラウドサービスで小規模でも利用できるものが多くありますので検討できるのではないかと思います。 例→https://jobcan.ne.jp ただしパッケージを利用する場合は現状の業務処理そのままではなくパッケージに合わせることになりますのでそこだけ注意しなければなりませんね。
guest

0

開発に web の知識が必要ですが、HTML と JavaScript、CSS で開発できる electron は如何でしょうか。
VBA のスキルとはだいぶ掛け離れますが、ライブラリも豊富なので VBA にしか出来ない物はほぼ無いといっても良いかと思います。VBA から扱っていた COM (CreateObject で作っている物) も win32ole というパッケージを使えば JavaScript から扱えます。
画面は自由度高いので VBA より優れていますし、COM を使わないのであればマルチプラットフォームに配る事も出来ます。
さらに言うとインストーラを作る事も出来るので一般ユーザ向けのアプリケーションにも向いています。ちなみに僕が作った electron アプリをプログラミングを知らない息子が使っています。
VBA を捨てて一番問題が起きにくいとすれば electron が良いのではと思います。

投稿2017/08/16 16:32

mattn

総合スコア5030

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yusuke23888834

2017/08/18 16:29

ありがとうございます。 Electronを使用するとどこまでWebアプリのようなリッチなものができるのかはイメージできておりませんが今回だけでなく今後も非常に役立つスキルとなる気がします。 もう少し詳しく調べてみようと思います。
guest

0

ACCESSは対象から外れました?
追記

akabee様へのコメントも見ました。

現状はエクセルなのでスタンドアロンで利用されていると思いますが、複数名が使用されているのでしょうか?
複数名の場合サーバーを立てますか?それともスタンドアロンとしてプログラム配布?

また、RubyかJavaScriptと言われているので、webページを画面とするということになるかと思いますが、使用するブラウザやバージョンによって同じコードでも動作しなかったりすることがあるのはご存知ですか?

その他、CSVファイルの操作がありますが、基本的にブラウザを経由してローカル・リソースにはアクセスできません。
(それができちゃうと、どこぞのサイト開いたらハッキングされた、なんてことになりますから)
ファイル操作をやるとしたらサーバーを立てそのサーバー経由でということになります。
サーバーは物理的に分かれていなくても大丈夫ですが、webページを画面にするなら、webシステムの環境も含めて構築する必要があるかと思います。
(webページだと、HTMLやCSSとかも覚える必要が出てきますし)

運用方法まで変更しないのであれば、Accessには表形式でデータ操作可能なデータグリッドコントロールがあり、データとリンクするだけで直接編集できますのでエクセルでテキストボックス貼り付けたフォームを使用していて重いとかであれば改善されると思われます。

投稿2017/08/16 16:36

編集2017/08/19 07:45
sazi

総合スコア25184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yusuke23888834

2017/08/18 16:39

ありがとうございます。 完全に対象から外れたわけではないのです。しかし、今回はデータを整形し、画面に表現してGUIによる操作を可能にすることが目的であるため、システム開発を行うプログラム言語として最適な言語はなにかを求めているのです。
sazi

2017/08/19 07:33 編集

長文になったので、追記しました。
yusuke23888834

2017/08/20 04:53

スタンドアロンとしてプログラム配布を考えております。 そのため排他制御においてもそこまでは考え込んでいないです。 webアプリにしたいというよりは、JavaScript等のリッチなUIに魅力を感じただけであり、実際はサーバーを立てる等の知識が乏しいためそちらは避けたいなとは思っております。 そのため、RubyやJavaScriptでVBAよりもリッチなUIでサクサク動くネイティブアプリを作成できればそれがいいと思っています。 Accessも直接データをいじれるということで調べてみようと思います。
guest

0

ベストアンサー

もともとが方眼紙Excel + VBAという事であれば、有償商品ですけどForguncyという選択肢もあります。Forguncyはノンプログラミング開発ツールと言われる分野の製品のようで、他にもFileMakerkintoneあたりが有名らしいです。いずれも有償ですが、元々なんらかのプログラミング言語に精通していなければ、選択肢としては有りだと思います。

他の選択肢として、VBAが言語としていらついて困ると言うだけなら、LibreOffice + Pythonという手もあります。ただし、PythonのコーディングをLibreOffice上でできないなどの問題があるため、万人にお勧めできるものではありません。
※ VBAにいらついているのは、私の個人的な感想です。

他、雑多に

  • ElectronはWebページを作ったことがあることが前提です。

HTMLやCSSは独特のUIの作り方になるため、それなりに知識が無いと期待通りのものを作ることは難しいです。teratailでもWebページのデザインがー、CSSがー、って質問がよくあがりますが、Electronも同様なことが起きると言うことです。
なお、Electronを配付する場合、かなり大きいですので、ご注意ください。

  • .NETにするなら、C#をお勧めします。

現在のVB(VisualBasic)はVB.NETとも言われ、VBAの基になったVB6以前のVBとは異なるものです。文法の表記方法だけVB6から継承し、.NET向けに作り直したのがVB.NETだからです。私の感覚的にC++とC#の違いぐらい、VB6以前とVB.NET以降が違います。
つまり、何がいいたいかというと、VBAに似ていると言うだけでVB.NET以降のVBにしてしまうと、その違いに戸惑って、うまくいかない可能性が高いと言うことです。これなら、全く新しいものという覚悟でC#を学んだ方が、戸惑いも少なく、習得速度も速いと思っています。
なお、どちらがより使われているかについては、C#の方がランキング等で上位になっています。かつてMicrosoftは、他よりも使われていないという理由でJ#(Javaっぽい.NET言語)を抹消した実績がありますので、数年後にVBも同じ道を辿る可能性が0ではないと思われます。

  • .NETにするときの開発環境は有償の製品が必要になる可能性があります。

Visual Studio Communityを企業で使う場合は制限があります。企業規模によっては全く使用できない場合もありますので注意が必要です。Visual Studio Expressやコンパイラ等のセットであるMicrosoft Windows SDKは無償で使えますが、機能はVisual Studio Communityに劣ります。
Visual Studio Communityが使えないけどフルの開発環境が欲しい場合は、有償のVisual Studio Professionalになりますが、安くは無い金額ですので、ご注意ください。

  • デスクトップアプリでは無くWeb化も選択肢の視野に入れてください。

Web化した場合の利点は、配付が不要であると言うことです。端末で実行する必要がある業務アプリでは、そのアプリの配付方法が一番の問題になります。バグ修正後のバージョンアップを各従業員にお願いするとかはあり得ない方法です。
Web化すれば、Webサーバー側をアップデートするだけです。アプリの配付も要らず、URLを教えるだけで済みます。ただ、Webサーバーの運用管理が必要になりますので、既存の使えるサーバーがない場合や元々の規模が小さい場合は、コストが逆にかかってしまう可能性があります。

  • JavaやRuby等は実行環境の配付も考えなくてはならない。

Javaを動かすにはJREが必要です。Rubyを動かすにはRuby自体が必要です。一緒に配付するという手段もありますが、配布物が大きくなってしまいます。
なお、.NETはWindows標準で入っているバージョンに合わせれば、別途インストールさせる必要はありません。ただ、Windowsのバージョンによって標準の.NETが異なりますのでご注意ください。

投稿2017/08/20 08:46

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yusuke23888834

2017/08/20 15:15

あらゆる選択肢に対して解説をありがとうございます。 .NETを習得するよりもC#のほうが習得が早いかもしれないというのは意外でした。 上記を参考に検討を進めようと思います。
guest

0

VBAから別言語への検討とのことで、Excel等で限界を感じている場合は、最近はMicrosoftもクラウドに力を入れておりOffice 365だとOffice 365 APIというもので色々とできるみたいなので、VBAになれているのであればそのまま使っても良い状況では使い分けてもいいかと思います。
GUI画面を作るのであれば、Javasciptを覚えて、学習コストの比較的小さいVue.jsとElementというUIライブラリで業務画面を作ると結構使いやすいものがライブラリの組み合わせにあまり悩まずに手早く開発できると思います。
Element
サーバー側に関してはRubyであればRubyOnRails、PHPであればLaravel等を使うとあまり失敗しないと思います。

投稿2017/08/19 00:54

aro10

総合スコア4106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yusuke23888834

2017/08/20 04:59

なるほど! Rubyはやはりサーバー側の処理になるのですね。 Vue.jsというのを知りませんでした。electronを検討しようかと思っていたので、新たな武器を与えてくださり感謝いたします。
aro10

2017/08/20 12:12

Electronは実行環境なので、Vue.jsとも併用できます。 Javascriptのフレームワークは、他にもAngulerJS1または2、React等も人気なフレームワークなのでお近くに聞ける人がいればそれらを採用してもよいかと思います。 Rubyでデスクトップアプリを開発するライブラリなども一応ありますが、比較的情報が少ないので開発の苦労を考えるとHTML+Javascriptでフロントエンドを開発するほうが安定するかと思います。
yusuke23888834

2017/08/20 14:18

多くの情報ありがとうございます。 Rubyもきになってはいたものの現状ですとJavaScriptを詳しく見たほうがいいような気がしてきました!
aro10

2017/08/20 15:19

Rubyを覚えてさらにRuby On Railsを覚えてとなると心地よく開発できるようになるまでには相応の学習コストがかかるので、Rubyが初学であればデバッグの行いやすさや安定感に少し難がありますが作成ツールがあまり複雑でなければサーバー側もJavascriptで開発できるNode.jsとWebフレームワークは多く使われていて情報の多いExpress等にすることも検討してみても良いかもしれません。
yusuke23888834

2017/08/20 15:26

おかげさまで色々と整理が出来てきました。 ひとまずRubyは検討から外す決心も付きました ありがとうございます!
aro10

2017/08/20 16:18

失敗しにくい手順としてはまず技術の親和性の高いVBA+ACCESSの最新版で要件のシステムが作成できないか検証した後に他の技術を検討すると良いかと思います。 WebUIもC#でXAML等もそれぞれ特有の考え方や問題回避のノウハウ等あるので、見た目や操作性はよくなるかと思いますが習得するコストやバージョンアップ追随のメンテナンスコストが業務ツールで求める物を上回ってしまうかもしれません。
guest

0

Excel だけでなぜダメなのかよくわかりませんが、
難しいのであれば UWSC を検討してみるのはいかがでしょうか。

http://www.uwsc.info/
http://canal22.org/

投稿2017/08/20 09:29

SugiTK

総合スコア495

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

皆さんが直球の回答をしていますので、思い切った変化球で以下の言語を紹介します。

デラックス版 - なでしこ:日本語プログラミング言語

日本語でプログラムするという変り種のプログラム言語ですが、「オフィス連携」「データベース連携」「GUI画面作成」などの事務作業で役立ちそうな機能が色々入っているようです。

投稿2017/08/20 06:49

s-show

総合スコア203

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yusuke23888834

2017/08/20 14:42

名前だけは知っていましたがそんな色々できるのですね! 調べてみます。 ありがとうございます。
guest

0

VBAからの移行なら言語としての分かりやすさで言えばVB.NETが扱いやすいと思います。
GUIも組み立てやすいですし情報も豊富です。
動的UIというのがアニメーションでぐりぐり動くUIを指しているのであればJavaScriptを使うほうがとっつきやすいかもしれません。
JavaScriptを使うなら既に上がっておりますがelectronもいいかもしれないですね。

投稿2017/08/17 01:45

koronatail

総合スコア433

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yusuke23888834

2017/08/20 04:56

.NETはVBAと比較しても動作がそこまで早くないイメージなのですがそんなこともないのですかね。 electronはやはりいい感じなのであればそちらを少々いじってみようと思います。 Rubyもネイティブなアプリを作成できると思っていたのですが皆さんからあまりコメントがないようなのでJavaScriptにしようかなと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問