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

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

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

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

Java

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

Q&A

解決済

7回答

455閲覧

EXCEL+VBA以外の選択肢がほしい

yuujiMotoki

総合スコア90

VBA

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

Java

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

0グッド

1クリップ

投稿2018/03/02 00:28

仕事でEXCEL+VBAを使うことが多いです。

VBAの利点は、さくっとVISUAL BASIC開発環境があり、
イミディエイトウインドウやローカル変数を見たりするのが
容易で、実行しながら開発できたり、デバッグが楽だったりします。

もう、これでほとんどの業務をこなすことができるのですが、
やはり自分としては、他のプログラム言語を習得したいと思っています。

しかしながら、やはりやりたいことをすぐ実現するには、
EXCEL+VBAがこの上なく便利すぎて、
他の言語を覚えたり、習得するまでの時間がもったいない現状です。

いまのところ、仕事での作業としては
・毎日のアウトルックメール
・CSVファイルからのデータ抽出
・課題管理、タスク管理
です。

他の言語に手が出しにくい要員を分析してみると、
やはり開発ツールの導入が必要ということです。

できればEXCELにに付属しているVBAエディタで、
C#やJAVAやパイソンを動かせたらな・・・

いつもそういう風に思ってしまいます。
そんなことを思いながら、VBAをいじっている自分に
ときどきフラストレーションを覚えます。

こんな状況の中から、他の言語を習得されたり
業務で活かせるアプリケーションをさくっと
開発できる方はいらっしゃいますでしょうか?

共感した 0

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

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

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

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

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

m.ts10806

2018/03/02 00:44

共感した 0 ??? 何のことでしょうか。また、この質問の意図(どのような回答が欲しいのか)がよく見えません。仕事の依頼なのか、単なるアンケートなのか、具体的な回答が欲しいのか。
wakame

2018/03/02 11:26

共感した…はマルチポスト先の内容をコピペしたからみたいですね。
yuujiMotoki

2018/03/03 19:01

申し訳ありません。知恵袋では、あまり回答が望めませんので、こちらにマルチポストしてしまいました。以降はこちらで主に質問させていただくようにいたします
raccy

2018/03/03 22:38 編集

マルチポストが悪いのではなく、「理由なく最初からマルチポストすること」「マルチポストであることを黙っていること」「マルチポストした理由を書かないこと」についてマナーが悪いと言われることです。マルチポストであること、そのURL、そしてマルチポストした理由を質問に明記してください。「追記・修正依頼」は見ていない人も多いので、必ず「質問」を編集して追記してください。そうでなければ、あなたについてマナーが悪い人と思われ、回答する人から回答する気を奪います。
guest

回答7

0

他の言語を学びたい理由

  • なんとなく

学びたくない理由

  • 学ばなくても困っていない
  • 開発環境を導入したくない
  • 学習したくない

学ばなくていいんじゃないですか?

投稿2018/03/02 00:48

Zuishin

総合スコア28660

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

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

yuujiMotoki

2018/03/03 19:08

開発環境の導入をしたくないというのが、若干誤解があるのですが、EXCELだとファイルにぶら下がっているので、ソースを見失うことがない?というのが真意でしょうか。 あとPCがころころ変わるので、まずローカルのPCに開発環境を入れられないのが課題です(こそっといれることも、できなくはないのですが)
Zuishin

2018/03/03 22:28

ドキュメントを見失わないならソースも見失わないでしょう。 どうしても無理なら同じフォルダに入れておくだけのことです。 開発環境の導入もできるなら問題ないじゃありませんか。 現に知恵袋では勧められて二つ返事で快諾しています。 このような前言と矛盾する後出しの理由が突然出てきた時、「それは言い訳で本当の理由は別にある」と判断されます。 今挙げられた理由は意欲さえあれば何の障害もならない軽微なものですから。 本当の理由が何かは知りませんが、VBA を使用し続けることを望んでいて他の言語を始めるのに消極的なことだけはわかります。 ですから回答に修正はありません。
Zuishin

2018/03/03 22:38 編集

余談ですが、一言。 他の回答へのコメントで「PYTHONは所詮スクリプト」とありますが、比較対照が VBA と言うのは苦笑せざるを得ません。 比べるのもバカバカしいくらい Python の方が圧倒的に強力です。 VBA の方が「所詮マクロ」です。
Zuishin

2018/03/03 22:49

Blender Dropbox OpenOffice Shade などの有名ソフトが Python で作られています。 VBA でそれに相当するものはありません。Office が必要というのもありますが、それ以前に知恵袋でも言われている通り機能が貧弱すぎるからです。
ExcelVBAer

2018/03/05 06:48

「Python の方が圧倒的に強力」「VBA の方が「所詮マクロ」」 この言い回し、折角C#1位の方なのに、本質を見失ってませんか? 確かに質問者さんの言い回しは大変失礼です。 しかし、プログラムは問題解決の手段であって、 それだけで貴賤を論じるのは恥じるべきことだと思います。 VBAだろうが、Pythonだろうが、Rubyだろうが何だろうが、 置かれている環境・状況に応じて、最適な方法を全力で模索し努力する、 それがあなた方プログラマー・SE がプロたる所以ではないのでしょうか?
Zuishin

2018/03/05 07:29

言語にはそれぞれ得手不得手がありますので、小回りの利くものやその場面に特化したものが、強力で柔軟でライブラリが充実していて大規模開発に向いた言語よりも扱いやすいことは確かにあります。 ですから、優劣の話であればスクリプトだろうがマクロだろうが優劣なく適材適所になりましょうし Excel を扱うのであれば VBA の方が扱いやすいかもしれません 強力な言語を使わず手軽なものを選択する場面は確かにあります。 ブルドーザーは自転車よりも強力です。 しかし私は日常の買い物にブルドーザーではなく自転車を使います。 どちらが優れているかは比べるものではありません。 一応表明しておきますが、私はアンチ VBA でも Python 信者でもありません。 しかし、どちらが強力かということについては間違っていないと思いますし、その差は圧倒的だと思っています。 「所詮マクロ」という言い回しについては「所詮スクリプト」のアンチテーゼとして使っただけで、「業務アプリ開発においてマクロと比べて汎用スクリプトが劣っている?」という疑問の現れです。 特に Python は大規模開発にも使えるしライブラリも充実しているし「所詮スクリプト」という言い回しは不適切だと思います。 まとめますと、VBA の方が劣っているとは思いません。 適材適所です。 しかし様々な業務に対応するアプリ開発において Python の方が比べ物にならないレベルで強力だと思っています。
ExcelVBAer

2018/03/06 05:16

若輩者の生意気な横やりにも関わらず、 ご回答頂き、大変ありがたく思います。 自分もVBA信者という訳ではないのですが、 VBAを差別するような方に会ってしまうこともあり、 ついかみついてしまいました。 失礼しました。 Zuishin さんや、諸先輩方のように、 より多く、社会に影響を与えられるよう 更に切磋琢磨していきたく思います。 ありがとうございました。
Zuishin

2018/03/06 08:02

VBA は便利ですね。 私のように自分勝手なことを書き散らしているだけの者の発言力など微々たるもので、こんな駄文では何も変わらないのでご安心を。 VBA で多くの人が喜ぶようなものを作れば差別的発言など気にならなくなると思いますし、それで有名になれば私などぐうの音も出ません。
guest

0

昨年末、『「Excel」に「Python」が統合される? Microsoftがアンケートを実施中』というようなニュースが流れたことですし、Pythonの勉強でもしてみては?

こんなのとか。
ExcelにPythonが搭載?

投稿2018/03/02 01:31

fuzzball

総合スコア16731

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

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

yuujiMotoki

2018/03/03 19:16

このニュース、私も期待しています。(ただ既存のexcel2013には望み薄なんですね。会社がオフィスを更新してくれることも望めなさそうです)
guest

0

質問内容を見た限りでは、業務内容がOffice・Excelに依存しているようなので、敢えて別の言語を使用する必要はないように思えます。
タグにJavaがついていますが、Excelが使える現場で、わざわざJavaからExcelを操作する必要もないでしょうし。
また業務としてやっているからには、他の人に引き継げる必要があると思います。
質問者様がJavaがPythonがなどと言っても、それを他の人が使えないと意味がありません。
業務効率を考慮すればVBA一択ではないでしょうか。

投稿2018/03/02 01:26

ttyp03

総合スコア16998

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

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

yuujiMotoki

2018/03/03 19:14

javaというのは、まだ勉強中なのですが、現時点では習得するには最強のような気がしています。いざ動かしてみて、実用の速度に耐え切れない。。。結局そうなってからでは遅いので、現時点ではそれを最上位にもっていっています。PYTHONは所詮スクリプトなので、覚えやすそうなんですが業務アプリにはどうかなと思っています。
guest

0

Zuishinさんのやんなくてもいいんじゃないという意見にはすごく同意するけど、個人的にはプライベートでなんとなく入門書買ったりするので、なんとなく初めてもいいんじゃないかと思います。

飲みに行くより安いし、RPGするより時間食わないので、気軽にふわっと初めてハマったらやるというので誰も迷惑しないし、本人もそれほどの痛手もないでしょう。

業務で活かせるアプリケーションをサクッと作るコツは2つあって、サクッと作れる対象であること、他の人がサクッと作ったと見える程度に技術力があることです。

投稿2018/03/02 01:31

iwamoto_takaaki

総合スコア2883

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

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

yuujiMotoki

2018/03/03 19:20

おそらくローカルアプリならプログラム自体はさくっと作れると自負しています。ただ昔の技術ですので。最近はデータ保存自体が、社内LAN上だったりして、ネットワークを使うのが前提みたいになってくるので、そのあたりが不勉強感が否めないんです。やっと最近は本屋で、IT関係の書籍の表紙をみて、端から端までのキーワードは頭に入ってきた気がします(毎日立ち読みですが)。やはり本屋は情報収集に限界がありますね。
iwamoto_takaaki

2018/03/04 04:29

バージョン管理の問題があるので、社内アプリであってもWebがおすすめではあります。 ただ、サーバを建てるのは社内的にいろいろ手間がかかるので、ケースバイケースでしょうね。 キーワードだけでも頭に入れておくことは大事だと思います。同様にチュートリアル程度のものでもやってみると「できないのではないか」という心配がなくなるので、良い方法だと思います。 ローカルアプリが作れればWebやネットワークを利用したアプリができないといいうことはないと思います。(勉強ならローカル単体でできます。) すぐに使う必要もないと思いますので、のんびり始めればよいと思います。
guest

0

ベストアンサー

余談ですが、ExcelのVBAのコードエディタって、
MicrosoftのVisual Studioっていう統合開発環境のサブセット的立ち位置で
Visual Basic 6.0あたりのものとすごくよく似ています。
コード補完機能もあってたしかに楽なんですよね。

でも、他の言語についても
EclipseだのNetbeansだの言語汎用的な開発環境(IDE)はありますし、
うまく設定を仕込めばステップ実行などもできます。

Excelのワークブックやワークシートやグラフを転がすだけの業務であれば、
他の言語を習得したとしてもExcel内VBAで動かすほうが最も楽に動かせるので、
そういう業務のままでいいのであればずっとVBAでいいでしょう。
それをExcelでなく例えばGoogleスプレッドシートで共有したいとかであれば、
そういう方面の知識・技術の習得をやっていけばいいです。
業務と全く関係ないことを業務の片手間に取り組むのはハードルが高いですが、
業務に少しでも絡むところから他のことにも手を付けるのが
いい落とし所なんじゃないかと思います。

Excelを操作してデータを回収してAccessに溜め込み、
Accessのクエリーを駆使してExcel帳票に反映する、
Accessの能率が悪いと感じたら本格的なRDBMSに移行する、
Excelで表組するのがかったるいならhtml出力してweb移行する
などと業務内容も知らずに書いてみましたが、
要は考え方次第ですよと。

投稿2018/03/02 03:01

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

yuujiMotoki

2018/03/03 19:36

最近、EXCEL→accessへのアクセス(洒落ではありませんが)やり始めています。 問題としては、いま社内のデータドライブの中が、ぐちゃぐちゃになっており、 仕事で使うメールや、ファイルなどの在りかが、本当に瞬時に見失ってしまうような状態です (休もうものなら、もう意味不明です) こんな状況で、やり始めているのは、システムが廃止されて使わなくなったnote(Domino)に、 ローカルファイルを作って、そこにドラグ&ドロップで、自分なりのメモ帳を作って仕事をしています。 accessよりもone note の方が、やりたいことに近いような気がします(ただオフィシャルには会社では使えませんが)
guest

0

自分は Excel専門のSE ですが、
同じような願望は持ってます。

というか、GASをやって、JavaScript 使ったり、
Html、CSS なんかも少々かじってます。

けど、必要な状況になったから覚えた、というのが大前提です。
座学なんて役に立たないし、覚えにくいですから。

隙間時間にスマホでポチポチできたらな~っと思って、
Googleスプレッドシート+GAS+Html+JavaScriptで実現させ、
今では重宝してます。

興味あるなら教えてあげますよ~

投稿2018/03/02 01:19

ExcelVBAer

総合スコア1175

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

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

ExcelVBAer

2018/03/02 01:22

ちなみに、JavaScript は雰囲気が良く似てるので、覚えやすかったです。
yuujiMotoki

2018/03/03 19:11

社内でGOOGLEへの個人アクセスがリジェクトされてしまいます。あと業務上の利用なので、どうしても社外WEBは使えないんです。ただjavascript+HTML5はWEBブラウザのみでローカルで動かせるので、それはできそうです。
guest

0

プログラミングを趣味としているのでも無い限り、プログラミングは問題解決のための手段であって、覚えることがもくてきではないはずです。あなたが直面している問題はなんでしょうか?そこを明確にしたら良いのではないですか?

Excel+VBAだと技術寄りの問題だけでも結構ありますよね。
・ソースコードの変更履歴管理が困難
・複数人で同時に編集できないため規模が大きくなると保守が困難
・実用的には数万行程度までのデータしか扱えない。
・COM技術に依存。Microsoftも新機能追加を放棄しており、新しい技術やトレンドと連携困難。
(SQLAzureが動作対象外、SQLServerの一部のデータ型を扱えない、WEB APIでの連携が不得手)
・etc

投稿2018/03/02 03:13

Kunihiro_Narita

総合スコア472

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

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

ExcelVBAer

2018/03/02 04:31

SQLAzureが動作対象外とは具体的にどういう意味でしょうか? 以前にExcelVBAでAzureに接続してデータの授受をするツールを作った事があるのですが。。。 また、後学の為に「SQLServerの一部のデータ型が扱えない」の「一部のデータ型」について、 教えて頂けると嬉しいです。
Kunihiro_Narita

2018/03/02 05:42

以前は「OLE DB または ADO を使用した Microsoft Azure SQL データベース への接続はサポートされていません。」と書かれているページがあったのですが、なくなってますね。 Data Access Technologies Road Map(https://msdn.microsoft.com/en-us/library/ms810810.aspx)を参照してください。ExcelからSQLServerに接続する場合にはOLE DB+ADOで接続している例が多いかと思いますが、OLE DBは既に廃止対象となっており、将来の動作を保証していません。SQL Server Native Client+ADOで接続するように書き換える必要があります。SQL Server Native Clientは別途インストールする必要があるようです。 またOLE DBは2004年以降機能的な更新がされていません。そのためSQLServer 2005移行に追加されたデータ型(XML型、ユーザ定義型、ジオメトリ型など)に対応しません。こちらもSQL Server Native Client+ADOを使えば利用できるようになります。
ExcelVBAer

2018/03/02 05:49

確かに注意書きがあった気がします(汗) 時代の移り変わりですか。。。 勉強させて頂きました!ありがとうございます!!
diracpaul

2018/03/03 13:48

私は、Excelブック内のVBAプログラムを抜き出してテキストファイルとして保存するVBSを作りました。このツールから抜き出したVBAのテキストファイルをTortoiseSVNを使ってバージョン管理しており、大変便利です。
ExcelVBAer

2018/03/05 05:38

diracpaul さん、情報ありがとうございます。 バージョン管理は自分も自作ツールで完結してて、 是非お互いに共有してみたいものです。 Diffに関しては当初はWinMergeに頼ってましたが、 Diffアルゴリズム(Mayer+Patient)も習得して盛り込むことができました。 ライブラリが揃っている他言語だと簡単にできるのでしょうけども、 1から作る事で、自分なりのアレンジを加える事ができるのも 1つのメリットと思って励んでおります。
diracpaul

2018/03/06 13:13

ご自身でバージョン管理を自作されたとはすごいですね。私は、定年も過ぎたおじいさんなので、バージョン管理システムとして最初に知ったのはATTのUnixのSCCSです。SUNのウィンドウシステムのバージョン管理などで利用していましたが、自作は全く考えもしませんでした。 diffのアルゴリムについては、別の課題もあり調査したことがありますが、自分の物にできれば利用価値が高いと感じています。 TortoiseSVNでは、ログの一覧表示や差分についてもWindowsエクスプローラのようなUIで簡単にできるので重宝しています。今は、Excelで利用できるVBA部品群を趣味で作っています。
ExcelVBAer

2018/03/12 03:59

Diffのアルゴリズムは、下記サイトを参考にさせて頂きました。 http://constellation.hatenablog.com/entry/20091021/1256112978 自分は、Myers氏のアルゴリズムを基本に、PatienceSortを応用して実現させ、 ひょっとしたらWinMerge等フリーソフトより精度がいいかもです。 自分の物にできると、自由自在にできるのでお得ですね。 TortoiseSVNは他でも名前を聞いているので気になっています。 自分も仕事用にVBAのライブラリを多数作り置きしてたりしてますので、 縁がありましたら、どこかで情報共有できれると嬉しいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問